Browse the docs

API reference

Orders

Accept or reject online orders, choose who delivers, and follow fulfilment.

List orders

GET/v1/stores/{store_id}/orders

Newest first. Use updated_since to catch up on anything a missed webhook would have told you.

Parameters

  • store_idinteger · pathrequired
  • cursorstring · query

    Opaque cursor from a previous page's next_cursor.

  • limitinteger · query

    Page size, 1–100. Default 50.

  • statusenum · query
    ACCEPTEDCANCELLEDCOMPLETEDDELIVEREDOUT_FOR_DELIVERYPACKEDPAYMENT_FAILEDPENDING
  • typeenum · query

    Default: delivery.

    deliveryinstore
  • updated_sincestring · query

    ISO 8601. Orders with any event since then.

Returns · OrderList

Show 4 fields
  • objectstring
  • dataarray of objectrequired
    • objectstring
    • idstringrequired

      Scanimart order id, e.g. ORDER-1A2B3C4D5E.

    • external_idstringnullablerequired

      Your id for this order, if you sent one when accepting.

    • store_idintegerrequired
    • typeenumrequired

      * delivery - delivery * instore - instore

      deliveryinstore
    • statusenumrequired

      * PENDING - PENDING * ACCEPTED - ACCEPTED * PACKED - PACKED * OUT_FOR_DELIVERY - OUT_FOR_DELIVERY * DELIVERED - DELIVERED * CANCELLED - CANCELLED * COMPLETED - COMPLETED * PAYMENT_FAILED - PAYMENT_FAILED

      PENDINGACCEPTEDPACKEDOUT_FOR_DELIVERYDELIVEREDCANCELLEDCOMPLETEDPAYMENT_FAILED
    • paymentobjectrequired
      • statusstringrequired
      • paidbooleanrequired
      • methodstringnullablerequired
    • total_amountdecimal stringrequired
    • delivery_feedecimal stringnullablerequired
    • fulfilment_modeenumnullablerequired

      * STORE_STAFF - STORE_STAFF * SCANIMART_COURIER - SCANIMART_COURIER

      STORE_STAFFSCANIMART_COURIER
    • accepted_viaenumnullablerequired

      * APP - APP * POS - POS

      APPPOS
    • placed_attimestampnullablerequired
    • linesarray of objectrequired
      • barcodestringnullablerequired
      • namestringnullablerequired
      • quantityintegerrequired
      • free_quantityintegernullablerequired

        Units of quantity given free by a buy-X-get-Y offer.

      • unit_pricedecimal stringnullablerequired

        Per paid unit, tax-inclusive.

      • mrpdecimal stringnullablerequired
      • line_totaldecimal stringrequired
      • sourceenumnullablerequired

        * catalog - catalog * store_item - store_item * misc - misc

        catalogstore_itemmisc
      • external_idstringnullablerequired

        Your id for this item, if you sent one.

    • courierobjectnullablerequired

      The Scanimart courier, for SCANIMART_COURIER orders.

      • providerstringnullablerequired

        e.g. porter.

      • statusenumrequired

        * NOT_REQUESTED - NOT_REQUESTED * REQUESTED - REQUESTED * BOOKED - BOOKED * ASSIGNED - ASSIGNED * PICKED_UP - PICKED_UP * DELIVERED - DELIVERED * CANCELLED - CANCELLED * FAILED - FAILED

        NOT_REQUESTEDREQUESTEDBOOKEDASSIGNEDPICKED_UPDELIVEREDCANCELLEDFAILED
      • tracking_urlstringnullable
      • rider_namestringnullable
      • rider_phonestringnullable
      • vehiclestringnullable
      • eta_minutesintegernullable
  • has_morebooleanrequired
  • next_cursorstringnullablerequired

    Pass as cursor to get the next page.

Request
curl https://sandbox.api.scanimart.com/v1/stores/1042/orders \
  -H "Authorization: Bearer $SCANIMART_KEY"
