Here is a table describing the structure of the PaymentIntent class and its related objects:

PaymentIntent

Field NameData TypeDescription
paymentIntentIdlongUnique ID of the payment intent.
callbackUrlStringURL to send callback responses.
returnUrlStringURL to redirect users after completing the payment.
uniqueIdStringUnique identifier for the payment session.
paymentLinkUniqueIdStringUnique ID for payment link.
uuidStringUniversally unique identifier (UUID).
testbooleanSpecifies if the payment is in test mode.
commissionPaidByCustomerbooleanIndicates if the commission is paid by the customer.
creationDateTimestampTimestamp of when the payment intent was created.
lastUpdateDateTimestampTimestamp of the last update made to the payment intent.
expireDateTimestampTimestamp when the payment intent expires.
totalAmountLongTotal payment amount in cents.
currencyCurrency (Enum)The currency of the payment (USD or ETB).
checkoutBeneficiariesList<CheckoutSplitPayment>List of split payment beneficiaries. See CheckoutSplitPayment object below.
productItemsList<ProductItems>List of product items associated with the payment intent. See ProductItems object below.
transactionTransactionTransaction associated with the payment intent. See Transaction object below.
merchantCustomerMerchantCustomerThe merchant’s customer details. See MerchantCustomer object below.
paymentMethodTypesSet<String>Set of payment methods used in the checkout session. eg: TELE_BIRR, ETS_SWITCH, CBE or M_PESA etc.

CheckoutSplitPayment

Field NameData TypeDescription
idlongUnique ID for the split payment.
accountNumberStringAccount number for the split payment.
amountLongAmount for the split payment.
splitTypeSplitType (Enum)The type of split PERCENTAGE and NUMBER

ProductItems

Field NameData TypeDescription
idlongUnique ID for the product item.
nameStringName of the product item.
imageStringURL or reference to the product image.
quantityintQuantity of the product purchased.
descriptionStringDescription of the product item.
productIdStringUnique product identifier.
priceLongPrice of the product in cents.
typeProductType (Enum)The type/category of the product. SERVICE,DIGITAL_PRODUCT & PHYSICAL_PRODUCT
paymentIntentCheckoutSessionReference to the payment intent session.
creationDateTimestampCreation date of the product item record.
lastUpdateDateTimestampLast update date of the product item record.

Transaction

Field NameData TypeDescription
idlongUnique ID for the transaction.
messageStringMessage or note for the transaction.
debitAccountStringThe debit account for the transaction.
phoneNumberStringPhone number related to the transaction.
trac2StringTrace information related to the transaction.
testbooleanIndicates if the transaction is in test mode.
referenceIdStringReference ID for the transaction.
transactionStatusTransactionStatusStatus of the transaction. PROCESSING, FAILED, SUCCESS, EXPIRED
paymentTypePaymentMethodTypePayment method type for the transaction.
merchantNetlongMerchant’s net amount.
adminNetlongAdmin’s net amount.
totalAmountlongTotal amount of the transaction in cents.
pspTxIdStringTransaction ID from the payment service provider.
virtualAccountIdLongID of the virtual account used in the transaction.
virtualCardIdLongID of the virtual card used in the transaction.
creationDateTimestampCreation date of the transaction record.
lastUpdateDateTimestampLast update date of the transaction record.
merchantCustomerMerchantCustomerThe merchant’s customer related to the transaction. See MerchantCustomer object below.

MerchantCustomer

Field NameData TypeDescription
idLongUnique ID for the merchant customer.
nameStringName of the merchant customer.
emailStringEmail of the merchant customer.
phoneStringPhone number of the merchant customer.