Process Single Transaction

This method is used to create all transactions on open ZAPI cart objects (this includes refunds).

zapiProcessSingleTransaction

GET https://{yourdomainname}.zaui.net/zapi/

In the most basic scenarios, all that is needed is the `cartId`, `transactionType`, and `transactionAmount`. When transacting in Cash or Pay Later, no further info is needed. Credit Card Transactions For credit card transactions the details of the cart being transacted need to be included in the request, this can be done in three ways: 1. For most gateways all that is needed, is to provide the card name, number, expiry date, and security code, the rest is handled on the back end with the gateway. 2. For Stripe transactions not using Stripe Terminal hardware, Stripes libraries must be used to build Stripe Method Id tokens to return to Zaui. In this case, no other credit card info needs to be sent, just this token. 3. For transactions using Stripe Terminal hardware, pass the token generated by the device's SDK to the Stripe Payment Intent parameter. As with above, no additional info is needed when passing this token. NOTE for Stripe Transactions: The API keys needed to provide the Stripe Libraries/SDK access to your Zaui system's Stripe account can be retrieved using the zapiGetSystemInfo call.

Query Parameters

NameTypeDescription

gratuityDetails

object

Object containing amount and type of gratuity to add to transaction/booking

creditCardDetails*

object

Object containing either standard credit card info or Stripe Method Id for credit card transaction. Required only for payment type 2000.

currency/isoCode*

string

String for the ISO code of the currency being transacted in.

cartId*

integer

The ID of the cart which the transaction is to be applied to.

location*

object

Object describing where this transaction took place, required for logging

methodName*

string

The method being called.

zapiUserId*

integer

Generated by the supplier system when a new contact is created.

zapiAccountId*

integer

Generated by the supplier system.

zapiToken*

integer

Token that must be used for a reseller to communicate with the supplier system.

transactionAmount*

integer

Amount to charge to the provided payment method (with no currency formatting). This does not include gratuity amount. This value cannot be 0 (unless payment method is 2003).

transactionType*

integer

See Payment Method Type IDs in the appendix.

voucherDetails*

object

Object containing information pertaining to the voucher. Required only for payment type 2004.

{    "name": "Cake's name",    "recipe": "Cake's recipe name",    "cake": "Binary cake"}
<request>
   <zapiToken></zapiToken>
   <zapiAccountId></zapiAccountId>
   <zapiUserId></zapiUserId>
   <zapiMethod>
      <methodName>zapiProcessSingleTransaction</methodName>
      <location>
         <altitude></altitude>
         <latitude></latitude>
         <longitude></longitude>
         <locationTimestamp></locationTimestamp>
         <primaryAccountId></primaryAccountId>
         <secondaryAccountId></secondaryAccountId>
      </location>
      <cartId></cartId>
      <transactionDetails>
         <transactionType></transactionType>
         <transactionAmount></transactionAmount>
         <currency>
            <isoCode></isoCode>
         </currency>
         <creditCardDetails>
            <stripePaymentMethodId>pm_STRIPE_METHOD_ID</stripePaymentMethodId>
            <stripePaymentIntentId>pm_STRIPE_INTENT_ID</stripePaymentIntentId>
            <token />
            <nameOnCard></nameOnCard>
            <number></number>
            <expMonth></expMonth>
            <expYear></expYear>
            <csv></csv>
         </creditCardDetails>
         <gratuityDetails>
            <gratuityId></gratuityId>
            <gratuityTypeId></gratuityTypeId>
         </gratuityDetails>
         <voucherDetails>
            <companyName></companyName>
            <companyAgentId></companyAgentId>
            <companyId></companyId>
            <voucherNumber></voucherNumber>
         </voucherDetails>
      </transactionDetails>
   </zapiMethod>
</request>

Last updated