Response · 200
{
  "object": "list",
  "data": [
    {
      "object": "order",
      "id": "ORDER-1A2B3C4D5E",
      "external_id": "BILL-20391",
      "store_id": 1042,
      "type": "delivery",
      "status": "PENDING",
      "payment": {
        "status": "string",
        "paid": true,
        "method": "string"
      },
      "total_amount": "249.00",
      "delivery_fee": "249.00",
      "fulfilment_mode": "STORE_STAFF",
      "accepted_via": "APP",
      "placed_at": "2026-10-08T10:15:00+05:30",
      "lines": [
        {
          "barcode": "8901725181222",
          "name": "Aashirvaad Atta 5kg",
          "quantity": 2,
          "free_quantity": 2,
          "unit_price": "249.00",
          "mrp": "249.00",
          "line_total": "249.00",
          "source": "catalog",
          "external_id": "BILL-20391"
        }
      ],
      "courier": {
        "provider": "porter",
        "status": "NOT_REQUESTED",
        "tracking_url": "https://track.porter.in/abc123",
        "rider_name": "Ravi K",
        "rider_phone": "+919800000000",
        "vehicle": "2W",
        "eta_minutes": 1
      }
    }
  ],
  "has_more": false,
  "next_cursor": null
}

Get an order

GET/v1/stores/{store_id}/orders/{order_id}

Parameters

  • store_idinteger · pathrequired
  • order_idstring · pathrequired

Returns · Order

Show 14 fields
  • objectstring
  • idstringrequired

    Scanimart order id, e.g. ORDER-1A2B3C4D5E.

  • external_idstringnullablerequired

    Your id for this order, if you sent one when accepting.

  • store_idintegerrequired
  • typeenumrequired

    * delivery - delivery * instore - instore

    deliveryinstore
  • statusenumrequired

    * PENDING - PENDING * ACCEPTED - ACCEPTED * PACKED - PACKED * OUT_FOR_DELIVERY - OUT_FOR_DELIVERY * DELIVERED - DELIVERED * CANCELLED - CANCELLED * COMPLETED - COMPLETED * PAYMENT_FAILED - PAYMENT_FAILED

    PENDINGACCEPTEDPACKEDOUT_FOR_DELIVERYDELIVEREDCANCELLEDCOMPLETEDPAYMENT_FAILED
  • paymentobjectrequired
    • statusstringrequired
    • paidbooleanrequired
    • methodstringnullablerequired
  • total_amountdecimal stringrequired
  • delivery_feedecimal stringnullablerequired
  • fulfilment_modeenumnullablerequired

    * STORE_STAFF - STORE_STAFF * SCANIMART_COURIER - SCANIMART_COURIER

    STORE_STAFFSCANIMART_COURIER
  • accepted_viaenumnullablerequired

    * APP - APP * POS - POS

    APPPOS
  • placed_attimestampnullablerequired
  • linesarray of objectrequired
    • barcodestringnullablerequired
    • namestringnullablerequired
    • quantityintegerrequired
    • free_quantityintegernullablerequired

      Units of quantity given free by a buy-X-get-Y offer.

    • unit_pricedecimal stringnullablerequired

      Per paid unit, tax-inclusive.

    • mrpdecimal stringnullablerequired
    • line_totaldecimal stringrequired
    • sourceenumnullablerequired

      * catalog - catalog * store_item - store_item * misc - misc

      catalogstore_itemmisc
    • external_idstringnullablerequired

      Your id for this item, if you sent one.

  • courierobjectnullablerequired

    The Scanimart courier, for SCANIMART_COURIER orders.

    • providerstringnullablerequired

      e.g. porter.

    • statusenumrequired

      * NOT_REQUESTED - NOT_REQUESTED * REQUESTED - REQUESTED * BOOKED - BOOKED * ASSIGNED - ASSIGNED * PICKED_UP - PICKED_UP * DELIVERED - DELIVERED * CANCELLED - CANCELLED * FAILED - FAILED

      NOT_REQUESTEDREQUESTEDBOOKEDASSIGNEDPICKED_UPDELIVEREDCANCELLEDFAILED
    • tracking_urlstringnullable
    • rider_namestringnullable
    • rider_phonestringnullable
    • vehiclestringnullable
    • eta_minutesintegernullable

Errors: 404, in the standard error format.

Request
curl https://sandbox.api.scanimart.com/v1/stores/1042/orders/ORDER-1A2B3C4D5E \
  -H "Authorization: Bearer $SCANIMART_KEY"
