FinaDOCS

Confirm Delivery

POST/fina/v1/orders/confirm_delivery

Marks 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:

  1. 1FINA SMSes the buyer a confirmation link — the order completes only after the buyer confirms (reminders are sent if they don't act).
  2. 2Invoicing is held until the buyer confirms.
  3. 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

order_idstringrequired

The order_id returned by Initiate Checkout.e.g. F26070910AB3XKQ70

delivery_proof_urlstringrequired for the POD flow; must be fetchable without authentication

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

confirmation_typestring

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

delivery_callback_webhook_urlstringSMS_LINK only; HTTPS; origin must be allowlisted with FINA

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

delivery_callback_webhook_secretstringSMS_LINK only

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

error_codestring

Numeric code as a string; "0" on success.

errorsarray

Failure details, empty on success.

messagestring

Human-readable status.

successboolean

true when delivery was confirmed.

object

The delivered order.

order_idstring

FINA's order identifier.

order_reference_idstring

Your order reference.

order_statusstring

"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.

CodeNameDescriptionResolution
400INVALID_PARAMSA 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.
808INVALID_ORDERNo order was found for the given order_id / order_number.Use the order_id returned by Initiate Checkout.
811INVALID_ORDER_STATEThe 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.
500INTERNAL_ERRORAn unexpected failure occurred on FINA's side.Retry with backoff; contact FINA support if it persists.
Sandbox
POST /fina/v1/orders/confirm_delivery · Buyer confirmation
curl -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.

Response · 200 · Success
{
  "error_code": "0",
  "errors": [],
  "message": "Delivery confirmed successfully",
  "data": {
    "order_id": "F26070910AB3XKQ70",
    "order_reference_id": "ORD-2026-0001",
    "order_status": "DELIVERED"
  },
  "success": true
}