LogoLogo
  • Getting Started
    • Supplier API (ZAPI)
    • Getting Started
      • Implementing Exponential Back-Off
    • API Specification
    • API Specification Enhancements
    • Glossary of Terms
  • Supporting Nodes
    • Supporting Nodes
      • Single Booking Details
      • Currencies
      • Cart
      • Activity Times
      • Products
      • Business Hours
      • Pickup Locations
      • Dropoff Location
      • Rental Date & Times
      • Allowed Guest Types
      • Waitlist
      • Passenger List
      • Guest or Agent Details
      • User Custom Fields
      • Related Bookings
      • Transaction Details
        • Basic Transaction
        • Credit Card Transaction
        • Voucher/Invoice Transaction
        • Discount Transaction
      • Days of the Week
      • Price Code
      • Multi-Day Package Itinerary
      • Booking - Search Results
      • Mobile Data
  • ZAPI Calls
    • Start Here
      • Ping Test
    • Activity Calls
      • All Activities by Date
      • All Activities by Name
      • Activity & Product Catalog
      • Activity Categories
      • Activity Category by ID
      • Cancelled Activities
      • Create Cancellation
      • Check Inventory
      • Single Activity Details
      • Upcoming Activities
      • Remove Cancellation
      • Rental Equipment Calls
        • Equipment Price Quote
        • Equipment Availability
        • Cart Contents
        • Add to Cart
    • Agent Calls
      • Agent Login
      • Authenticate Agent
      • Get Agent Profile
      • Update Agent Username
      • Update Agent Password
    • Booking
      • Batch Availability
      • Booking Search
        • Search Bookings
        • Search by Booking Number
        • Search by Last Name
        • Search by Mobile Number
      • Cancel Booking
      • Email Itinerary
      • Generate Barcode Image
      • Ticket Data by Booking ID
    • Guest Specific
      • Authenticate Guest
      • Booking Details
      • Get Guest Profile
      • Guest Lookup
      • Update Username
      • Update Password
      • Update Profile
    • Interacting with a Cart
      • Add Activity to Cart
      • Add Package to Cart
      • Add Product to Cart
      • Clear Cart Session
      • Create a Unique Cart
      • Get All Cart Sessions
      • Get Cart Contents
      • Load Booking into Cart
      • Remove Activity
      • Remove Product
      • Remove Cart Session
      • Update Notes to Cart
      • Update Customer Details
      • Transactions
        • Process Payment
        • Process Single Transaction
        • Apply Promo Code
        • Apply Gift Card
    • Manifest
      • Entire Day Manifest
      • Activity Manifest
    • Mobile
      • Check In
      • Generate Z Report
      • User Logout
    • Packages
      • Get Package Categories
      • Get Packages by Category
      • Get Package Details
      • Minimum Dates to Book
      • Package Pricing Details
    • Products
      • Product Inventory
      • Product Categories
      • Product by Category
      • Product by Name
      • Single Product Detail
    • System Info
      • All Companies
      • All Equipment
      • Custom Fields List
      • Employee List
      • Get System Info
      • User List
    • Waitlist
      • Single Activity Waitlist
      • Add Guest
      • Convert to Cart
      • Remove Guest
  • Appendix
    • Activity Type IDs
    • Error Codes
    • Package Type IDs
    • Product Type IDs
    • Payment Method Type IDs
    • User Type IDs
Powered by GitBook
On this page

Was this helpful?

  1. ZAPI Calls
  2. Interacting with a Cart
  3. Transactions

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

Name
Type
Description

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"}
{    "message": "Ain't no cake like that."}
<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>
<?xml version="1.0" encoding="utf-8"?>
<response>
	<zapiVersion>2.1</zapiVersion>
	<error>0</error>
	<message>OK</message>
	<methodResponse>
		<methodName>zapiProcessSingleTransaction</methodName>
		<methodErrorCode></methodErrorCode>
		<methodErrorMessage></methodErrorMessage>
		<transactionResult>
			<transactionErrorCode>0</transactionErrorCode>
			<bookingId></bookingId>
			<transactionId></transactionId>
			<transactionAmount></transactionAmount>
			<transactionMethod></transactionMethod>
			<bookingMessage></bookingMessage>
		</transactionResult>
        	<cart>
			<cartId></cartId>
			<customers>
				<customer></customer>
			</customers>
			<activities></activities>
			<products></products>
			<transactions></transactions>
			<remainingBalance>
				<balance></balance>
			</remainingBalance>
			<cartTotals>
				<bookingNumber></bookingNumber>
				<modifyBookingNumber></modifyBookingNumber>
				<activityTotal></activityTotal>
				<activityTax></activityTax>
				<productTotal></productTotal>
				<productTax></productTax>
				<packageTotal></packageTotal>
				<activitySurplusFees></activitySurplusFees>
				<surchargeTotal></surchargeTotal>
				<perPersonTax></perPersonTax>
				<total></total>
				<tax></tax>
				<totalIncludingTax></totalIncludingTax>
			</cartTotals>
       			<currencies>
				<currency>
					<currencyName></currencyName>
					<currencySymbol></currencySymbol>
					<isoCode></isoCode>
					<paymentGatewayId></paymentGatewayId>
					<rateId></rateId>
					<rate></rate>
					<totalConvertedWithRate></totalConvertedWithRate>
				</currency>
			</currencies>
		</cart>
	</methodResponse>
</response>
PreviousProcess PaymentNextApply Promo Code

Last updated 3 years ago

Was this helpful?