Response · 200
{
  "object": "order",
  "id": "ORDER-1A2B3C4D5E",
  "external_id": "BILL-20391",
  "store_id": 1042,
  "type": "delivery",
  "status": "PENDING",
  "payment": {
    "status": "string",
    "paid": true,
    "method": "string"
  },
  "total_amount": "249.00",
  "delivery_fee": "249.00",
  "fulfilment_mode": "STORE_STAFF",
  "accepted_via": "APP",
  "placed_at": "2026-10-08T10:15:00+05:30",
  "lines": [
    {
      "barcode": "8901725181222",
      "name": "Aashirvaad Atta 5kg",
      "quantity": 2,
      "free_quantity": 2,
      "unit_price": "249.00",
      "mrp": "249.00",
      "line_total": "249.00",
      "source": "catalog",
      "external_id": "BILL-20391"
    }
  ],
  "courier": {
    "provider": "porter",
    "status": "NOT_REQUESTED",
    "tracking_url": "https://track.porter.in/abc123",
    "rider_name": "Ravi K",
    "rider_phone": "+919800000000",
    "vehicle": "2W",
    "eta_minutes": 1
  }
}

Delivery options for an order

GET/v1/stores/{store_id}/orders/{order_id}/delivery-options

What the store may choose when accepting, with the commission each costs the store.

Parameters

  • store_idinteger · pathrequired
  • order_idstring · pathrequired

Returns · DeliveryOptionList

Show 4 fields
  • objectstring
  • dataarray of objectrequired
    • modeenumrequired

      * STORE_STAFF - STORE_STAFF * SCANIMART_COURIER - SCANIMART_COURIER

      STORE_STAFFSCANIMART_COURIER
    • availablebooleanrequired
    • reasonstringnullablerequired
    • commission_percentdecimal stringnullablerequired
    • commission_amountdecimal stringnullablerequired
    • eta_minutesintegernullablerequired
  • has_morebooleanrequired
  • next_cursorstringnullablerequired

    Pass as cursor to get the next page.

Request
curl https://sandbox.api.scanimart.com/v1/stores/1042/orders/ORDER-1A2B3C4D5E/delivery-options \
  -H "Authorization: Bearer $SCANIMART_KEY"
Response · 200
{
  "object": "list",
  "data": [
    {
      "mode": "STORE_STAFF",
      "available": true,
      "reason": "Out of stock",
      "commission_percent": "5.00",
      "commission_amount": "249.00",
      "eta_minutes": 1
    }
  ],
  "has_more": false,
  "next_cursor": null
}

Accept an order

POST/v1/stores/{store_id}/orders/{order_id}/accept

Accept a PENDING delivery order and choose who delivers it. The store's retailer app can accept too: whichever acts first wins, and the other gets order_not_in_required_state.

Parameters

  • store_idinteger · pathrequired
  • order_idstring · pathrequired
  • Idempotency-Keystring · header

    Any unique string (a UUID is ideal). Retrying with the same key returns the first result instead of acting twice. Kept for 24 hours.

Request body

  • fulfilment_modeany

    Defaults to STORE_STAFF. * STORE_STAFF - STORE_STAFF * SCANIMART_COURIER - SCANIMART_COURIER

  • external_idstring

    Your bill or order number; echoed in every later event.

Returns · Order

