Payment Links

Initialise payment link

Changed on

Creates a hosted checkout URL for one customer and one amount. Create links server-side: a link created in the browser is a link whose amount the customer can change.

post/v1/pay/initialize

Request

Request body

expiresAtstring required

ISO 8601 expiration date of the payment link

localCurrency'NGN' | 'KES' | 'ZAR' | 'GHS' | 'XOF' | 'USD' required

Local currency the customer will pay in

descriptionstring required

Payment description shown to the customer

feeBearer'MERCHANT' | 'CUSTOMER'

Who bears platform fees

taxChargeable'INCLUSIVE' | 'EXCLUSIVE'

Tax behavior if tax is enabled

taxEnabledboolean

Enable Stripe automatic tax for USD payment links

Example request

{
  "customer": {
    "firstName": "Dom",
    "lastName": "Aba",
    "email": "dom@yopmail.com",
    "customerCode": "CUS-100045",
    "phoneNumber": "2348012345678",
    "integrationId": "int_7f2f9170",
    "metadata": "{\"orderId\":\"ORDER-100045\"}",
    "riskAction": "default",
    "internationalFormatPhone": "+2348012345678"
  },
  "expiresAt": "2026-02-01T23:59:59Z",
  "localCurrency": "NGN",
  "description": "Invoice",
  "metadata": [
    {
      "name": "Website design",
      "amount": 100,
      "quantity": 1
    }
  ],
  "feeBearer": "CUSTOMER",
  "taxChargeable": "EXCLUSIVE"
}

Response

Success.

statusboolean required

true on success.

messagestring required
codenumber required

Mirrors the HTTP status code.

Example response

{
  "status": true,
  "message": "Success",
  "code": 200,
  "data": {}
}

Changes

    • breaking

      added to the request property allOf list

    • breaking

      the request property type changed from object to no type

    • breaking

      the response's body type changed from object to no type for status

    • warning

      removed the request property /

    • warning

      removed the request property /

    • warning

      removed the request property /

    • warning

      removed the request property /

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • info

      the endpoint scheme security ApiKeyAuth was added to the API

    • info

      the request property format was generalized from date-time to no format

    • info

      added subschema #2 to the response body allOf list for the response status

    • info

      added the non-success response with the status

    • info

      added the non-success response with the status

    • info

      added the non-success response with the status

    • info

      added the non-success response with the status

    • info

      added the non-success response with the status

    • info

      added the non-success response with the status