Skip to main content

PaymentOrder object

Last updated: 2026-07-17

PaymentOrder is returned by pay-in and payout operations, payment reads, and webhooks. Fields that do not apply to the selected flow can be omitted or empty. The OpenAPI schema does not mark response properties as required, so the presence labels below describe normal response semantics rather than a JSON Schema guarantee.

FieldJSON typePresenceMerchant meaning
idstringCorePayment order UUID
merchantReferencestringCoreMerchant-provided reference
paymentMethodenumCoreSelected PAYMENT_METHOD_* value
typeenumCorePAYMENT_ORDER_TYPE_PAYMENT_IN or PAYMENT_ORDER_TYPE_PAYMENT_OUT
statusenumCoreCurrent payment lifecycle status
amountstring (int64)CoreAmount in minor units
currencyCodestringCorePayment currency
currencyMinorUnitsinteger (int32)OptionalCurrency exponent captured when the payment was created
paymentUrlstringConditionalHosted or authorization URL when a redirect is available
redirectUrlstringOptionalMerchant return URL stored on the payment
failureReasonstringConditionalPublic failure reason for a negative outcome
failureReasonCodestring (int64)ConditionalNumeric failure code encoded as a JSON string
createdAtstring (date-time)CoreCreation timestamp
updatedAtstring (date-time)CoreLast update timestamp
trafficVerticalenumCoreTransaction vertical classification
customerSegmentenumCoreCustomer lifecycle segment
bankTransferDetailsobjectConditionalGenerated bank-transfer account state and details
paymentSubMethodstringConditionalPublic submethod code; currently moniepoint for bank transfer

Payment status values are:

  • PAYMENT_ORDER_STATUS_CREATED
  • PAYMENT_ORDER_STATUS_PENDING
  • PAYMENT_ORDER_STATUS_COMPLETED
  • PAYMENT_ORDER_STATUS_CANCELLED
  • PAYMENT_ORDER_STATUS_EXPIRED
  • PAYMENT_ORDER_STATUS_FAILED

Treat PAYMENT_ORDER_STATUS_UNSPECIFIED as an unknown/default enum value, not a successful business outcome. See Payment lifecycle for reconciliation and Bank transfer details for the nested bank-transfer object.