The Payments API lets you list the payments collected for your project and mint one-time virtual bank accounts (via KoraPay) that settle into a wallet top-up or a subscription.

The payment object

AttributeTypeDescription
idstringUnique payment id.
purposestringWALLET_TOPUP or SUBSCRIPTION.
statusstringPENDING, SUCCESS, FAILED, or REFUNDED.
amountnumberAmount in fiat major units (e.g. 1500 = ₦1,500).
currencystringISO currency code (e.g. NGN).
paymentRefstringProvider payment reference.
subscriptionIdstring | nullLinked subscription, for SUBSCRIPTION payments.
projectIdstringProject the payment belongs to.
planIdinteger | nullPlan billed, for subscription payments.
billingCyclestring | nullMONTHLY or YEARLY, for subscription payments.
businessIdstringOwning business.
providerIdstringUpstream provider id.
referencestringIdempotent reference for the payment.
amountUsdstringUSD value as a decimal string.
descriptionstringFree-text note.
createdBystringActor that created the record.
createdAtstringISO 8601 UTC timestamp.
updatedAtstringISO 8601 UTC timestamp.

The virtual account object

Returned by Request virtual account. The account is bound to a single expected amount and expires.
AttributeTypeDescription
accountNumberstringVirtual bank account number to fund.
accountNamestringAccount holder name.
bankNamestringBank the account is held with.
bankCodestringBank code.
referencestringReference that ties the funding to this account.
amountExpectednumberExact amount the account is bound to.
expiryAtstringISO 8601 UTC expiry — fund before this time.