Skip to main content

Institution Transfer Manifest V1

43 API calls in this section.

Processing Points - Create

Delivery & Last-Mile / Institution Transfer Manifest V1
POST/delivery/transfer-processing-points

Creates a lightweight processing point. A processing point is not a warehouse; it is a receiving/sorting/data-entry location. code is unique per tenant.

Send a bearer token in the Authorization header for an authenticated OnDi user session.
Request
curl
1curl --request POST "$ONDI_BASE_URL/delivery/transfer-processing-points" \2  --header "Authorization: Bearer {{access_token}}" \3  --header "Content-Type: application/json" \4  --header "Content-Type: application/json" \5  --data '{6  "name": "G2G Processing Point",7  "code": "G2G-PP-001",8  "address_id": "{{source_address_id}}",9  "metadata": {10    "source": "postman"11  }12}'
Request body
json
1{2  "name": "G2G Processing Point",3  "code": "G2G-PP-001",4  "address_id": "{{source_address_id}}",5  "metadata": {6    "source": "postman"7  }8}

Request body fields

nameExample
string

Example field from the request body.

codeExample
string

Example field from the request body.

address_idExample
string

Example field from the request body.

metadataExample
object

Example field from the request body.

metadata.sourceExample
string

Example field from the request body.

Headers

AuthorizationOptional
header string

Bearer {{access_token}}

Content-TypeOptional
header string

application/json

Responses

Success201Created

Processing Points - List

Delivery & Last-Mile / Institution Transfer Manifest V1
GET/delivery/transfer-processing-points?page=1&limit=20&is_active=true&branch_id={{source_branch_id}}

Lists processing points for the authenticated tenant. Optional filters: is_active, search, and branch_id. When branch_id is provided, the branch's default processing point has is_default: true and is prioritized on page 1. Non-default items omit the is_default key.

Send a bearer token in the Authorization header for an authenticated OnDi user session.
Request
curl
1curl --request GET "$ONDI_BASE_URL/delivery/transfer-processing-points?page=1&limit=20&is_active=true&branch_id={{source_branch_id}}" \2  --header "Authorization: Bearer {{access_token}}"

Query parameters

pageOptional
query string

1

limitOptional
query string

20

is_activeOptional
query string

true

Optional: true | false

branch_idOptional
query string

{{source_branch_id}}

Optional branch ID used to identify and prioritize its default processing point

Headers

AuthorizationOptional
header string

Bearer {{access_token}}

Responses

Success200OK

Processing Points - Get Detail

Delivery & Last-Mile / Institution Transfer Manifest V1
GET/delivery/transfer-processing-points/{{processing_point_id}}

Gets a processing point by id.

Send a bearer token in the Authorization header for an authenticated OnDi user session.
Request
curl
1curl --request GET "$ONDI_BASE_URL/delivery/transfer-processing-points/{{processing_point_id}}" \2  --header "Authorization: Bearer {{access_token}}"

Path parameters

processing_point_idRequired
path string

Variable used inside the request path.

Headers

AuthorizationOptional
header string

Bearer {{access_token}}

Responses

No response example is available for this endpoint yet.

Processing Points - Update

Delivery & Last-Mile / Institution Transfer Manifest V1
PATCH/delivery/transfer-processing-points/{{processing_point_id}}

Updates processing point fields. code must remain unique per tenant if changed.

Send a bearer token in the Authorization header for an authenticated OnDi user session.
Request
curl
1curl --request PATCH "$ONDI_BASE_URL/delivery/transfer-processing-points/{{processing_point_id}}" \2  --header "Authorization: Bearer {{access_token}}" \3  --header "Content-Type: application/json" \4  --header "Content-Type: application/json" \5  --data '{6  "name": "G2G Processing Point Updated",7  "address_id": "{{source_address_id}}",8  "metadata": {9    "updated_from": "postman"10  }11}'
Request body
json
1{2  "name": "G2G Processing Point Updated",3  "address_id": "{{source_address_id}}",4  "metadata": {5    "updated_from": "postman"6  }7}

Path parameters

processing_point_idRequired
path string

Variable used inside the request path.

Request body fields

nameExample
string

Example field from the request body.

address_idExample
string

Example field from the request body.

metadataExample
object

Example field from the request body.

metadata.updated_fromExample
string

Example field from the request body.

Headers

AuthorizationOptional
header string

Bearer {{access_token}}

Content-TypeOptional
header string

application/json

Responses

No response example is available for this endpoint yet.

Processing Points - Deactivate

Delivery & Last-Mile / Institution Transfer Manifest V1
POST/delivery/transfer-processing-points/{{processing_point_id}}/deactivate

Soft-deactivates a processing point. Fails if non-terminal manifests reference it.

Send a bearer token in the Authorization header for an authenticated OnDi user session.
Request
curl
1curl --request POST "$ONDI_BASE_URL/delivery/transfer-processing-points/{{processing_point_id}}/deactivate" \2  --header "Authorization: Bearer {{access_token}}" \3  --header "Content-Type: application/json" \4  --header "Content-Type: application/json" \5  --data '{}'
Request body
json
1{}

Path parameters

processing_point_idRequired
path string

Variable used inside the request path.

Headers

AuthorizationOptional
header string

Bearer {{access_token}}

Content-TypeOptional
header string

application/json

Responses

No response example is available for this endpoint yet.

Institutions - List

Delivery & Last-Mile / Institution Transfer Manifest V1
GET/delivery/institutions?page=1&limit=20&search=

Lists tenant users whose tenant_user_type is institution. Use a returned id as institution_user_id.

Send a bearer token in the Authorization header for an authenticated OnDi user session.
Request
curl
1curl --request GET "$ONDI_BASE_URL/delivery/institutions?page=1&limit=20&search=" \2  --header "Authorization: Bearer {{access_token}}"

