# FINA API Documentation > FINA is a B2B Buy Now, Pay Later (BNPL) service for Saudi Arabia by Silq. Merchants integrate FINA into their checkout so business buyers can split payments into repayment plans; FINA finances the order and pays the merchant out net of commission. The API is REST/JSON over HTTPS, authenticated with a merchant bearer token. Two integration types are available: Direct Merchant (you are the seller) and Marketplace (seller-aware calls for platforms hosting many sellers); ERP is coming soon. Key facts: Sandbox base URL is https://apibe.silqfi.xyz (production is issued privately by the FINA team). Every request sends `Authorization: bearer FINA_BEARER_TOKEN`, server-side only. Checkout/order endpoints return HTTP 200 even for business failures — branch on the body's `error_code` (`"0"` = success). Currency is locked to SAR, country to SA. ## Getting Started - [Overview](https://fina.sa/docs.md): What FINA is, the available integration types, and key capabilities of the BNPL APIs. - [Authentication](https://fina.sa/docs/authentication.md): Merchant bearer token, environments, and HTTP status vs error_code semantics. ## Direct Merchant - [Direct Merchant Integration Guide](https://fina.sa/docs/direct-merchant.md): The five-step buyer journey, post-order operations, and the order lifecycle with its rules. - [Embedded Onboarding](https://fina.sa/docs/direct-merchant/embedded-onboarding.md): Embedding FINA onboarding/signing in an iframe and detecting completion via postMessage. - [Down Payment Webhook](https://fina.sa/docs/direct-merchant/downpayment-webhook.md): The signed server-to-server down-payment confirmation: headers, body, HMAC verification, retries. - [Error Handling](https://fina.sa/docs/direct-merchant/errors.md): The error envelope and the full numeric error-code reference. ## Direct Merchant API Reference - [Check Eligibility](https://fina.sa/docs/direct-merchant/api/check-eligibility.md): `POST /fina/v1/users/check_eligibility` — Check whether a buyer is registered with FINA and has available credit, and whether the buyer may transact with your merchant account. For new buyers it returns a signup_url to start onboarding. - [Repayment Plan Options](https://fina.sa/docs/direct-merchant/api/repayment-plan-options.md): `GET /fina/v1/checkout/repayment_plans` — Returns the repayment plans available to a buyer for a given order amount — cost breakdown, installment schedule, down-payment requirement, and credit eligibility per plan. - [Initiate Checkout](https://fina.sa/docs/direct-merchant/api/initiate-checkout.md): `POST /fina/v1/checkout/initiate` — Initiates a BNPL checkout session for the buyer's chosen repayment plan, creates the order, and triggers an OTP SMS to the buyer. - [Authorise Checkout](https://fina.sa/docs/direct-merchant/api/authorise-order.md): `POST /fina/v1/checkout/authorise` — Validates the OTP entered by the buyer and finalises the payment. On success the order moves to AUTHORISED. - [Reconcile Prepaid Payment](https://fina.sa/docs/direct-merchant/api/reconcile-prepaid-payment.md): `POST /fina/v1/checkout/reconcile_prepaid_payment` — Pulls the authoritative state of a FINA-collected down payment and lets FINA reconcile it — the fallback when the down payment webhook is delayed, dropped, or never received. - [Resend OTP](https://fina.sa/docs/direct-merchant/api/resend-otp.md): `POST /fina/v1/orders/resend_otp` — Resends the OTP SMS for an existing checkout session when the buyer did not receive the first one. - [Confirm Delivery](https://fina.sa/docs/direct-merchant/api/confirm-delivery.md): `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. Required for downstream reconciliation. - [Add FINA Invoice](https://fina.sa/docs/direct-merchant/api/add-fina-invoice.md): `POST /fina/v1/invoices/add` — Attaches your invoice PDF to an existing order for downstream reconciliation. - [Get Customer Invoices](https://fina.sa/docs/direct-merchant/api/customer-invoices.md): `GET /fina/v1/invoices` — Retrieves the customer-visible invoices associated with an order, including short-lived signed download URLs. ## Marketplace - [Marketplace Integration Guide](https://fina.sa/docs/marketplace.md): Seller-aware eligibility, plan selection, and order creation for marketplace platforms — plus the shared buyer journey and lifecycle. - [Embedded Onboarding (Marketplace)](https://fina.sa/docs/marketplace/embedded-onboarding.md): Embedding FINA onboarding/signing in an iframe — same contract as Direct Merchant, plus the buyer-level onboarding note. - [Down Payment Webhook (Marketplace)](https://fina.sa/docs/marketplace/downpayment-webhook.md): The signed down-payment confirmation — identical contract to the Direct Merchant webhook. - [Error Handling (Marketplace)](https://fina.sa/docs/marketplace/errors.md): The error envelope and code reference — identical to Direct Merchant. ## Marketplace API Reference - [Check Eligibility](https://fina.sa/docs/marketplace/api/check-eligibility.md): `POST /fina/v1/users/check_eligibility` — Check whether a buyer is registered with FINA and has available credit, and whether the buyer may transact with the seller they are checking out with on your marketplace platform. For new buyers it returns a signup_url to start onboarding. - [Repayment Plan Options](https://fina.sa/docs/marketplace/api/repayment-plan-options.md): `GET /fina/v1/checkout/repayment_plans` — Returns the repayment plans (tenures) available to a buyer for a given order amount on your marketplace — cost breakdown, installment schedule, down-payment requirement, and credit eligibility per plan. Price the plans against the sub-merchant (seller) the buyer is purchasing from by passing platform and seller_phone_number. - [Create Order](https://fina.sa/docs/marketplace/api/initiate-checkout.md): `POST /fina/v1/checkout/initiate` — Initiates a BNPL checkout session on behalf of one of your marketplace sellers, creates the order, and triggers an OTP SMS to the buyer. As a marketplace platform you identify both the buyer and the seller (sub-merchant) fulfilling the order. - [Authorise Checkout](https://fina.sa/docs/marketplace/api/authorise-order.md): `POST /fina/v1/checkout/authorise` — Validates the OTP entered by the buyer and finalises the payment. On success the order moves to AUTHORISED. - [Reconcile Prepaid Payment](https://fina.sa/docs/marketplace/api/reconcile-prepaid-payment.md): `POST /fina/v1/checkout/reconcile_prepaid_payment` — Pulls the authoritative state of a FINA-collected down payment and lets FINA reconcile it — the fallback when the down payment webhook is delayed, dropped, or never received. - [Resend OTP](https://fina.sa/docs/marketplace/api/resend-otp.md): `POST /fina/v1/orders/resend_otp` — Resends the OTP SMS for an existing checkout session when the buyer did not receive the first one. - [Confirm Delivery](https://fina.sa/docs/marketplace/api/confirm-delivery.md): `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. Required for downstream reconciliation. - [Add FINA Invoice](https://fina.sa/docs/marketplace/api/add-fina-invoice.md): `POST /fina/v1/invoices/add` — Attaches your invoice PDF to an existing order for downstream reconciliation. - [Get Customer Invoices](https://fina.sa/docs/marketplace/api/customer-invoices.md): `GET /fina/v1/invoices` — Retrieves the customer-visible invoices associated with an order, including short-lived signed download URLs. ## Optional - [Direct Merchant Interactive Demo](https://fina.sa/docs/direct-merchant/demo): browser-only interactive walkthrough of the buyer journey with a live API console (no markdown version). - [Marketplace Interactive Demo](https://fina.sa/docs/marketplace/demo): the same walkthrough with seller-aware API calls (no markdown version). - [Build with AI](https://fina.sa/docs/build-with-ai): hand the whole integration to an AI coding assistant — master prompt and machine-readable docs. - MCP server: https://fina.sa/mcp — Streamable HTTP endpoint exposing search_docs / list_pages / get_page / get_endpoint / find_field / lookup_error / validate_payload over this documentation (docs only, no live API access). --- For the complete documentation flattened into a single file, see [llms-full.txt](https://fina.sa/llms-full.txt).