Checkout General Payment Link

Initializes checkout for the selected currency.

Customer:

  • Selects their local currency
  • Enters personal details
  • FX rate is recalculated
  • Fees are recalculated
  • Payment provider is initialized
  • Checkout URL is returned

Request Body

FieldTypeRequiredDescription
customer.emailstringYesCustomer email address
customer.firstNamestringNoCustomer first name
customer.lastNamestringNoCustomer last name
localCurrencystringYesSelected currency (must be one of availableCurrencies)
redirectUrlstringNoOptional redirect URL after payment

After the customer selects their local currency and provides their details, make a POST request to the checkout endpoint using the payment link code.

Note: This endpoint does not require authentication.

POST {{host}}/v1/pay/general/verify/:code

If the API call is successful, Kyshi initializes the payment with the processor and returns an authorization URL for checkout.

{
  "customer": {
    "email": "[email protected]",
    "firstName": "John",
    "lastName": "Doe"
  },
  "localCurrency": "NGN",
  "redirectUrl": "https://example.com/return"
}
{
  "status": true,
  "code": 200,
  "message": "Success",
  "data": {
    "status": "OPENED",
    "reference": "KYSHI-1770114609126",
    "authorizationUrl": "https://checkout.paystack.com/5l12qbpz42b1vye",
    "paymentLink": {
      "expiresAt": null
    },
    "amount": {
      "value": 74205,
      "currency": "NGN"
    },
    "fxRate": 123.675,
    "feeBreakDown": {
      "processorFee": 0,
      "vat": 1234,
      "fee": 0,
      "allInclusiveKyshiFee": 1234,
      "totalFees": 1234
    }
  }
}

Receive and validate webhook notification

Listen for webhook events. We will send a notification to your webhook URL that indicates the status of the collection. Read our guide on securing and validating the webhook notification on your end.

Note: We will only send you a webhook when the transaction is successful

{ 
  "event": "successful", 
  "data": {
    "reference": "6df5910e1bdde31abf",
    "amount": 500.00,
    "customer": {
       "id": "",
       "firstName": "John",
       "email": "[email protected]", 
       "phone": null 
    },
    "authorization": { 
       "authorizationCode": "my_reference",
       "cardType": "",
       "brand": "Visa",
       "last4": "", 
       "bin": "", 
       "expMonth": "", 
       "expYear": "" 
    },
    "log": {},
    "meta": {
        "localCurrency": "NGN",
        "localAmount": 500.00,
        "feeBreakdown": {
          "vat": 0,
          "fee": 10.0,
        }
    }
  }
}