Show 14 fields
  • objectstring
  • idstringrequired

    Scanimart order id, e.g. ORDER-1A2B3C4D5E.

  • external_idstringnullablerequired

    Your id for this order, if you sent one when accepting.

  • store_idintegerrequired
  • typeenumrequired

    * delivery - delivery * instore - instore

    deliveryinstore
  • statusenumrequired

    * PENDING - PENDING * ACCEPTED - ACCEPTED * PACKED - PACKED * OUT_FOR_DELIVERY - OUT_FOR_DELIVERY * DELIVERED - DELIVERED * CANCELLED - CANCELLED * COMPLETED - COMPLETED * PAYMENT_FAILED - PAYMENT_FAILED

    PENDINGACCEPTEDPACKEDOUT_FOR_DELIVERYDELIVEREDCANCELLEDCOMPLETEDPAYMENT_FAILED
  • paymentobjectrequired
    • statusstringrequired
    • paidbooleanrequired
    • methodstringnullablerequired
  • total_amountdecimal stringrequired
  • delivery_feedecimal stringnullablerequired
  • fulfilment_modeenumnullablerequired

    * STORE_STAFF - STORE_STAFF * SCANIMART_COURIER - SCANIMART_COURIER

    STORE_STAFFSCANIMART_COURIER
  • accepted_viaenumnullablerequired

    * APP - APP * POS - POS

    APPPOS
  • placed_attimestampnullablerequired
  • linesarray of objectrequired
    • barcodestringnullablerequired
    • namestringnullablerequired
    • quantityintegerrequired
    • free_quantityintegernullablerequired

      Units of quantity given free by a buy-X-get-Y offer.

    • unit_pricedecimal stringnullablerequired

      Per paid unit, tax-inclusive.

    • mrpdecimal stringnullablerequired
    • line_totaldecimal stringrequired
    • sourceenumnullablerequired

      * catalog - catalog * store_item - store_item * misc - misc

      catalogstore_itemmisc
    • external_idstringnullablerequired

      Your id for this item, if you sent one.

  • courierobjectnullablerequired

    The Scanimart courier, for SCANIMART_COURIER orders.

    • providerstringnullablerequired

      e.g. porter.

    • statusenumrequired

      * NOT_REQUESTED - NOT_REQUESTED * REQUESTED - REQUESTED * BOOKED - BOOKED * ASSIGNED - ASSIGNED * PICKED_UP - PICKED_UP * DELIVERED - DELIVERED * CANCELLED - CANCELLED * FAILED - FAILED

      NOT_REQUESTEDREQUESTEDBOOKEDASSIGNEDPICKED_UPDELIVEREDCANCELLEDFAILED
    • tracking_urlstringnullable
    • rider_namestringnullable
    • rider_phonestringnullable
    • vehiclestringnullable
    • eta_minutesintegernullable

Errors: 404, 409, in the standard error format.

Request
curl -X POST https://sandbox.api.scanimart.com/v1/stores/1042/orders/ORDER-1A2B3C4D5E/accept \
  -H "Authorization: Bearer $SCANIMART_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
    "fulfilment_mode": null,
    "external_id": "BILL-20391"
  }'
Response · 200
{
  "object": "order",
  "id": "ORDER-1A2B3C4D5E",
  "external_id": "BILL-20391",
  "store_id": 1042,
  "type": "delivery",
  "status": "PENDING",
  "payment": {
    "status": "string",
    "paid": true,
    "method": "string"
  },
  "total_amount": "249.00",
  "delivery_fee": "249.00",
  "fulfilment_mode": "STORE_STAFF",
  "accepted_via": "APP",
  "placed_at": "2026-10-08T10:15:00+05:30",
  "lines": [
    {
      "barcode": "8901725181222",
      "name": "Aashirvaad Atta 5kg",
      "quantity": 2,
      "free_quantity": 2,
      "unit_price": "249.00",
      "mrp": "249.00",
      "line_total": "249.00",
      "source": "catalog",
      "external_id": "BILL-20391"
    }
  ],
  "courier": {
    "provider": "porter",
    "status": "NOT_REQUESTED",
    "tracking_url": "https://track.porter.in/abc123",
    "rider_name": "Ravi K",
    "rider_phone": "+919800000000",
    "vehicle": "2W",
    "eta_minutes": 1
  }
}

Reject an order

POST/v1/stores/{store_id}/orders/{order_id}/reject

Reject a PENDING delivery order. The customer is refunded and the reserved stock released.

Parameters

  • store_idinteger · pathrequired
  • order_idstring · pathrequired
  • Idempotency-Keystring · header

    Any unique string (a UUID is ideal). Retrying with the same key returns the first result instead of acting twice. Kept for 24 hours.

Request body

  • reasonstring

Returns · Order

