Init
Second step in the ONDC transaction flow. Initialize the order with delivery address, billing information, and fulfillment details. Must be called after select using the same transactionId.
Initialize Order
Include a Bearer token. See Authentication.
The transactionId must be the exact same UUID used in the preceding select call. Do not generate a new one.
Request Body
| Field | Type | Required | Description & Source |
|---|---|---|---|
| sellerId | string | required | From nearby-restaurants |
| providerId | string | required | From nearby-restaurants |
| transactionId | string | required | Same UUID used in select |
| locationIds | string[] | required | Same as select. Example: ["SSL1"] |
| items | array | required | Same items as select, each with a fulfillmentId added. See below. |
| fulfillment | object | required | Fulfillment/delivery details. See below. |
| billing | object | required | Billing information. See below. |
The fulfillmentId from the select response (data.dto.message.order.fulfillments[].id) must be set in both:
- Each
items[].fulfillmentId fulfillment.fulfillmentId
Both must be the exact same UUID from select. Mismatching them will result in an error.
items[]
| Field | Type | Required | Description |
|---|---|---|---|
| id | string | required | Item ID (same as select) |
| location_id | string | required | Location ID |
| quantity | number | required | Quantity |
| fulfillmentId | string | required | From select response: data.dto.message.order.fulfillments[].id. Same value must also be set in fulfillment.fulfillmentId. |
| parentItemId | string | optional | For customizable items: parent item grouping ID |
| type | string | optional | "item" or "customization". Required when using customizations. |
| parentCategoryId | string | optional | Customization group ID. Required when type is "customization". |
fulfillment
| Field | Type | Required | Description |
|---|---|---|---|
| fulfillmentId | string | required | From select response: fulfillments[].id |
| type | string | required | "Delivery" or "Self-Pickup" |
| personName | string | required | Recipient's full name |
| contactPhone | string | required | Recipient's phone number |
| contactEmail | string | optional | Recipient's email address |
| gps | string | required | Delivery GPS coordinates. Format: "lat,lng". Example: "12.453534,77.928323" |
| tat | string | optional | Turnaround time. ISO 8601 duration. Example: "PT24H" |
| address | object | required | Delivery address. Required for Delivery type. See address fields below. |
address fields (fulfillment & billing)
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | required | Door/flat number or floor |
| building | string | required | Building name or house number |
| locality | string | required | Street name or locality |
| city | string | required | City |
| state | string | required | State |
| country | string | required | Country code. Example: "IND" |
| area_code | string | required | PIN/postal code |
billing
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | required | Billing name |
| address | object | required | Same structure as fulfillment address |
| string | optional | Billing email address | |
| phone | string | required | Billing phone number |
Request Example (Delivery)
{
"sellerId": "019b9e8e-baeb-7158-8090-14afa4db5c46",
"providerId": "pramaan_provider_1",
"transactionId": "123f090-48b9-a9c5-6db5be6621dh",
"locationIds": ["SSL1"],
"items": [
{
"id": "id_1cctu3_9_0",
"location_id": "SSL1",
"quantity": 1,
"fulfillmentId": "6c00379b-17ec-42b1-bf36-037a744d2056"
}
],
"fulfillment": {
"fulfillmentId": "6c00379b-17ec-42b1-bf36-037a744d2056",
"type": "Delivery",
"personName": "John Doe",
"contactPhone": "9876543210",
"contactEmail": "john@example.com",
"gps": "12.453534,77.928323",
"tat": "PT24H",
"address": {
"name": "Flat 101",
"building": "Sunrise Apartments",
"locality": "MG Road",
"city": "Bengaluru",
"state": "Karnataka",
"country": "IND",
"area_code": "560037"
}
},
"billing": {
"name": "John Doe",
"address": {
"name": "Flat 101",
"building": "Sunrise Apartments",
"locality": "MG Road",
"city": "Bengaluru",
"state": "Karnataka",
"country": "IND",
"area_code": "560037"
},
"email": "john@example.com",
"phone": "9876543210"
}
}
Request Example (customizable item)
{
"sellerId": "019b9e8e-baeb-7158-8090-14afa4db5c46",
"providerId": "pramaan_provider_1",
"transactionId": "123f090-48b9-a9c5-6db5be6621dh",
"locationIds": ["SSL1"],
"items": [
{ "id": "id_ancc5_0_0", "parentItemId": "DI1", "location_id": "SSL1", "quantity": 1, "type": "item", "fulfillmentId": "6c00379b-17ec-42b1-bf36-037a744d2056" },
{ "id": "id_1bai73_1_0", "parentItemId": "DI1", "location_id": "SSL1", "quantity": 1, "type": "customization", "parentCategoryId": "CG11", "fulfillmentId": "6c00379b-17ec-42b1-bf36-037a744d2056" },
{ "id": "id_55vxa_5_0", "parentItemId": "DI1", "location_id": "SSL1", "quantity": 1, "type": "customization", "parentCategoryId": "CG21", "fulfillmentId": "6c00379b-17ec-42b1-bf36-037a744d2056" }
],
"fulfillment": {
"fulfillmentId": "6c00379b-17ec-42b1-bf36-037a744d2056",
"type": "Delivery",
"personName": "John Doe",
"contactPhone": "9876543210",
"gps": "12.453534,77.928323",
"address": {
"name": "Flat 101",
"building": "Sunrise Apartments",
"locality": "MG Road",
"city": "Bengaluru",
"state": "Karnataka",
"country": "IND",
"area_code": "560037"
}
},
"billing": {
"name": "John Doe",
"address": {
"name": "Flat 101",
"building": "Sunrise Apartments",
"locality": "MG Road",
"city": "Bengaluru",
"state": "Karnataka",
"country": "IND",
"area_code": "560037"
},
"phone": "9876543210"
}
}
Response
Returns the ONDC on_init callback with confirmed order details, payment info, settlement details, and BPP terms. After a successful init, proceed to create-order.
| Field | Description |
|---|---|
| order.fulfillments[] | Confirmed fulfillment details with type and state |
| order.items[] | Confirmed items with fulfillment_id associations |
| order.quote | Final price breakdown including item prices, delivery charges, and fees |
| order.payment | Payment configuration — type, settlement window, and collector details |
| order.billing | Echoed billing information confirmed by the BPP |
| order["@ondc/org/settlement_details"] | Settlement terms and bank account details |
| status | "ACK" — request accepted by the BPP |
Response Example
{
"data": {
"dto": {
"context": {
"domain": "ONDC:RET11",
"country": "IND",
"city": "std:080",
"action": "on_init",
"core_version": "1.2.5",
"bap_id": "ondc.preprod.highwaydelite.com",
"bap_uri": "https://ondc.preprod.highwaydelite.com/ret11",
"bpp_id": "pramaan.ondc.org/beta/preprod/mock/seller",
"bpp_uri": "https://pramaan.ondc.org/beta/preprod/mock/seller",
"transaction_id": "56a55c3f-8052-4bb6-91d6-47e1a178a0c0",
"message_id": "c5d6e7f8-a9b0-1234-5678-90abcdef1234",
"timestamp": "2026-06-11T11:30:00.000Z"
},
"message": {
"order": {
"provider": {
"id": "pramaan_provider_1",
"locations": [{ "id": "SSL1" }]
},
"items": [
{
"id": "id_1cctu3_9_0",
"fulfillment_id": "6c00379b-17ec-42b1-bf36-037a744d2056",
"quantity": { "count": 1 }
}
],
"fulfillments": [
{
"id": "6c00379b-17ec-42b1-bf36-037a744d2056",
"type": "Delivery",
"@ondc/org/provider_name": "Pramaan Store 1",
"tracking": true,
"@ondc/org/category": "Immediate Delivery",
"@ondc/org/TAT": "PT10M",
"end": {
"location": {
"gps": "12.453534,77.928323",
"address": {
"name": "Home",
"building": "12-34",
"locality": "MG Road",
"city": "Bengaluru",
"state": "Karnataka",
"country": "IND",
"area_code": "560001"
}
},
"contact": {
"phone": "9876543210",
"email": "john@example.com"
}
}
}
],
"billing": {
"name": "John Doe",
"address": {
"name": "Home",
"building": "12-34",
"locality": "MG Road",
"city": "Bengaluru",
"state": "Karnataka",
"country": "IND",
"area_code": "560001"
},
"email": "john@example.com",
"phone": "9876543210",
"created_at": "2026-06-11T11:29:00.000Z",
"updated_at": "2026-06-11T11:29:00.000Z"
},
"quote": {
"price": { "currency": "INR", "value": "610.00" },
"breakup": [
{
"@ondc/org/item_id": "id_1cctu3_9_0",
"title": "Double Patty Cheese Burger",
"@ondc/org/item_quantity": { "count": 1 },
"@ondc/org/title_type": "item",
"price": { "currency": "INR", "value": "265.00" }
},
{
"@ondc/org/item_id": "6c00379b-17ec-42b1-bf36-037a744d2056",
"title": "Delivery charges",
"@ondc/org/title_type": "delivery",
"price": { "currency": "INR", "value": "40.00" }
},
{
"@ondc/org/item_id": "6c00379b-17ec-42b1-bf36-037a744d2056",
"title": "Convenience Fee",
"@ondc/org/title_type": "misc",
"price": { "currency": "INR", "value": "40.00" }
}
],
"ttl": "PT6H"
},
"payment": {
"type": "ON-ORDER",
"collected_by": "BAP",
"@ondc/org/settlement_window": "P1D",
"@ondc/org/settlement_basis": "delivery",
"@ondc/org/withholding_amount": "10.00",
"@ondc/org/settlement_details": [
{
"settlement_counterparty": "buyer-app",
"settlement_phase": "sale-amount",
"settlement_type": "upi"
}
]
},
"tags": [
{
"code": "bpp_terms",
"list": [
{ "code": "np_type", "value": "MSN" },
{ "code": "tax_number", "value": "XXXXXXXXXXXXXXX" },
{ "code": "accept_bap_terms", "value": "Y" }
]
}
]
}
}
},
"status": "ACK"
}
}
After a successful init, proceed to Create Order using the same transactionId to confirm and place the order.