Query parameters

pageOptional
query string

1

limitOptional
query string

20

searchOptional
query string

Optional search by name, email, or phone

Headers

AuthorizationOptional
header string

Bearer {{access_token}}

Responses

No response example is available for this endpoint yet.

Institutions - Get Detail

Delivery & Last-Mile / Institution Transfer Manifest V1
GET/delivery/institutions/{{institution_user_id}}

Gets an institution tenant_user by id.

Send a bearer token in the Authorization header for an authenticated OnDi user session.
Request
curl
1curl --request GET "$ONDI_BASE_URL/delivery/institutions/{{institution_user_id}}" \2  --header "Authorization: Bearer {{access_token}}"

Path parameters

institution_user_idRequired
path string

Variable used inside the request path.

Headers

AuthorizationOptional
header string

Bearer {{access_token}}

Responses

No response example is available for this endpoint yet.

Institution Branches - Create

Delivery & Last-Mile / Institution Transfer Manifest V1
POST/delivery/institutions/{{institution_user_id}}/branches

Creates a branch under an institution. institution_user_id comes from the path, not the body. Branch code is unique per tenant/institution.

Send a bearer token in the Authorization header for an authenticated OnDi user session.
Request
curl
1curl --request POST "$ONDI_BASE_URL/delivery/institutions/{{institution_user_id}}/branches" \2  --header "Authorization: Bearer {{access_token}}" \3  --header "Content-Type: application/json" \4  --header "Content-Type: application/json" \5  --data '{6  "name": "G2G Branch",7  "code": "G2G-BR-001",8  "address_id": "{{source_address_id}}",9  "default_processing_point_id": "{{processing_point_id}}",10  "contact_info": {11    "phone": "+10000000000"12  },13  "metadata": {14    "source": "postman"15  }16}'
Request body
json
1{2  "name": "G2G Branch",3  "code": "G2G-BR-001",4  "address_id": "{{source_address_id}}",5  "default_processing_point_id": "{{processing_point_id}}",6  "contact_info": {7    "phone": "+10000000000"8  },9  "metadata": {10    "source": "postman"11  }12}

Path parameters

institution_user_idRequired
path string

Variable used inside the request path.

Request body fields

nameExample
string

Example field from the request body.

codeExample
string

Example field from the request body.

address_idExample
string

Example field from the request body.

default_processing_point_idExample
string

Example field from the request body.

contact_infoExample
object

Example field from the request body.

contact_info.phoneExample
string

Example field from the request body.

metadataExample
object

Example field from the request body.

metadata.sourceExample
string

Example field from the request body.

Headers

AuthorizationOptional
header string

Bearer {{access_token}}

Content-TypeOptional
header string

application/json

Responses

Success201Created

Institution Branches - List

Delivery & Last-Mile / Institution Transfer Manifest V1
GET/delivery/institutions/{{institution_user_id}}/branches?page=1&limit=20&is_active=true

Lists branches for an institution. Optional filters: is_active, search.

Send a bearer token in the Authorization header for an authenticated OnDi user session.
Request
curl
1curl --request GET "$ONDI_BASE_URL/delivery/institutions/{{institution_user_id}}/branches?page=1&limit=20&is_active=true" \2  --header "Authorization: Bearer {{access_token}}"

Path parameters

institution_user_idRequired
path string

Variable used inside the request path.

Query parameters

pageOptional
query string

1

limitOptional
query string

20

is_activeOptional
query string

true

Headers

AuthorizationOptional
header string

Bearer {{access_token}}

Responses

No response example is available for this endpoint yet.

Institution Branches - Tenant-wide List

Delivery & Last-Mile / Institution Transfer Manifest V1
GET/delivery/institution-branches?page=1&limit=20&is_active=true

Lists active branch/location records across all institutions in the tenant. Optional filters: institution_user_id, is_active, search, page, limit. Use this for the destination modal's Institution locations combobox. Response includes branch address and institution user basic profile.

Send a bearer token in the Authorization header for an authenticated OnDi user session.
Request
curl
1curl --request GET "$ONDI_BASE_URL/delivery/institution-branches?page=1&limit=20&is_active=true" \2  --header "Authorization: Bearer {{access_token}}"

Query parameters

pageOptional
query string

1

limitOptional
query string

20

is_activeOptional
query string

true

Headers

AuthorizationOptional
header string

Bearer {{access_token}}

Responses

No response example is available for this endpoint yet.

Institution Branches - Lookup by Code

Delivery & Last-Mile / Institution Transfer Manifest V1
GET/delivery/institution-branches/by-code/{{branch_code}}

Exact lookup for driver branch QR scanning. The QR should contain the branch code, URL-encoded if needed. By default only active branches are returned. Response includes branch detail, address, default processing point, and institution_user. If the same code exists for multiple institutions in the tenant, the API returns 409 branch_code_ambiguous with matching branch/institution summaries.

Send a bearer token in the Authorization header for an authenticated OnDi user session.
Request
curl
1curl --request GET "$ONDI_BASE_URL/delivery/institution-branches/by-code/{{branch_code}}" \2  --header "Authorization: Bearer {{access_token}}"

Path parameters

branch_codeRequired
path string

Variable used inside the request path.

Headers

AuthorizationOptional
header string

Bearer {{access_token}}

Responses

No response example is available for this endpoint yet.

Institution Branches - Get Detail

Delivery & Last-Mile / Institution Transfer Manifest V1
GET/delivery/institutions/{{institution_user_id}}/branches/{{branch_id}}

Gets a branch owned by the institution.