Show 14 fields
  • objectstring
  • idstringrequired

    Scanimart order id, e.g. ORDER-1A2B3C4D5E.

  • external_idstringnullablerequired

    Your id for this order, if you sent one when accepting.

  • store_idintegerrequired
  • typeenumrequired

    * delivery - delivery * instore - instore

    deliveryinstore
  • statusenumrequired

    * PENDING - PENDING * ACCEPTED - ACCEPTED * PACKED - PACKED * OUT_FOR_DELIVERY - OUT_FOR_DELIVERY * DELIVERED - DELIVERED * CANCELLED - CANCELLED * COMPLETED - COMPLETED * PAYMENT_FAILED - PAYMENT_FAILED

    PENDINGACCEPTEDPACKEDOUT_FOR_DELIVERYDELIVEREDCANCELLEDCOMPLETEDPAYMENT_FAILED
  • paymentobjectrequired
    • statusstringrequired
    • paidbooleanrequired
    • methodstringnullablerequired
  • total_amountdecimal stringrequired
  • delivery_feedecimal stringnullablerequired
  • fulfilment_modeenumnullablerequired

    * STORE_STAFF - STORE_STAFF * SCANIMART_COURIER - SCANIMART_COURIER

    STORE_STAFFSCANIMART_COURIER
  • accepted_viaenumnullablerequired

    * APP - APP * POS - POS

    APPPOS
  • placed_attimestampnullablerequired
  • linesarray of objectrequired
    • barcodestringnullablerequired
    • namestringnullablerequired
    • quantityintegerrequired
    • free_quantityintegernullablerequired

      Units of quantity given free by a buy-X-get-Y offer.

    • unit_pricedecimal stringnullablerequired

      Per paid unit, tax-inclusive.

    • mrpdecimal stringnullablerequired
    • line_totaldecimal stringrequired
    • sourceenumnullablerequired

      * catalog - catalog * store_item - store_item * misc - misc

      catalogstore_itemmisc
    • external_idstringnullablerequired

      Your id for this item, if you sent one.

  • courierobjectnullablerequired

    The Scanimart courier, for SCANIMART_COURIER orders.

    • providerstringnullablerequired

      e.g. porter.

    • statusenumrequired

      * NOT_REQUESTED - NOT_REQUESTED * REQUESTED - REQUESTED * BOOKED - BOOKED * ASSIGNED - ASSIGNED * PICKED_UP - PICKED_UP * DELIVERED - DELIVERED * CANCELLED - CANCELLED * FAILED - FAILED

      NOT_REQUESTEDREQUESTEDBOOKEDASSIGNEDPICKED_UPDELIVEREDCANCELLEDFAILED
    • tracking_urlstringnullable
    • rider_namestringnullable
    • rider_phonestringnullable
    • vehiclestringnullable
    • eta_minutesintegernullable

Errors: 404, 409, in the standard error format.

Request
curl -X POST https://sandbox.api.scanimart.com/v1/stores/1042/orders/ORDER-1A2B3C4D5E/reject \
  -H "Authorization: Bearer $SCANIMART_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
    "reason": "Out of stock"
  }'
Response · 200
{
  "object": "order",
  "id": "ORDER-1A2B3C4D5E",
  "external_id": "BILL-20391",
  "store_id": 1042,
  "type": "delivery",
  "status": "PENDING",
  "payment": {
    "status": "string",
    "paid": true,
    "method": "string"
  },
  "total_amount": "249.00",
  "delivery_fee": "249.00",
  "fulfilment_mode": "STORE_STAFF",
  "accepted_via": "APP",
  "placed_at": "2026-10-08T10:15:00+05:30",
  "lines": [
    {
      "barcode": "8901725181222",
      "name": "Aashirvaad Atta 5kg",
      "quantity": 2,
      "free_quantity": 2,
      "unit_price": "249.00",
      "mrp": "249.00",
      "line_total": "249.00",
      "source": "catalog",
      "external_id": "BILL-20391"
    }
  ],
  "courier": {
    "provider": "porter",
    "status": "NOT_REQUESTED",
    "tracking_url": "https://track.porter.in/abc123",
    "rider_name": "Ravi K",
    "rider_phone": "+919800000000",
    "vehicle": "2W",
    "eta_minutes": 1
  }
}

Switch to store delivery

POST/v1/stores/{store_id}/orders/{order_id}/delivery-method

Hand a Scanimart-courier order back to the store's own riders -- e.g. no courier could be booked. Any booked courier is cancelled. Only before the order is out for delivery.

Parameters

  • store_idinteger · pathrequired
  • order_idstring · pathrequired
  • Idempotency-Keystring · header

    Any unique string (a UUID is ideal). Retrying with the same key returns the first result instead of acting twice. Kept for 24 hours.

Request body

  • fulfilment_modeenumrequired

    * STORE_STAFF - STORE_STAFF

    STORE_STAFF

Returns · Order

