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.highwaydelite.com",
"bap_uri": "https://ondc.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.