Send a bearer token in the Authorization header for an authenticated OnDi user session.
Request
curl
1curl --request GET "$ONDI_BASE_URL/delivery/institutions/{{institution_user_id}}/branches/{{branch_id}}" \2  --header "Authorization: Bearer {{access_token}}"

Path parameters

institution_user_idRequired
path string

Variable used inside the request path.

branch_idRequired
path string

Variable used inside the request path.

Headers

AuthorizationOptional
header string

Bearer {{access_token}}

Responses

No response example is available for this endpoint yet.

Institution Branches - Update

Delivery & Last-Mile / Institution Transfer Manifest V1
PATCH/delivery/institutions/{{institution_user_id}}/branches/{{branch_id}}

Updates branch fields.

Send a bearer token in the Authorization header for an authenticated OnDi user session.
Request
curl
1curl --request PATCH "$ONDI_BASE_URL/delivery/institutions/{{institution_user_id}}/branches/{{branch_id}}" \2  --header "Authorization: Bearer {{access_token}}" \3  --header "Content-Type: application/json" \4  --header "Content-Type: application/json" \5  --data '{6  "name": "G2G Branch Updated",7  "default_processing_point_id": "{{processing_point_id}}",8  "metadata": {9    "updated_from": "postman"10  }11}'
Request body
json
1{2  "name": "G2G Branch Updated",3  "default_processing_point_id": "{{processing_point_id}}",4  "metadata": {5    "updated_from": "postman"6  }7}

Path parameters

institution_user_idRequired
path string

Variable used inside the request path.

branch_idRequired
path string

Variable used inside the request path.

Request body fields

nameExample
string

Example field from the request body.

default_processing_point_idExample
string

Example field from the request body.

metadataExample
object

Example field from the request body.

metadata.updated_fromExample
string

Example field from the request body.

Headers

AuthorizationOptional
header string

Bearer {{access_token}}

Content-TypeOptional
header string

application/json

Responses

No response example is available for this endpoint yet.

Institution Branches - Deactivate

Delivery & Last-Mile / Institution Transfer Manifest V1
POST/delivery/institutions/{{institution_user_id}}/branches/{{branch_id}}/deactivate

Soft-deactivates a branch. Fails when non-terminal manifests reference it.

Send a bearer token in the Authorization header for an authenticated OnDi user session.
Request
curl
1curl --request POST "$ONDI_BASE_URL/delivery/institutions/{{institution_user_id}}/branches/{{branch_id}}/deactivate" \2  --header "Authorization: Bearer {{access_token}}" \3  --header "Content-Type: application/json" \4  --header "Content-Type: application/json" \5  --data '{}'
Request body
json
1{}

Path parameters

institution_user_idRequired
path string

Variable used inside the request path.

branch_idRequired
path string

Variable used inside the request path.

Headers

AuthorizationOptional
header string

Bearer {{access_token}}

Content-TypeOptional
header string

application/json

Responses

No response example is available for this endpoint yet.

Barcodes - Generate Batch

Delivery & Last-Mile / Institution Transfer Manifest V1
POST/delivery/institutions/{{institution_user_id}}/branches/{{branch_id}}/barcode-batches

Generates pre-printed barcode identities for an institution branch. Max quantity is 5000. Does not create driver tasks.

Send a bearer token in the Authorization header for an authenticated OnDi user session.
Request
curl
1curl --request POST "$ONDI_BASE_URL/delivery/institutions/{{institution_user_id}}/branches/{{branch_id}}/barcode-batches" \2  --header "Authorization: Bearer {{access_token}}" \3  --header "Content-Type: application/json" \4  --header "Content-Type: application/json" \5  --data '{6  "quantity": 3,7  "prefix": "G2G"8}'
Request body
json
1{2  "quantity": 3,3  "prefix": "G2G"4}

Path parameters

institution_user_idRequired
path string

Variable used inside the request path.

branch_idRequired
path string

Variable used inside the request path.

Request body fields

quantityExample
number

Example field from the request body.

prefixExample
string

Example field from the request body.

Headers

AuthorizationOptional
header string

Bearer {{access_token}}

Content-TypeOptional
header string

application/json

Responses

Success201Created

Barcodes - List Batches

Delivery & Last-Mile / Institution Transfer Manifest V1
GET/delivery/institutions/{{institution_user_id}}/barcode-batches?page=1&limit=20&status=generated

Lists barcode batches for an institution.

Send a bearer token in the Authorization header for an authenticated OnDi user session.
Request
curl
1curl --request GET "$ONDI_BASE_URL/delivery/institutions/{{institution_user_id}}/barcode-batches?page=1&limit=20&status=generated" \2  --header "Authorization: Bearer {{access_token}}"

Path parameters

institution_user_idRequired
path string

Variable used inside the request path.

Query parameters

pageOptional
query string

1

limitOptional
query string

20

statusOptional
query string

generated

Optional: draft | generated | printed | voided

Headers

AuthorizationOptional
header string

Bearer {{access_token}}

Responses

No response example is available for this endpoint yet.

Barcodes - List Branch Barcodes

Delivery & Last-Mile / Institution Transfer Manifest V1
GET/delivery/institutions/{{institution_user_id}}/branches/{{branch_id}}/barcodes?page=1&limit=20&status=available

Lists individual barcodes for a branch. Pick an available barcode_value for manifest scanning.

Send a bearer token in the Authorization header for an authenticated OnDi user session.
Request
curl
1curl --request GET "$ONDI_BASE_URL/delivery/institutions/{{institution_user_id}}/branches/{{branch_id}}/barcodes?page=1&limit=20&status=available" \2  --header "Authorization: Bearer {{access_token}}"

Path parameters

institution_user_idRequired
path string

Variable used inside the request path.

branch_idRequired
path string