Show 14 fields
  • objectstring
  • idstringrequired

    Scanimart order id, e.g. ORDER-1A2B3C4D5E.

  • external_idstringnullablerequired

    Your id for this order, if you sent one when accepting.

  • store_idintegerrequired
  • typeenumrequired

    * delivery - delivery * instore - instore

    deliveryinstore
  • statusenumrequired

    * PENDING - PENDING * ACCEPTED - ACCEPTED * PACKED - PACKED * OUT_FOR_DELIVERY - OUT_FOR_DELIVERY * DELIVERED - DELIVERED * CANCELLED - CANCELLED * COMPLETED - COMPLETED * PAYMENT_FAILED - PAYMENT_FAILED

    PENDINGACCEPTEDPACKEDOUT_FOR_DELIVERYDELIVEREDCANCELLEDCOMPLETEDPAYMENT_FAILED
  • paymentobjectrequired
    • statusstringrequired
    • paidbooleanrequired
    • methodstringnullablerequired
  • total_amountdecimal stringrequired
  • delivery_feedecimal stringnullablerequired
  • fulfilment_modeenumnullablerequired

    * STORE_STAFF - STORE_STAFF * SCANIMART_COURIER - SCANIMART_COURIER

    STORE_STAFFSCANIMART_COURIER
  • accepted_viaenumnullablerequired

    * APP - APP * POS - POS

    APPPOS
  • placed_attimestampnullablerequired
  • linesarray of objectrequired
    • barcodestringnullablerequired
    • namestringnullablerequired
    • quantityintegerrequired
    • free_quantityintegernullablerequired

      Units of quantity given free by a buy-X-get-Y offer.

    • unit_pricedecimal stringnullablerequired

      Per paid unit, tax-inclusive.

    • mrpdecimal stringnullablerequired
    • line_totaldecimal stringrequired
    • sourceenumnullablerequired

      * catalog - catalog * store_item - store_item * misc - misc

      catalogstore_itemmisc
    • external_idstringnullablerequired

      Your id for this item, if you sent one.

  • courierobjectnullablerequired

    The Scanimart courier, for SCANIMART_COURIER orders.

    • providerstringnullablerequired

      e.g. porter.

    • statusenumrequired

      * NOT_REQUESTED - NOT_REQUESTED * REQUESTED - REQUESTED * BOOKED - BOOKED * ASSIGNED - ASSIGNED * PICKED_UP - PICKED_UP * DELIVERED - DELIVERED * CANCELLED - CANCELLED * FAILED - FAILED

      NOT_REQUESTEDREQUESTEDBOOKEDASSIGNEDPICKED_UPDELIVEREDCANCELLEDFAILED
    • tracking_urlstringnullable
    • rider_namestringnullable
    • rider_phonestringnullable
    • vehiclestringnullable
    • eta_minutesintegernullable

Errors: 409, in the standard error format.

Request
curl -X POST https://sandbox.api.scanimart.com/v1/stores/1042/orders/ORDER-1A2B3C4D5E/delivery-method \
  -H "Authorization: Bearer $SCANIMART_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
    "fulfilment_mode": "STORE_STAFF"
  }'
Response · 200
{
  "object": "order",
  "id": "ORDER-1A2B3C4D5E",
  "external_id": "BILL-20391",
  "store_id": 1042,
  "type": "delivery",
  "status": "PENDING",
  "payment": {
    "status": "string",
    "paid": true,
    "method": "string"
  },
  "total_amount": "249.00",
  "delivery_fee": "249.00",
  "fulfilment_mode": "STORE_STAFF",
  "accepted_via": "APP",
  "placed_at": "2026-10-08T10:15:00+05:30",
  "lines": [
    {
      "barcode": "8901725181222",
      "name": "Aashirvaad Atta 5kg",
      "quantity": 2,
      "free_quantity": 2,
      "unit_price": "249.00",
      "mrp": "249.00",
      "line_total": "249.00",
      "source": "catalog",
      "external_id": "BILL-20391"
    }
  ],
  "courier": {
    "provider": "porter",
    "status": "NOT_REQUESTED",
    "tracking_url": "https://track.porter.in/abc123",
    "rider_name": "Ravi K",
    "rider_phone": "+919800000000",
    "vehicle": "2W",
    "eta_minutes": 1
  }
}

Retry booking a courier

POST/v1/stores/{store_id}/orders/{order_id}/courier/retry

After delivery.failed (no courier available), ask Scanimart to try again.

