Confirm Delivery
/fina/v1/orders/confirm_deliveryMarks an order as delivered by submitting a proof of delivery (POD), such as an image or document URL — or, with SMS_LINK, by asking the buyer to confirm receipt via SMS. Required for downstream reconciliation.
delivery_proof_url is fetched server-side
FINA downloads the file at delivery_proof_url and re-hosts it, so the URL must point at a real, reachable image or document. A placeholder or auth-protected link fails. An expiring pre-signed link (e.g. S3/GCS) works fine as long as it is still valid when you call this endpoint.
Buyer confirmation flow
With confirmation_type SMS_LINK the response returns order_status OUT_FOR_DELIVERY, not DELIVERED:
- 1FINA SMSes the buyer a confirmation link — the order completes only after the buyer confirms (reminders are sent if they don't act).
- 2Invoicing is held until the buyer confirms.
Buyer confirms
The order moves to DELIVERED and the
delivery_callback_webhook_url(if provided) receives POST {order_number: "...",status:DELIVERY_CONFIRMED,event_timestamp: "..."}.Buyer disputes
The order is held, no invoice is generated, and FINA operations contacts both parties to resolve it.
Request
The order_id returned by Initiate Checkout.e.g. F26070910AB3XKQ70
URL of the proof of delivery (image or document). Required when confirmation_type is unset or "POD"; not used with SMS_LINK. FINA fetches it server-side, so it must resolve without authentication — an expiring pre-signed link (e.g. S3/GCS) works fine as long as it is still valid when you call this endpoint.e.g. https://example.com/pod/ORD-2026-0001.jpg
How delivery is being confirmed. SMS_LINK asks the buyer to confirm receipt instead of a POD — FINA SMSes the buyer a confirmation link when this endpoint is called. Defaults to proof-of-delivery (POD) when unset.SMS_LINKPOD
Optional HTTPS URL FINA calls once the buyer confirms delivery. The URL's origin must be pre-registered (allowlisted) with FINA during onboarding — a non-allowlisted URL rejects the request.e.g. https://merchant.example.com/fina/delivery-callback
Optional secret FINA uses to sign the delivery callback — same X-Fina-Signature / X-Fina-Timestamp scheme as the Down Payment Webhook; see that page for verification code.
Response
Numeric code as a string; "0" on success.
Failure details, empty on success.
Human-readable status.
true when delivery was confirmed.
The delivered order.
FINA's order identifier.
Your order reference.
"DELIVERED" for the POD flow. "OUT_FOR_DELIVERY" for SMS_LINK — the order moves to DELIVERED once the buyer confirms.
Errors
Returned as HTTP 200 with a non-zero error_code — see Error Handling.
| Code | Name | Description | Resolution |
|---|---|---|---|
400 | INVALID_PARAMS | A required field is missing or a value failed validation (e.g. totals don't reconcile, invalid phone format, unknown field value). | Check errors[] for the failing field. Ensure order.total_amount equals the sum of items[].total_amount plus shipping_amount minus discount_amount. |
808 | INVALID_ORDER | No order was found for the given order_id / order_number. | Use the order_id returned by Initiate Checkout. |
811 | INVALID_ORDER_STATE | The order is not in a state that allows this operation (e.g. authorising an expired order, confirming delivery on an unauthorised order). | Check the order lifecycle; only perform operations valid for the order's current status. |
500 | INTERNAL_ERROR | An unexpected failure occurred on FINA's side. | Retry with backoff; contact FINA support if it persists. |
https://apibe.silqfi.xyzcurl -X POST "https://apibe.silqfi.xyz/fina/v1/orders/confirm_delivery" \
-H "Authorization: bearer FINA_BEARER_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"order_id": "F26070910AB3XKQ70",
"confirmation_type": "SMS_LINK",
"delivery_callback_webhook_url": "https://merchant.example.com/fina/delivery-callback",
"delivery_callback_webhook_secret": "your-webhook-secret"
}'FINA_BEARER_TOKEN is provided by the FINA team, per environment. Contact the FINA team for the production base URL.
{
"error_code": "0",
"errors": [],
"message": "Delivery confirmed successfully",
"data": {
"order_id": "F26070910AB3XKQ70",
"order_reference_id": "ORD-2026-0001",
"order_status": "DELIVERED"
},
"success": true
}