Variable used inside the request path.

Query parameters

pageOptional
query string

1

limitOptional
query string

20

statusOptional
query string

available

Optional barcode status filter

Headers

AuthorizationOptional
header string

Bearer {{access_token}}

Responses

No response example is available for this endpoint yet.

Barcodes - Lookup Barcode

Delivery & Last-Mile / Institution Transfer Manifest V1
GET/delivery/institution-barcodes/{{barcode_value}}

Looks up a barcode by barcode_value. URL-encode barcode_value if it contains special characters.

Send a bearer token in the Authorization header for an authenticated OnDi user session.
Request
curl
1curl --request GET "$ONDI_BASE_URL/delivery/institution-barcodes/{{barcode_value}}" \2  --header "Authorization: Bearer {{access_token}}"

Path parameters

barcode_valueRequired
path string

Variable used inside the request path.

Headers

AuthorizationOptional
header string

Bearer {{access_token}}

Responses

No response example is available for this endpoint yet.

Barcodes - Get Batch Detail

Delivery & Last-Mile / Institution Transfer Manifest V1
GET/delivery/barcode-batches/{{batch_id}}

Gets batch detail plus individual barcodes.

Send a bearer token in the Authorization header for an authenticated OnDi user session.
Request
curl
1curl --request GET "$ONDI_BASE_URL/delivery/barcode-batches/{{batch_id}}" \2  --header "Authorization: Bearer {{access_token}}"

Path parameters

batch_idRequired
path string

Variable used inside the request path.

Headers

AuthorizationOptional
header string

Bearer {{access_token}}

Responses

No response example is available for this endpoint yet.

Barcodes - Print Batch

Delivery & Last-Mile / Institution Transfer Manifest V1
POST/delivery/barcode-batches/{{batch_id}}/print

Generates a printable PDF for a barcode batch. Send an empty body or { "print_mode": "all" } to print all barcodes; this stores the returned file URL on institution_barcode_batches.print_file_url and marks the batch printed. Send print_mode=selective with barcode_ids, barcode_values, or barcodes to print only selected barcodes; this returns the PDF URL and updates institution_item_barcodes.printed_at only for selected rows without changing the batch print_file_url. Barcode row status remains the lifecycle status (available, in_manifest, etc.) so printed but unused barcodes can still be scanned.

Send a bearer token in the Authorization header for an authenticated OnDi user session.
Request
curl
1curl --request POST "$ONDI_BASE_URL/delivery/barcode-batches/{{batch_id}}/print" \2  --header "Authorization: Bearer {{access_token}}" \3  --header "Content-Type: application/json" \4  --header "Content-Type: application/json" \5  --data '{6  "print_mode": "selective",7  "barcode_ids": [8    "{{barcode_id}}"9  ]10}'
Request body
json
1{2  "print_mode": "selective",3  "barcode_ids": [4    "{{barcode_id}}"5  ]6}

Path parameters

batch_idRequired
path string

Variable used inside the request path.

Request body fields

print_modeExample
string

Example field from the request body.

barcode_idsExample
array<string>

Example field from the request body.

Headers

AuthorizationOptional
header string

Bearer {{access_token}}

Content-TypeOptional
header string

application/json

Responses

No response example is available for this endpoint yet.

Barcodes - Void Single Barcode

Delivery & Last-Mile / Institution Transfer Manifest V1
POST/delivery/institution-barcodes/{{barcode_id}}/void

Voids a single barcode only when status is available.

Send a bearer token in the Authorization header for an authenticated OnDi user session.
Request
curl
1curl --request POST "$ONDI_BASE_URL/delivery/institution-barcodes/{{barcode_id}}/void" \2  --header "Authorization: Bearer {{access_token}}" \3  --header "Content-Type: application/json" \4  --header "Content-Type: application/json" \5  --data '{}'
Request body
json
1{}

Path parameters

barcode_idRequired
path string

Variable used inside the request path.

Headers

AuthorizationOptional
header string

Bearer {{access_token}}

Content-TypeOptional
header string

application/json

Responses

No response example is available for this endpoint yet.

Barcodes - Void Batch

Delivery & Last-Mile / Institution Transfer Manifest V1
POST/delivery/barcode-batches/{{batch_id}}/void

Voids an entire batch only if all barcodes are unused (available or already void).

Send a bearer token in the Authorization header for an authenticated OnDi user session.
Request
curl
1curl --request POST "$ONDI_BASE_URL/delivery/barcode-batches/{{batch_id}}/void" \2  --header "Authorization: Bearer {{access_token}}" \3  --header "Content-Type: application/json" \4  --header "Content-Type: application/json" \5  --data '{}'
Request body
json
1{}

Path parameters

batch_idRequired
path string

Variable used inside the request path.

Headers

AuthorizationOptional
header string

Bearer {{access_token}}

Content-TypeOptional
header string

application/json

Responses

No response example is available for this endpoint yet.

Driver - Create Draft Manifest

Delivery & Last-Mile / Institution Transfer Manifest V1
POST/delivery/transfer-manifests

Driver creates a draft transfer manifest for an institution branch. Normally driver_id resolves from the driver token; body driver_id is included here for explicit testing.

Send a bearer token in the Authorization header for an authenticated OnDi user session.
Request
curl
1curl --request POST "$ONDI_BASE_URL/delivery/transfer-manifests" \2  --header "Authorization: Bearer {{access_token}}" \3  --header "Content-Type: application/json" \4  --header "Content-Type: application/json" \5  --data '{6  "institution_user_id": "{{institution_user_id}}",7  "source_branch_id": "{{branch_id}}",8  "processing_point_id": "{{processing_point_id}}",9  "driver_id": "{{driver_id}}",10  "notes": "Postman transfer manifest test"11}'
Request body
json
1{2  "institution_user_id": "{{institution_user_id}}",3  "source_branch_id": "{{branch_id}}",4  "processing_point_id": "{{processing_point_id}}",5  "driver_id": "{{driver_id}}",6  "notes": "Postman transfer manifest test"7}

