Checkout

Initiate Checkout Payment

Create a checkout session and return the payment options available for the requested amount and currency.

POST
/api/v1/checkout/initiate

Authorization

BearerAuth
AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/api/v1/checkout/initiate" \  -H "Content-Type: application/json" \  -d '{    "currency": "NGN",    "first_name": "John",    "last_name": "Doe",    "email": "john.doe@example.com",    "amount": 200  }'
{
  "requestId": "abcd1234-5678-90ef-ghij-1234567890kl",
  "requestTimestamp": "2025-07-16 09:15:00",
  "message": "Checkout Transaction Initiated successfully.",
  "statusCode": 200,
  "data": {
    "checkoutUrl": "https://checkout.tryduplo.com?ref=CHK_6WZSIYEK43",
    "checkoutReference": "CHK_6WZSIYEK43",
    "amount": {
      "value": 1000,
      "currency": "NGN",
      "formatted": "NGN 1000.00"
    },
    "sourceReference": "SRC_6WZSIYEK43"
  }
}
{
  "requestId": "f006ad7b-096c-4254-8c7e-2d23a55b0b0e",
  "requestTimestamp": "2025-09-04 11:49:40",
  "message": "Invalid request data.",
  "statusCode": 400
}
{
  "requestId": "f006ad7b-096c-4254-8c7e-2d23a55b0b0e",
  "requestTimestamp": "2025-09-04 11:49:40",
  "message": "Invalid API key.",
  "statusCode": 401
}
{
  "requestId": "f006ad7b-096c-4254-8c7e-2d23a55b0b0e",
  "requestTimestamp": "2025-09-04 11:49:40",
  "message": "The given data was invalid.",
  "errors": {
    "email": [
      "The email field is required."
    ]
  },
  "statusCode": 422
}
{
  "requestId": "f006ad7b-096c-4254-8c7e-2d23a55b0b0e",
  "requestTimestamp": "2025-09-04 11:49:40",
  "message": "An error occurred while processing your request.",
  "statusCode": 500
}

How is this guide?