Parameters

  • store_idinteger · pathrequired
  • order_idstring · pathrequired

Returns · Order

Show 14 fields
  • objectstring
  • idstringrequired

    Scanimart order id, e.g. ORDER-1A2B3C4D5E.

  • external_idstringnullablerequired

    Your id for this order, if you sent one when accepting.

  • store_idintegerrequired
  • typeenumrequired

    * delivery - delivery * instore - instore

    deliveryinstore
  • statusenumrequired

    * PENDING - PENDING * ACCEPTED - ACCEPTED * PACKED - PACKED * OUT_FOR_DELIVERY - OUT_FOR_DELIVERY * DELIVERED - DELIVERED * CANCELLED - CANCELLED * COMPLETED - COMPLETED * PAYMENT_FAILED - PAYMENT_FAILED

    PENDINGACCEPTEDPACKEDOUT_FOR_DELIVERYDELIVEREDCANCELLEDCOMPLETEDPAYMENT_FAILED
  • paymentobjectrequired
    • statusstringrequired
    • paidbooleanrequired
    • methodstringnullablerequired
  • total_amountdecimal stringrequired
  • delivery_feedecimal stringnullablerequired
  • fulfilment_modeenumnullablerequired

    * STORE_STAFF - STORE_STAFF * SCANIMART_COURIER - SCANIMART_COURIER

    STORE_STAFFSCANIMART_COURIER
  • accepted_viaenumnullablerequired

    * APP - APP * POS - POS

    APPPOS
  • placed_attimestampnullablerequired
  • linesarray of objectrequired
    • barcodestringnullablerequired
    • namestringnullablerequired
    • quantityintegerrequired
    • free_quantityintegernullablerequired

      Units of quantity given free by a buy-X-get-Y offer.

    • unit_pricedecimal stringnullablerequired

      Per paid unit, tax-inclusive.

    • mrpdecimal stringnullablerequired
    • line_totaldecimal stringrequired
    • sourceenumnullablerequired

      * catalog - catalog * store_item - store_item * misc - misc

      catalogstore_itemmisc
    • external_idstringnullablerequired

      Your id for this item, if you sent one.

  • courierobjectnullablerequired

    The Scanimart courier, for SCANIMART_COURIER orders.

    • providerstringnullablerequired

      e.g. porter.

    • statusenumrequired

      * NOT_REQUESTED - NOT_REQUESTED * REQUESTED - REQUESTED * BOOKED - BOOKED * ASSIGNED - ASSIGNED * PICKED_UP - PICKED_UP * DELIVERED - DELIVERED * CANCELLED - CANCELLED * FAILED - FAILED

      NOT_REQUESTEDREQUESTEDBOOKEDASSIGNEDPICKED_UPDELIVEREDCANCELLEDFAILED
    • tracking_urlstringnullable
    • rider_namestringnullable
    • rider_phonestringnullable
    • vehiclestringnullable
    • eta_minutesintegernullable

Errors: 409, in the standard error format.

Request
curl -X POST https://sandbox.api.scanimart.com/v1/stores/1042/orders/ORDER-1A2B3C4D5E/courier/retry \
  -H "Authorization: Bearer $SCANIMART_KEY"
Response · 200
{
  "object": "order",
  "id": "ORDER-1A2B3C4D5E",
  "external_id": "BILL-20391",
  "store_id": 1042,
  "type": "delivery",
  "status": "PENDING",
  "payment": {
    "status": "string",
    "paid": true,
    "method": "string"
  },
  "total_amount": "249.00",
  "delivery_fee": "249.00",
  "fulfilment_mode": "STORE_STAFF",
  "accepted_via": "APP",
  "placed_at": "2026-10-08T10:15:00+05:30",
  "lines": [
    {
      "barcode": "8901725181222",
      "name": "Aashirvaad Atta 5kg",
      "quantity": 2,
      "free_quantity": 2,
      "unit_price": "249.00",
      "mrp": "249.00",
      "line_total": "249.00",
      "source": "catalog",
      "external_id": "BILL-20391"
    }
  ],
  "courier": {
    "provider": "porter",
    "status": "NOT_REQUESTED",
    "tracking_url": "https://track.porter.in/abc123",
    "rider_name": "Ravi K",
    "rider_phone": "+919800000000",
    "vehicle": "2W",
    "eta_minutes": 1
  }
}