Request body fields

institution_user_idExample
string

Example field from the request body.

source_branch_idExample
string

Example field from the request body.

processing_point_idExample
string

Example field from the request body.

driver_idExample
string

Example field from the request body.

notesExample
string

Example field from the request body.

Headers

AuthorizationOptional
header string

Bearer {{access_token}}

Content-TypeOptional
header string

application/json

Responses

Success201Created

Driver - Scan Item Barcode

Delivery & Last-Mile / Institution Transfer Manifest V1
POST/delivery/transfer-manifests/{{manifest_id}}/items/scan

Scans a barcode into a draft or picked_up manifest. Validates barcode exists, belongs to same institution/branch, is available, and is not duplicated.

Send a bearer token in the Authorization header for an authenticated OnDi user session.
Request
curl
1curl --request POST "$ONDI_BASE_URL/delivery/transfer-manifests/{{manifest_id}}/items/scan" \2  --header "Authorization: Bearer {{access_token}}" \3  --header "Content-Type: application/json" \4  --header "Content-Type: application/json" \5  --data '{6  "barcode_value": "{{barcode_value}}"7}'
Request body
json
1{2  "barcode_value": "{{barcode_value}}"3}

Path parameters

manifest_idRequired
path string

Variable used inside the request path.

Request body fields

barcode_valueExample
string

Example field from the request body.

Headers

AuthorizationOptional
header string

Bearer {{access_token}}

Content-TypeOptional
header string

application/json

Responses

Success201Created
Duplicate / Used Barcode409Conflict

Driver - Remove Item Before Submit

Delivery & Last-Mile / Institution Transfer Manifest V1
DELETE/delivery/transfer-manifests/{{manifest_id}}/items/{{item_id}}

Removes a scanned item only while the manifest is still draft. The operation is atomic: it returns the barcode to available, deletes the manifest item, reconciles expected_item_count to the actual remaining row count, and records item_removed in manifest history. A success response guarantees that the database item row was deleted. Frontend integration: call DELETE with the manifest ID and item ID from the current manifest item. On HTTP 200, remove that item from the local list and use data.remaining_item_count as the authoritative count. Handle 404 as a stale/missing manifest or item, 409 as a manifest that is no longer editable, and 500 as a failed removal; do not remove the item locally for non-200 responses.

Send a bearer token in the Authorization header for an authenticated OnDi user session.
Request
curl
1curl --request DELETE "$ONDI_BASE_URL/delivery/transfer-manifests/{{manifest_id}}/items/{{item_id}}" \2  --header "Authorization: Bearer {{access_token}}"

Path parameters

manifest_idRequired
path string

Variable used inside the request path.

item_idRequired
path string

Variable used inside the request path.

Headers

AuthorizationOptional
header string

Bearer {{access_token}}

Responses

Item Removed200OK
Manifest No Longer Editable409Conflict
Manifest or Item Not Found404Not Found

Driver - Submit Pickup

Delivery & Last-Mile / Institution Transfer Manifest V1
POST/delivery/transfer-manifests/{{manifest_id}}/submit-pickup

Locks the scan list and moves manifest draft -> picked_up. Items move scanned -> picked_up. Requires at least one item.

Send a bearer token in the Authorization header for an authenticated OnDi user session.
Request
curl
1curl --request POST "$ONDI_BASE_URL/delivery/transfer-manifests/{{manifest_id}}/submit-pickup" \2  --header "Authorization: Bearer {{access_token}}" \3  --header "Content-Type: application/json" \4  --header "Content-Type: application/json" \5  --data '{}'
Request body
json
1{}

Path parameters

manifest_idRequired
path string

Variable used inside the request path.

Headers

AuthorizationOptional
header string

Bearer {{access_token}}

Content-TypeOptional
header string

application/json

Responses

No response example is available for this endpoint yet.

Driver - Driver Action

Delivery & Last-Mile / Institution Transfer Manifest V1
POST/delivery/transfer-manifests/{{manifest_id}}/driver-action

Generic driver action endpoint for transfer manifests. Supported action values: submit_pickup, arrive_processing. Kept for clients that send action in the request body.

Send a bearer token in the Authorization header for an authenticated OnDi user session.
Request
curl
1curl --request POST "$ONDI_BASE_URL/delivery/transfer-manifests/{{manifest_id}}/driver-action" \2  --header "Authorization: Bearer {{access_token}}" \3  --header "Content-Type: application/json" \4  --header "Content-Type: application/json" \5  --data '{6  "action": "submit_pickup"7}'
Request body
json
1{2  "action": "submit_pickup"3}

Path parameters

manifest_idRequired
path string

Variable used inside the request path.

Request body fields

actionExample
string

Example field from the request body.

Headers

AuthorizationOptional
header string

Bearer {{access_token}}

Content-TypeOptional
header string

application/json

Responses

No response example is available for this endpoint yet.

Driver - Arrive Processing

Delivery & Last-Mile / Institution Transfer Manifest V1
POST/delivery/transfer-manifests/{{manifest_id}}/arrive-processing

Marks the manifest as awaiting receipt at the processing point.

Send a bearer token in the Authorization header for an authenticated OnDi user session.
Request
curl
1curl --request POST "$ONDI_BASE_URL/delivery/transfer-manifests/{{manifest_id}}/arrive-processing" \2  --header "Authorization: Bearer {{access_token}}" \3  --header "Content-Type: application/json" \4  --header "Content-Type: application/json" \5  --data '{}'
Request body
json
1{}

