Skip to main content
You create a payment link with POST /v1/links. The request needs a title, currency, and payment configuration (which methods are allowed). You can set a fixed amount, let the payer choose the amount, and optionally set an expiry.

Required fields

  • title — Short label for the link (e.g. “Invoice #1001”).
  • currency — Currency code (e.g. NGN, USD).
  • payment — Object with payment_methods: an array of { "id": "bank_transfer", "value": "058" } (or other method + value, e.g. bank code). This defines how the payer can pay.
If the payer is not allowed to set the amount, you must also send amount (number). If you set customer.can_set_price to true, the payer can choose the amount and amount can be omitted.

Example request

  • description — Optional text shown to the payer.
  • expires_at — Optional ISO 8601 datetime; after this the link won’t accept new payments.
  • customer.can_set_pricefalse: you must provide amount. true: payer can enter the amount; amount can be omitted.
  • payment.limit — Optional; max number of payments per link.

Response

The response includes the new link in data: id, title, url (the shareable URL), amount, currency, status, expires_at, created_at, updated_at. Share the url with the payer.
Build the full URL for the payer using your payment-host base URL + data.url. If you need stats (revenue, transaction count, views), use Get payment link with stats. Full schema and errors are in the Create payment link API reference.