FinaDOCS

Add FINA Invoice

POST/fina/v1/invoices/add

Attaches your invoice PDF to an existing order for downstream reconciliation.

Prefer invoice_pdf_data — send the PDF inline as base64

Every request must carry the invoice file in exactly one of invoice_pdf_data or invoice_url. Sending neither is rejected. invoice_pdf_data is the recommended option: the bytes travel with the request, so nothing depends on a link staying public or unexpired. Fall back to invoice_url only when you cannot inline the file.

invoice_url is fetched server-side

If you do send invoice_url, FINA downloads the file and re-hosts it, so the URL must point at a real, reachable PDF. A placeholder or auth-protected link fails with error 813. An expiring pre-signed link (e.g. S3/GCS) works only while it is still valid when you call this endpoint — which is exactly the failure mode invoice_pdf_data avoids.

Request

channelenum

Always "FINA" for this integration.FINA

order_numberstringrequired

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

invoice_numberstringrequired

Your invoice number.e.g. INV-2026-0001

invoice_pdf_datastringpreferred; required unless invoice_url is sent

The invoice PDF as a base64 string. Preferred over invoice_url — the file travels with the request, so nothing depends on a link being publicly reachable or unexpired.e.g. JVBERi0xLjcKCjEgMCBvYmoKPDwvVHlwZS9DYXRhbG9n…

invoice_urlstringfallback; required unless invoice_pdf_data is sent

URL of the invoice PDF, for when you cannot inline the file. FINA fetches it server-side, so it must resolve without authentication — an expiring pre-signed link (e.g. S3/GCS) works only while it is still valid when you call this endpoint.e.g. https://example.com/invoices/INV-2026-0001.pdf

Response

error_codestring

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

errorsarray

Failure details, empty on success.

messagestring

Human-readable status.

successboolean

true when the invoice was attached.

object

The order the invoice was attached to.

order_idstring

FINA's order identifier.

order_reference_idstring

Your order reference.

order_statusstring

Current order status.

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.
813INVALID_FILEThe invoice file could not be downloaded or is not a valid PDF.Ensure invoice_url is publicly reachable and points to a valid PDF.
500INTERNAL_ERRORAn unexpected failure occurred on FINA's side.Retry with backoff; contact FINA support if it persists.
Sandbox
POST /fina/v1/invoices/add
curl -X POST "https://apibe.silqfi.xyz/fina/v1/invoices/add" \
  -H "Authorization: bearer FINA_BEARER_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "channel": "FINA",
    "order_number": "F26070910AB3XKQ70",
    "invoice_number": "INV-2026-0001",
    "invoice_pdf_data": "JVBERi0xLjcKCjEgMCBvYmoKPDwvVHlwZS9DYXRhbG9n…"
  }'

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": "Invoice added successfully",
  "data": {
    "order_id": "F26070910AB3XKQ70",
    "order_reference_id": "ORD-2026-0001",
    "order_status": "DELIVERED"
  },
  "success": true
}