Initialise Payment Link

Create a payment link for a specific customer. Kyshi creates a pending transaction and returns a link URL your customer can use to pay.

-H "x-api-key: your_secret_key"
POST {{host}}/v1/pay/initialize

Request Body

FieldData TypeRequiredDescription
customerobjectYesCustomer details. email is required; firstName, lastName, and phoneNumber are recommended.
expiresAtstringYesISO 8601 expiry date/time for the link.
localCurrencystringYesCustomer payment currency. Supported collection currencies: NGN, KES, ZAR, GHS, XOF, USD.
descriptionstringYesDescription shown for the payment.
metadataarrayYesLine items. Each item requires name, amount, and quantity. amount is in your settlement currency.
feeBearerstringNoMERCHANT or CUSTOMER. Defaults to your business setting or CUSTOMER.
taxChargeablestringNoINCLUSIVE or EXCLUSIVE. Defaults to your business setting or EXCLUSIVE.
taxEnabledbooleanNoEnables provider automatic tax where supported, mainly Stripe.
{
  "customer": {
    "email": "[email protected]",
    "firstName": "Ada",
    "lastName": "Okafor"
  },
  "expiresAt": "2026-06-01T23:59:59Z",
  "localCurrency": "NGN",
  "description": "Invoice #10001",
  "metadata": [
    {
      "name": "Website design",
      "amount": 100,
      "quantity": 1
    }
  ],
  "feeBearer": "CUSTOMER",
  "taxChargeable": "EXCLUSIVE",
  "taxEnabled": true
}
{
  "status": true,
  "message": "Success",
  "code": 201,
  "data": {
    "reference": "KYSHI-1778623597453",
    "status": "PENDING",
    "paymentLink": {
      "id": "f6cbda33-1a40-4f2e-a211-fd87bd86cc4a",
      "code": "PLK_abc123",
      "url": "https://pay.kyshi.co/PLK_abc123",
      "expiresAt": "2026-06-01T23:59:59.000Z"
    },
    "amount": {
      "value": 155000,
      "currency": "NGN"
    }
  }
}

Notes

  • Metadata item amounts are sent in major settlement currency units.
  • Kyshi stores item amounts internally in minor units.
  • The returned amount.value is the local customer-facing amount after FX conversion.