FinaDOCS

Repayment Plan Options

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.

Query parameters

All parameters are sent in the query string — this GET takes no request body.

Identify the seller

On a marketplace, send platform=MARKETPLACE and the seller_phone_number of the sub-merchant the buyer is checking out with so plans are priced against that seller's configuration. Pass the same platform value to Initiate Checkout.

Carry repayment_config_id forward

The buyer's chosen plan's repayment_config_id is what you pass to Initiate Checkout as payment.repayment_config_id. By default only plans the buyer's credit covers are returned; pass show_credit_insufficient_plans=true to see the rest and disable the ones where has_enough_credits is false.

Request

order_amountnumberrequiredquery param; must be > 0

Order total to price the plans against.e.g. 515

customer_phone_numberstringquery param

Buyer's phone number. Pass exactly one of customer_phone_number or customer_id.e.g. 966567896789

customer_idnumberquery param

FINA's external_user_id from Check Eligibility. Pass exactly one of customer_phone_number or customer_id.

platformenumrequiredquery param

Integration platform identifier. Required for marketplace — send MARKETPLACE. Filters plans to those enabled for the channel; use the same value as Initiate Checkout.MARKETPLACEe.g. MARKETPLACE

seller_phone_numberstringrequiredquery param; international format, no leading +

Phone number of the seller (sub-merchant) on your marketplace the buyer is purchasing from. Plans are priced against this seller's configuration.e.g. 966543215678

merchant_sharenumberquery param; 0–100

Merchant's share of the BNPL commission, in percent. If you send it here, send the same value in Initiate Checkout's commission_config.

tenure_in_daysnumberquery param

Return only the plan for this tenure. Errors if the tenure is not available to the buyer.

show_credit_insufficient_plansbooleanquery param; defaults to false

Set true to also return plans the buyer's credit does not cover (has_enough_credits: false).

Response

successboolean

true when plans were computed.

messagestring

Human-readable status.

error_codestring

Numeric code as a string; "200" on success for this endpoint.

errorsarray

Validation / failure details, empty on success.

merchant_sharenumber

Merchant commission share applied when pricing the plans, in percent.

array

One entry per available repayment plan.

repayment_config_idstring

The tenure id. Pass the chosen plan's value to Initiate Checkout as payment.repayment_config_id.

namestring

Display label for the plan.

tenure_in_daysstring

Tenure length in days.

is_defaultboolean

The plan applied if none is explicitly selected.

commission_treatmentenum

How commission is applied across installments.PROPORTIONAL_ON_FULLPROPORTIONAL_EXCLUDING_PREPAID

bnpl_cost_percentagenumber

BNPL cost for this tenure, in percent.

order_amountnumber

Echo of the priced order amount.

customer_payable_amountnumber

Total the buyer repays across all installments.

prepaid_amountnumber

Day-zero down payment the buyer pays upfront (0 if none).

requires_prepaid_collectionboolean

true — a day-zero down payment must be collected at checkout (see Initiate Checkout's prepaid_payment).

has_enough_creditsboolean

Whether the buyer's credit limit covers this plan.

financed_amountnumber

Amount financed by FINA (order amount minus down payment).

down_payment_amountnumber

Same as prepaid_amount — the day-zero amount.

total_commission_amountnumber

Total commission for the plan, in SAR.

merchant_commission_amountnumber

Commission borne by the merchant.

customer_commission_amountnumber

Commission borne by the buyer.

checkout_commission_amountnumber

Commission collected at checkout, if any.

net_payout_to_merchantnumber

What the merchant receives after commission.

commission_basenumber

Amount the commission percentage is applied to.

array

Installment schedule for the plan.

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.
802SELLER_NOT_VALIDThe merchant resolved from the bearer token is not recognised for this operation.Verify the bearer token belongs to the correct merchant account.
878PLAN_NOT_CONFIGUREDNo repayment plan is configured for the requested tenure_in_days / channel.Only offer plans returned by Repayment Plan Options; contact FINA to configure more.
500INTERNAL_ERRORAn unexpected failure occurred on FINA's side.Retry with backoff; contact FINA support if it persists.
Sandbox
GET /fina/v1/checkout/repayment_plans
curl -X GET "https://apibe.silqfi.xyz/fina/v1/checkout/repayment_plans?customer_phone_number=966567896789&order_amount=515&platform=MARKETPLACE&seller_phone_number=966543215678" \
  -H "Authorization: bearer FINA_BEARER_TOKEN"

FINA_BEARER_TOKEN is provided by the FINA team, per environment. Contact the FINA team for the production base URL.

Response · 200 · Success
{
  "success": true,
  "message": "success",
  "error_code": "200",
  "errors": [],
  "merchant_share": 100,
  "plans": [
    {
      "repayment_config_id": "4",
      "name": "Default",
      "tenure_in_days": "30",
      "is_default": true,
      "commission_treatment": "PROPORTIONAL_ON_FULL",
      "bnpl_cost_percentage": 3,
      "order_amount": 515,
      "total_commission_amount": 15.45,
      "merchant_commission_amount": 15.45,
      "customer_commission_amount": 0,
      "customer_payable_amount": 515,
      "net_payout_to_merchant": 499.55,
      "down_payment_amount": 0,
      "checkout_commission_amount": 0,
      "prepaid_amount": 0,
      "financed_amount": 515,
      "commission_base": 515,
      "schedules": [
        {
          "payment_installment_no": "1",
          "payment_date": "2026-07-21",
          "offset_days": 30,
          "principal_amount": 515,
          "commission_amount": 0,
          "total_due": 515
        }
      ],
      "requires_prepaid_collection": false,
      "has_enough_credits": true
    },
    {
      "repayment_config_id": "7",
      "name": "Default",
      "tenure_in_days": "90",
      "is_default": true,
      "commission_treatment": "PROPORTIONAL_EXCLUDING_PREPAID",
      "bnpl_cost_percentage": 9,
      "order_amount": 515,
      "total_commission_amount": 40,
      "merchant_commission_amount": 40,
      "customer_commission_amount": 0,
      "customer_payable_amount": 515,
      "net_payout_to_merchant": 475,
      "down_payment_amount": 128.75,
      "checkout_commission_amount": 0,
      "prepaid_amount": 128.75,
      "financed_amount": 386.25,
      "commission_base": 386.25,
      "schedules": [
        {
          "payment_installment_no": "1",
          "payment_date": "2026-06-21",
          "offset_days": 0,
          "principal_amount": 128.75,
          "commission_amount": 0,
          "total_due": 128.75
        },
        {
          "payment_installment_no": "2",
          "payment_date": "2026-07-21",
          "offset_days": 30,
          "principal_amount": 128.75,
          "commission_amount": 0,
          "total_due": 128.75
        },
        {
          "payment_installment_no": "3",
          "payment_date": "2026-08-20",
          "offset_days": 60,
          "principal_amount": 128.75,
          "commission_amount": 0,
          "total_due": 128.75
        },
        {
          "payment_installment_no": "4",
          "payment_date": "2026-09-20",
          "offset_days": 90,
          "principal_amount": 128.75,
          "commission_amount": 0,
          "total_due": 128.75
        }
      ],
      "requires_prepaid_collection": true,
      "has_enough_credits": true
    }
  ]
}