Path parameters

manifest_idRequired
path string

Variable used inside the request path.

Headers

AuthorizationOptional
header string

Bearer {{access_token}}

Content-TypeOptional
header string

application/json

Responses

No response example is available for this endpoint yet.

Driver - List My Transfer Manifests

Delivery & Last-Mile / Institution Transfer Manifest V1
GET/delivery/driver/transfer-manifests?page=1&limit=20

Driver-scoped manifest list. Returns only manifests assigned to the authenticated driver.

Send a bearer token in the Authorization header for an authenticated OnDi user session.
Request
curl
1curl --request GET "$ONDI_BASE_URL/delivery/driver/transfer-manifests?page=1&limit=20" \2  --header "Authorization: Bearer {{access_token}}"

Query parameters

pageOptional
query string

1

limitOptional
query string

20

Headers

AuthorizationOptional
header string

Bearer {{access_token}}

Responses

No response example is available for this endpoint yet.

Driver - Get My Transfer Manifest

Delivery & Last-Mile / Institution Transfer Manifest V1
GET/delivery/driver/transfer-manifests/{{manifest_id}}

Driver-scoped manifest detail with item list. Returns 404 if the manifest belongs to another driver.

Send a bearer token in the Authorization header for an authenticated OnDi user session.
Request
curl
1curl --request GET "$ONDI_BASE_URL/delivery/driver/transfer-manifests/{{manifest_id}}" \2  --header "Authorization: Bearer {{access_token}}"

Path parameters

manifest_idRequired
path string

Variable used inside the request path.

Headers

AuthorizationOptional
header string

Bearer {{access_token}}

Responses

No response example is available for this endpoint yet.

Dispatcher - List Transfer Manifests

Delivery & Last-Mile / Institution Transfer Manifest V1
GET/delivery/transfer-manifests?page=1&limit=20&status=&institution_user_id=&source_branch_id=&processing_point_id=&date_from=&date_to=&search=

Dispatcher list with filters. Date filters apply to manifest created_at.

Send a bearer token in the Authorization header for an authenticated OnDi user session.
Request
curl
1curl --request GET "$ONDI_BASE_URL/delivery/transfer-manifests?page=1&limit=20&status=&institution_user_id=&source_branch_id=&processing_point_id=&date_from=&date_to=&search=" \2  --header "Authorization: Bearer {{access_token}}"

Query parameters

pageOptional
query string

1

limitOptional
query string

20

statusOptional
query string

Optional manifest status

institution_user_idOptional
query string

Optional institution tenant_user id

source_branch_idOptional
query string

Optional source branch id

processing_point_idOptional
query string

Optional processing point id

date_fromOptional
query string

Optional created_at from

date_toOptional
query string

Optional created_at to

searchOptional
query string

Optional manifest_number search

Headers

AuthorizationOptional
header string

Bearer {{access_token}}

Responses

No response example is available for this endpoint yet.

Dispatcher - Get Manifest Detail

Delivery & Last-Mile / Institution Transfer Manifest V1
GET/delivery/transfer-manifests/{{manifest_id}}

Manifest detail with item list, source branch, processing point, and source address embeds.

Send a bearer token in the Authorization header for an authenticated OnDi user session.
Request
curl
1curl --request GET "$ONDI_BASE_URL/delivery/transfer-manifests/{{manifest_id}}" \2  --header "Authorization: Bearer {{access_token}}"

Path parameters

manifest_idRequired
path string

Variable used inside the request path.

Headers

AuthorizationOptional
header string

Bearer {{access_token}}

Responses

No response example is available for this endpoint yet.

Dispatcher - Start Receiving

Delivery & Last-Mile / Institution Transfer Manifest V1
POST/delivery/transfer-manifests/{{manifest_id}}/receive/start

Begins receipt at processing point. Allowed from awaiting_receipt, picked_up, or in_transit_to_processing.

Send a bearer token in the Authorization header for an authenticated OnDi user session.
Request
curl
1curl --request POST "$ONDI_BASE_URL/delivery/transfer-manifests/{{manifest_id}}/receive/start" \2  --header "Authorization: Bearer {{access_token}}" \3  --header "Content-Type: application/json" \4  --header "Content-Type: application/json" \5  --data '{}'
Request body
json
1{}

Path parameters

manifest_idRequired
path string

Variable used inside the request path.

Headers

AuthorizationOptional
header string

Bearer {{access_token}}

Content-TypeOptional
header string

application/json

Responses

No response example is available for this endpoint yet.

Dispatcher - Receive Items

Delivery & Last-Mile / Institution Transfer Manifest V1
POST/delivery/transfer-manifests/{{manifest_id}}/receive/items

Marks scanned items received in scan_each_item mode. Returns received, unknown, and already_processed arrays.

Send a bearer token in the Authorization header for an authenticated OnDi user session.
Request
curl
1curl --request POST "$ONDI_BASE_URL/delivery/transfer-manifests/{{manifest_id}}/receive/items" \2  --header "Authorization: Bearer {{access_token}}" \3  --header "Content-Type: application/json" \4  --header "Content-Type: application/json" \5  --data '{6  "barcode_values": [7    "{{barcode_value}}"8  ]9}'
Request body
json
1{2  "barcode_values": [3    "{{barcode_value}}"4  ]5}

Path parameters

manifest_idRequired
path string

Variable used inside the request path.

Request body fields

barcode_valuesExample
array<string>

Example field from the request body.

Headers

AuthorizationOptional
header string

Bearer {{access_token}}

Content-TypeOptional
header string

application/json

Responses

Success200OK

Dispatcher - Complete Receiving

