# Upload Orders by CSV

> No store integration? Upload a CSV of cash-on-delivery orders to COD Order Calls - the columns, the 5,000-row and 5 MB limits, the check-before-import step, duplicates, and the call rule uploaded orders need.

Source: https://edesy.in/docs/order-calls/connect-your-store/csv-upload

If your store has no integration, upload a CSV of cash-on-delivery orders in **Upload orders** at [orders.edesy.in](https://orders.edesy.in) and each customer gets a confirmation call. The file needs `external_id`, `phone` and `amount` columns; `customer_name`, `items` and `number` are optional. Every row is checked before anything is created, and up to 5,000 rows fit in one file.

## The file

Press **Download template** for a ready file. The header row is required; columns can be in any order.

| Column | Required | Example | Notes |
|---|---|---|---|
| `external_id` | Yes | `1042` | Your order ID. Must be unique in the file |
| `phone` | Yes | `+919876543210` or `9123456780` | A valid Indian number |
| `amount` | Yes | `1299` | In rupees. Spoken as the cash-on-delivery amount |
| `customer_name` | No | `Asha Verma` | Spoken in the greeting |
| `items` | No | `T-shirt x2; Cap x1` | Items separated by `;`, quantity as `x2` |
| `number` | No | `#1042` | The order number customers see |

Limits: up to **5,000 rows** and **5 MB** per file. Split bigger lists into several files.

## Check, then import

1. Choose or drop the CSV. We read it without creating anything and list every row as **Ready** or with its problem, problems first.
2. Fix the file or carry on: rows with problems are skipped.
3. Press **Import N orders**. The result shows how many were imported and the rows that were rejected, so you can fix and upload just those rows again.

Common row problems: a missing `external_id`, `phone` or `amount`; a phone number that is not a valid Indian number; and a duplicate `external_id` ("also on row N"). An order you already submitted earlier is not called twice.

## Uploaded orders need a call rule

Uploaded orders belong to your **Orders API** store, which is created with your first upload. They are only called by a call rule on that store that is turned on. If there is none, the upload page warns you and links to create one. Calls then follow that rule's wait, calling window (09:00 to 21:00 IST by default) and retries. See [Timing and Retries](https://edesy.in/docs/order-calls/call-rules/timing-and-retries).

## Results

Each customer presses 1 to confirm or 2 to cancel. With no store to write back to, read the results in **Orders**, or export them. See [Outcomes Reference](https://edesy.in/docs/order-calls/orders/outcomes-reference).

Billing is the same as for connected stores: Rs 3 per order where a call connected, retries included, with your first 25 orders free. See [Pricing](https://edesy.in/docs/order-calls/getting-started/pricing).

## Sending orders from your own system instead

To send orders automatically rather than uploading files, use the Orders API shown in the portal's docs, or [connect your store by webhook](https://edesy.in/docs/order-calls/connect-your-store/webhook-and-signing-secret).
