CreddotDocsCreddot Docs
API referencePayment links

Create a reusable Pay Link

POST
/api/v1/payment-links

Authorization

api-key
headerx-api-key<token>

Your API key: ck_test_... for test mode, ck_live_... for live. Send it with x-api-secret (or Authorization: Bearer ).

Header Parameters

x-api-secret?string

Recommended: API secret sent over HTTPS. You may send it as Authorization: Bearer instead. If supplied, x-timestamp and x-signature are not required.

x-timestamp?string

Legacy signed mode: Unix time in milliseconds; maximum clock skew five minutes.

x-signature?string

Legacy signed mode: HMAC-SHA256(secret, timestamp.METHOD.url.idempotencyKey.bodyHash).

x-idempotency-key*string

1–128 letters/digits or ._:-. Same key and payload replay for 24 hours; conflicting, in-flight, or expired keys return 409. Never change a key to retry an uncertain payment.

Request Body

application/json
  1. body
amountMinor?string

Maximum amount for each payment in positive integer minor units. The Pay Link remains reusable while active. Omit to let each payer enter any positive amount.

currency?
Default"NGN"
pageName?string

Name displayed on the Pay Link. Existing clients may continue sending description instead.

Lengthlength <= 160
description?string
Lengthlength <= 160
linkNumber?string

Merchant-facing link number. Omit to generate the next LNK number.

Lengthlength <= 80
visibility?string
Default"PUBLIC"
Value in"PUBLIC""PRIVATE"
imageFileId?string

READY image/jpeg or image/png file uploaded through the business file endpoints.

customerFields?
customers?array<>

Allowed recipients for a PRIVATE Pay Link. Each entry needs an email address or phone number.

Itemsitems <= 100
customerName?string
Lengthlength <= 120
customerEmail?string
Formatemail
redirectUrl?string

Optional HTTPS destination returned by the public payment-status endpoint after a successful payment.

reference?string
Lengthlength <= 80
expiresAt?string

Must be in the future. Omit for no expiry.

Formatdate-time

Response Body

application/json
  1. response
id*string
environment*string
Value in"SANDBOX""LIVE"
slug*string
status*string
Value in"ACTIVE""DISABLED""EXPIRED"
amountMinor*|

Null means the payer chooses an amount.

currency*string
description*string
pageName*string
linkNumber*string
payCode*string
visibility*string
Value in"PUBLIC""PRIVATE"
imageFileId*string|null
customerFields*
customers*array<>
progress*
reusable*boolean

True for standard Pay Links, which accept unlimited payments until disabled or expired. Invoice links are single-use.

customerName*string|null
customerEmail*string|null
redirectUrl*|
Formaturi
reference*string|null
expiresAt*|
Formatdate-time
viewedAt*|
Formatdate-time
disabledAt*|
Formatdate-time
createdAt*string
Formatdate-time
updatedAt*string
Formatdate-time
checkoutPath*string

Public checkout metadata endpoint. A hosted payment page is not included in this backend.

Example Request
curl -X POST 'https://api.creddot.com/api/v1/payment-links' \  -H 'x-idempotency-key: string' \  -H 'Content-Type: application/json' \  -d '{}'
Example Response
{  "id": "string",  "environment": "SANDBOX",  "slug": "cpl_abc123",  "status": "ACTIVE",  "amountMinor": "500000",  "currency": "NGN",  "description": "string",  "pageName": "string",  "linkNumber": "string",  "payCode": "string",  "visibility": "PUBLIC",  "imageFileId": "string",  "customerFields": {    "customerName": true,    "customerEmail": true,    "customerPhone": true,    "billingAddress": true,    "deliveryAddress": true  },  "customers": [    {      "fullName": "string",      "email": "user@example.com",      "phoneNumber": "string"    }  ],  "progress": {    "collectedAmountMinor": "2000000",    "pendingAmountMinor": "1200000",    "totalAmountMinor": "3200000",    "percentageCompleted": 62.5,    "paymentStatus": "UNPAID",    "successfulPayments": 0  },  "reusable": true,  "customerName": "string",  "customerEmail": "string",  "redirectUrl": "http://example.com",  "reference": "string",  "expiresAt": "2019-08-24T14:15:22Z",  "viewedAt": "2019-08-24T14:15:22Z",  "disabledAt": "2019-08-24T14:15:22Z",  "createdAt": "2019-08-24T14:15:22Z",  "updatedAt": "2019-08-24T14:15:22Z",  "checkoutPath": "/api/v1/checkout/payment-links/cpl_abc123"}