Delivery & Last-Mile / Institution Transfer Manifest V1
POST/delivery/transfer-manifests/{{manifest_id}}/receive/complete

Completes receipt. In scan_each_item mode, remaining unreceived items become missing_at_receipt exceptions. In count_only mode, open items are bulk marked received.

Send a bearer token in the Authorization header for an authenticated OnDi user session.
Request
curl
1curl --request POST "$ONDI_BASE_URL/delivery/transfer-manifests/{{manifest_id}}/receive/complete" \2  --header "Authorization: Bearer {{access_token}}" \3  --header "Content-Type: application/json" \4  --header "Content-Type: application/json" \5  --data '{6  "notes": "Receipt completed from Postman"7}'
Request body
json
1{2  "notes": "Receipt completed from Postman"3}

Path parameters

manifest_idRequired
path string

Variable used inside the request path.

Request body fields

notesExample
string

Example field from the request body.

Headers

AuthorizationOptional
header string

Bearer {{access_token}}

Content-TypeOptional
header string

application/json

Responses

No response example is available for this endpoint yet.

Dispatcher - Assign Item Destination

Delivery & Last-Mile / Institution Transfer Manifest V1
PATCH/delivery/transfer-manifests/{{manifest_id}}/items/{{item_id}}/destination

Assigns destination address and delivery service to one received item, then immediately creates the delivery order using institution wallet payment with payer_type=sender. destination_branch_id is optional; remove it or leave blank if not applicable. delivery_service_id is optional when G2G settings has default_delivery_service_id configured; otherwise it is required. Destination branches must be active and have an address. Fails if item is not received or is terminal.

Send a bearer token in the Authorization header for an authenticated OnDi user session.
Request
curl
1curl --request PATCH "$ONDI_BASE_URL/delivery/transfer-manifests/{{manifest_id}}/items/{{item_id}}/destination" \2  --header "Authorization: Bearer {{access_token}}" \3  --header "Content-Type: application/json" \4  --header "Content-Type: application/json" \5  --data '{6  "destination_address_id": "{{destination_address_id}}",7  "delivery_service_id": "{{delivery_service_id}}",8  "destination_branch_id": "{{destination_branch_id}}"9}'
Request body
json
1{2  "destination_address_id": "{{destination_address_id}}",3  "delivery_service_id": "{{delivery_service_id}}",4  "destination_branch_id": "{{destination_branch_id}}"5}

Path parameters

manifest_idRequired
path string

Variable used inside the request path.

item_idRequired
path string

Variable used inside the request path.

Request body fields

destination_address_idExample
string

Example field from the request body.

delivery_service_idExample
string

Example field from the request body.

destination_branch_idExample
string

Example field from the request body.

Headers

AuthorizationOptional
header string

Bearer {{access_token}}

Content-TypeOptional
header string

application/json

Responses

No response example is available for this endpoint yet.

Dispatcher - Bulk Assign Destination

Delivery & Last-Mile / Institution Transfer Manifest V1
POST/delivery/transfer-manifests/{{manifest_id}}/items/bulk-assign-destination

Assigns the same destination and service to multiple received items, then creates delivery orders using institution wallet payment with payer_type=sender. Delivery creation uses bounded parallel processing. Successful promotions are finalized by one database operation that links deliveries, items, and barcodes and updates the manifest state and bulk event once. delivery_service_id is optional when G2G settings has default_delivery_service_id configured; otherwise it is required. Destination branches must be active and have an address. Items that are not received are not eligible.

Send a bearer token in the Authorization header for an authenticated OnDi user session.
Request
curl
1curl --request POST "$ONDI_BASE_URL/delivery/transfer-manifests/{{manifest_id}}/items/bulk-assign-destination" \2  --header "Authorization: Bearer {{access_token}}" \3  --header "Content-Type: application/json" \4  --header "Content-Type: application/json" \5  --data '{6  "item_ids": [7    "{{item_id}}"8  ],9  "destination_address_id": "{{destination_address_id}}",10  "delivery_service_id": "{{delivery_service_id}}",11  "destination_branch_id": "{{destination_branch_id}}"12}'
Request body
json
1{2  "item_ids": [3    "{{item_id}}"4  ],5  "destination_address_id": "{{destination_address_id}}",6  "delivery_service_id": "{{delivery_service_id}}",7  "destination_branch_id": "{{destination_branch_id}}"8}

Path parameters

manifest_idRequired
path string

Variable used inside the request path.

Request body fields

item_idsExample
array<string>

Example field from the request body.

destination_address_idExample
string

Example field from the request body.

delivery_service_idExample
string

Example field from the request body.

destination_branch_idExample
string

Example field from the request body.

Headers

AuthorizationOptional
header string

Bearer {{access_token}}

Content-TypeOptional
header string

application/json

Responses

No response example is available for this endpoint yet.

Dispatcher - Flag Item Exception

Delivery & Last-Mile / Institution Transfer Manifest V1
POST/delivery/transfer-manifests/{{manifest_id}}/items/{{item_id}}/exception

Moves a non-order-created item to exception. Reasons: missing_at_receipt, duplicate_barcode, wrong_branch_or_institution, damaged, opened_envelope, restricted_destination, destination_unknown, manual_hold, other.

Send a bearer token in the Authorization header for an authenticated OnDi user session.
Request
curl
1curl --request POST "$ONDI_BASE_URL/delivery/transfer-manifests/{{manifest_id}}/items/{{item_id}}/exception" \2  --header "Authorization: Bearer {{access_token}}" \3  --header "Content-Type: application/json" \4  --header "Content-Type: application/json" \5  --data '{6  "exception_reason": "manual_hold",7  "exception_notes": "Held for manual review"8}'
Request body
json
1{2  "exception_reason": "manual_hold",3  "exception_notes": "Held for manual review"4}

