Financial Dashboard (Delivery)
6 API calls in this section.
Payout success and failure response messages are localized using language or Accept-Language. Database error text is never returned for display. English examples include The payout was approved successfully, The payout was rejected successfully, and The manual payout request was created successfully.
Get Financial Dashboard (Overview)
/delivery/financial-dashboardReturns the Financial Dashboard overview payload.
Includes
KPI summary cards (with trends and sparkline
chart_data)Revenue chart (Delivery Fees vs COD Collected)
COD breakdown donut values
Customer breakdown (Individual vs Business)
Wallet overview (total wallet balances, pending payouts, available after payouts)
Notes
pending_payoutsand wallet overview are point-in-time (not date-range based), but respect customer filters.KPI totals and charts follow the date range.
Permissions
view:
financial_reportsOR view:finance:tenant OR manage:wallets OR manage:operations:tenant
Query parameters
| Parameter | Type | Description |
|---|---|---|
start_date | string | Filter from date (ISO or YYYY-MM-DD). Default: last 56 days window. |
end_date | string | Filter to date (ISO or YYYY-MM-DD). Default: today (UTC day). |
customer_type | string | Filter by customer type: individual | business |
customer_id | string | Filter by customer user id (UUID) |
tenant_idOptional | string | Tenant ID (optional if in auth token) |
language | string | Preferred language for response messages Example: |
Headers
| Parameter | Type | Description |
|---|---|---|
Authorization | string | Example: |
1curl --globoff --request GET "https://staging-api.ondi.io/functions/v1/delivery/financial-dashboard?start_date=&end_date=&customer_type=&customer_id=&tenant_id=&language=en" \2 --header "Authorization: Bearer ${ONDI_ACCESS_TOKEN}"Response examples
No saved response example. Use Try it to inspect a staging response.
Get Driver COD Ranking
/delivery/financial-dashboard/driver-codReturns drivers ranked by COD collected in the date range.
Each row includes
total_cod_collectedtotal_cod_remitted(includessettled_by_wallet)pending_coddeliveries_completedavg_cod_per_deliveryremit_rate(%)
Permissions
view:
financial_reportsOR view:finance:tenant OR manage:wallets OR manage:operations:tenant
Query parameters
| Parameter | Type | Description |
|---|---|---|
page | string | Page number (default: 1) Example: |
limit | string | Items per page (default: 10, max: 100) Example: |
start_date | string | Filter from date (ISO or YYYY-MM-DD). Default: last 56 days window. |
end_date | string | Filter to date (ISO or YYYY-MM-DD). Default: today (UTC day). |
customer_typeOptional | string | Optional customer type filter: individual | business |
customer_idOptional | string | Optional customer user id filter (UUID) |
tenant_idOptional | string | Tenant ID (optional if in auth token) |
language | string | Preferred language for response messages Example: |
Headers
| Parameter | Type | Description |
|---|---|---|
Authorization | string | Example: |
1curl --globoff --request GET "https://staging-api.ondi.io/functions/v1/delivery/financial-dashboard/driver-cod?page=1&limit=10&start_date=&end_date=&customer_type=&customer_id=&tenant_id=&language=en" \2 --header "Authorization: Bearer ${ONDI_ACCESS_TOKEN}"Response examples
No saved response example. Use Try it to inspect a staging response.
List Payout Requests
/delivery/financial-dashboard/payout-requestsReturns payout requests with filters and pagination.
Includes per row
customer_name/ phonewallet_balancetotal_orders(lifetime count in tenant)requested_at/processed_at
Also returns top-level counts for the KPI strip:
all
pending
approved
rejected
Notes
countsrespect search, date range, customer type, user, and tenant filterscountsintentionally ignore the activestatusfilter
Permissions
view:
financial_reportsOR view:finance:tenant OR manage:wallets OR manage:operations:tenant
Query parameters
| Parameter | Type | Description |
|---|---|---|
status | string | Filter by status: pending | approved | rejected (omit for all) |
customer_type | string | Filter by customer type: individual | business (omit for all) |
user_id | string | Filter by customer user id (UUID) |
search | string | Search by customer name or phone |
start_date | string | Filter by |
end_date | string | Filter by |
page | string | Page number (default: 1) Example: |
limit | string | Items per page (default: 10, max: 100) Example: |
tenant_idOptional | string | Tenant ID (optional if in auth token) |
language | string | Preferred language for response messages Example: |
Headers
| Parameter | Type | Description |
|---|---|---|
Authorization | string | Example: |
1curl --globoff --request GET "https://staging-api.ondi.io/functions/v1/delivery/financial-dashboard/payout-requests?status=&customer_type=&user_id=&search=&start_date=&end_date=&page=1&limit=10&tenant_id=&language=en" \2 --header "Authorization: Bearer ${ONDI_ACCESS_TOKEN}"Response examples
No saved response example. Use Try it to inspect a staging response.
Approve Payout Request
/delivery/financial-dashboard/payout-requests/:id/approveApproves a pending payout request and creates a wallet debit transaction. HTTP 200 returns a localized success message; an RPC failure returns a localized safe message and never exposes database error text.
Permissions
manage:wallets OR manage:operations:tenant
Path parameters
| Parameter | Type | Description |
|---|---|---|
idRequired | string | Payout request ID Example: |
Query parameters
| Parameter | Type | Description |
|---|---|---|
tenant_idOptional | string | Tenant ID (optional if in auth token) |
language | string | Preferred language for response messages Example: |
Headers
| Parameter | Type | Description |
|---|---|---|
Authorization | string | Example: |
Content-Type | string | Example: |
Body parameters
| Parameter | Type | Description |
|---|---|---|
notes | string | — |
1curl --globoff --request POST "https://staging-api.ondi.io/functions/v1/delivery/financial-dashboard/payout-requests/${ID}/approve?tenant_id=&language=en" \2 --header "Authorization: Bearer ${ONDI_ACCESS_TOKEN}" \3 --header "Content-Type: application/json" \4 --data-raw '{5 "notes": ""6}'Response examples
No saved response example. Use Try it to inspect a staging response.
Reject Payout Request
/delivery/financial-dashboard/payout-requests/:id/rejectRejects a pending payout request (no wallet transaction is created). HTTP 200 returns a localized success message; an RPC failure returns a localized safe message and never exposes database error text.
Body is optional.
If
reasonis omitted/empty, backend stores a default reason.
Permissions
manage:wallets OR manage:operations:tenant
Path parameters
| Parameter | Type | Description |
|---|---|---|
idRequired | string | Payout request ID Example: |
Query parameters
| Parameter | Type | Description |
|---|---|---|
tenant_idOptional | string | Tenant ID (optional if in auth token) |
language | string | Preferred language for response messages Example: |
Headers
| Parameter | Type | Description |
|---|---|---|
Authorization | string | Example: |
Content-Type | string | Example: |
Body parameters
| Parameter | Type | Description |
|---|---|---|
reason | string | — |
1curl --globoff --request POST "https://staging-api.ondi.io/functions/v1/delivery/financial-dashboard/payout-requests/${ID}/reject?tenant_id=&language=en" \2 --header "Authorization: Bearer ${ONDI_ACCESS_TOKEN}" \3 --header "Content-Type: application/json" \4 --data-raw '{5 "reason": ""6}'Response examples
No saved response example. Use Try it to inspect a staging response.
Create Manual Payout
/delivery/financial-dashboard/payoutsCreates a manual payout request with caller-provided status. Success returns a localized message: English is The manual payout request was created successfully for pending or The manual payout was created successfully for approved.
Behavior
pending: creates only the payout request
approved: creates the payout request and immediately debits the wallet
Permissions
manage:wallets OR manage:operations:tenant
Query parameters
| Parameter | Type | Description |
|---|---|---|
tenant_idOptional | string | Tenant ID (optional if in auth token) |
language | string | Preferred language for response messages Example: |
Headers
| Parameter | Type | Description |
|---|---|---|
Authorization | string | Example: |
Content-Type | string | Example: |
Body parameters
| Parameter | Type | Description |
|---|---|---|
business_user_idRequired | string | (required) |
amountRequired | number | (required) |
statusRequired | string | (required: pending | approved) |
referenceOptional | string | (optional) |
notesOptional | string | (optional) |
1curl --globoff --request POST "https://staging-api.ondi.io/functions/v1/delivery/financial-dashboard/payouts?tenant_id=&language=en" \2 --header "Authorization: Bearer ${ONDI_ACCESS_TOKEN}" \3 --header "Content-Type: application/json" \4 --data-raw '{5 "business_user_id": "",6 "amount": 0,7 "status": "pending",8 "reference": "",9 "notes": ""10}'Response examples
No saved response example. Use Try it to inspect a staging response.