v2

latestOpenAPI 3.0.0raw.githubusercontent.com2026-02-16143114179.4 KB
Payments

Create a payment record

Create a payment record manually. Useful for importing historical data. If status is SUCCEEDED, the associated invoice will also be marked as paid.

post/api/payments

Request body

invoiceIdstring required

Invoice ID this payment is for

providerstring required

Payment provider name (e.g. stripe, paystack, manual)

amountnumber required

Payment amount

currencystring required

Currency

status'PROCESSING' | 'SUCCEEDED' | 'FAILED' | 'REFUNDED' required

Payment status

providerTransactionIdstring

Provider transaction ID

failureReasonstring

Failure reason (for FAILED payments)

createdAtstring

Backdate createdAt (ISO 8601). For data imports.

Example request

{
  "provider": "manual",
  "amount": 49.99,
  "currency": "USD"
}

Response

Payment created

idstring required
invoiceIdstring required
providerstring required
providerTransactionIdstring
amountstring required

Decimal amount as string

currencystring required
status'PENDING' | 'PROCESSING' | 'SUCCEEDED' | 'FAILED' | 'REFUNDED' required
failureReasonstring
metadataobject
createdAtstring required
updatedAtstring required

Example response

{
  "id": "clx1234567890",
  "invoiceId": "clxinv123",
  "provider": "paystack",
  "providerTransactionId": "PAY_txn_abc123",
  "amount": "99.9900",
  "currency": "USD",
  "status": "SUCCEEDED",
  "failureReason": "Insufficient funds"
}