Path parameters

manifest_idRequired
path string

Variable used inside the request path.

item_idRequired
path string

Variable used inside the request path.

Request body fields

exception_reasonExample
string

Example field from the request body.

exception_notesExample
string

Example field from the request body.

Headers

AuthorizationOptional
header string

Bearer {{access_token}}

Content-TypeOptional
header string

application/json

Responses

No response example is available for this endpoint yet.

Exceptions - List Unresolved Transfer Manifest Exceptions

Delivery & Last-Mile / Institution Transfer Manifest V1
GET/delivery/transfer-manifest-exceptions?page=1&limit=20&manifest_id={{manifest_id}}&exception_reason=

Lists manifest items currently in exception status.

Send a bearer token in the Authorization header for an authenticated OnDi user session.
Request
curl
1curl --request GET "$ONDI_BASE_URL/delivery/transfer-manifest-exceptions?page=1&limit=20&manifest_id={{manifest_id}}&exception_reason=" \2  --header "Authorization: Bearer {{access_token}}"

Query parameters

pageOptional
query string

1

limitOptional
query string

20

manifest_idOptional
query string

{{manifest_id}}

Optional manifest id

exception_reasonOptional
query string

Optional reason filter

Headers

AuthorizationOptional
header string

Bearer {{access_token}}

Responses

No response example is available for this endpoint yet.

Exceptions - Resolve Exception As Reprocess

Delivery & Last-Mile / Institution Transfer Manifest V1
POST/delivery/transfer-manifest-exceptions/{{item_id}}/resolve

Resolves an exception by returning item to received status so destination/order creation can continue.

Send a bearer token in the Authorization header for an authenticated OnDi user session.
Request
curl
1curl --request POST "$ONDI_BASE_URL/delivery/transfer-manifest-exceptions/{{item_id}}/resolve" \2  --header "Authorization: Bearer {{access_token}}" \3  --header "Content-Type: application/json" \4  --header "Content-Type: application/json" \5  --data '{6  "resolution": "reprocess",7  "notes": "Corrected and ready for processing"8}'
Request body
json
1{2  "resolution": "reprocess",3  "notes": "Corrected and ready for processing"4}

Path parameters

item_idRequired
path string

Variable used inside the request path.

Request body fields

resolutionExample
string

Example field from the request body.

notesExample
string

Example field from the request body.

Headers

AuthorizationOptional
header string

Bearer {{access_token}}

Content-TypeOptional
header string

application/json

Responses

No response example is available for this endpoint yet.

Exceptions - Resolve Exception As Void

Delivery & Last-Mile / Institution Transfer Manifest V1
POST/delivery/transfer-manifest-exceptions/{{item_id}}/resolve

Resolves an exception by voiding the item/barcode. This may complete the manifest if all items are terminal.

Send a bearer token in the Authorization header for an authenticated OnDi user session.
Request
curl
1curl --request POST "$ONDI_BASE_URL/delivery/transfer-manifest-exceptions/{{item_id}}/resolve" \2  --header "Authorization: Bearer {{access_token}}" \3  --header "Content-Type: application/json" \4  --header "Content-Type: application/json" \5  --data '{6  "resolution": "void",7  "notes": "Voided after review"8}'
Request body
json
1{2  "resolution": "void",3  "notes": "Voided after review"4}

Path parameters

item_idRequired
path string

Variable used inside the request path.

Request body fields

resolutionExample
string

Example field from the request body.

notesExample
string

Example field from the request body.

Headers

AuthorizationOptional
header string

Bearer {{access_token}}

Content-TypeOptional
header string

application/json

Responses

No response example is available for this endpoint yet.

Events - Manifest Timeline

Delivery & Last-Mile / Institution Transfer Manifest V1
GET/delivery/transfer-manifests/{{manifest_id}}/events?page=1&limit=50

Returns append-only event history for a manifest. Expected happy-path events include manifest_created, item_scanned, manifest_picked_up, manifest_arrived, receiving_started, items_received, receiving_completed, order_created, and manifest_completed.

Send a bearer token in the Authorization header for an authenticated OnDi user session.
Request
curl
1curl --request GET "$ONDI_BASE_URL/delivery/transfer-manifests/{{manifest_id}}/events?page=1&limit=50" \2  --header "Authorization: Bearer {{access_token}}"

Path parameters

manifest_idRequired
path string

Variable used inside the request path.

Query parameters

pageOptional
query string

1

limitOptional
query string

50

Headers

AuthorizationOptional
header string

Bearer {{access_token}}

Responses

No response example is available for this endpoint yet.

Dispatcher - Cancel Manifest

Delivery & Last-Mile / Institution Transfer Manifest V1
POST/delivery/transfer-manifests/{{manifest_id}}/cancel

Cancels a manifest before receiving/order creation. Non-order-created items become void and linked barcodes return to available.

Send a bearer token in the Authorization header for an authenticated OnDi user session.
Request
curl
1curl --request POST "$ONDI_BASE_URL/delivery/transfer-manifests/{{manifest_id}}/cancel" \2  --header "Authorization: Bearer {{access_token}}" \3  --header "Content-Type: application/json" \4  --header "Content-Type: application/json" \5  --data '{6  "reason": "Cancelled from Postman test"7}'
Request body
json
1{2  "reason": "Cancelled from Postman test"3}

Path parameters

manifest_idRequired
path string

Variable used inside the request path.

Request body fields

reasonExample
string

Example field from the request body.

Headers

AuthorizationOptional
header string

Bearer {{access_token}}

Content-TypeOptional
header string

application/json

Responses

No response example is available for this endpoint yet.