Developers

This page is a ZenPay-styled copy of the Zenith Payments developer documentation. View the original docs

Input and Output Parameters

Input Parameters#

49 parameters for mode 0 - Make Payment.

NameTypeDefaultStatusDescription
allowBankAcOneOffPaymentbooleanfalseRequiredShow Bank Account option if enabled for the merchant.Admin config
allowCardOneOffPaymentbooleantrueRequiredShow Card option if enabled for the merchant.Admin config
allowCardTokenisePaymentbooleantrueRequiredShow Card Tokenise option if enabled for the merchant.Admin config
allowPayIdOneOffPaymentbooleanfalseRequiredShow PayID option if enabled for the merchant.Admin config
allowPayToOneOffPaymentbooleanfalseRequiredShow PayTo bank account option if enabled for the merchant.Admin config
apiKeystringRequiredAs provided by Zenith
customerEmailstringRequiredEmail address to which invoice will be emailed if the merchant is configured.
customerNamestringRequiredFull name of the customer.
customerReferencestringRequiredCustomer reference identifier.
fingerprintstringRequiredSHA3-512 Hash — see details below
merchantCodestringRequiredAs provided by Zenith.
merchantUniquePaymentIdstringRequiredPayment id provided by the merchant.
Must be unique and can not be reused if a transaction is processed using this id.
paymentAmountnumberRequiredReturns applicable fee if provided with mode 1.
redirectUrlstringRequiredRedirects to this URL with the result in the query string.
See Return Parameters.
timestampstringRequiredProvide current datetime in UTC ISO 8601 format.
Format: yyyy-MM-ddTHH:mm:ss
urlstringRequiredPlugin access url. We strongly recommend v5 integration.
ABNstringOptionalAustralian Business Number.
Used for reward programs if the Program is enabled to provide reward points.
additionalReferencestringOptionalAdditional reference to identify customer.
This will be passed on to the merchant reconciliation file (PDF & CSV).
allowAliPayPlusOneOffPaymentbooleantrueOptionalShow AliPay+ option if enabled for the merchant.Admin config
allowApplePayOneOffPaymentbooleanfalseOptionalShow Apple Pay option if enabled for the merchant.Admin config
allowGooglePayOneOffPaymentbooleanfalseOptionalShow Google Pay option if enabled for the merchant.Admin config
allowLatitudePayOneOffPaymentbooleanfalseOptionalShow Latitude Pay option if enabled for the merchant.Admin config
allowSaveCardInformationbooleanfalseOptionalShow Save Card option if enabled for the merchant.Admin config
allowSlicePayOneOffPaymentbooleanfalseOptionalShow Slice Pay option if enabled for the merchant.Admin config
allowUnionPayOneOffPaymentbooleantrueOptionalShow UnionPay option if enabled for the merchant.Admin config
allowWeChatOneOffPaymentbooleanfalseOptionalShow WeChat Pay option if enabled for the merchant.Admin config
callbackUrlstringOptionalHTTP POST callback URL for the result.
See Return Parameters.
cardProxystringOptionalUse this parameter to make a payment using a card proxy which is generated using mode '1'.
companyNamestringOptionalCustomer company name.
contactNumberstringOptionalContact number
CustomerNameLabelstringOptionalCustom label to override default customer name display text
CustomerReferenceLabelstringOptionalCustom label to override default customer reference display text
departureDatestringOptionalRequired for Slice Pay.
Format: yyyy-MM-dd
displayModeint0Optional0 = Default (Modal)
1 = Redirect URL
Google Pay and Apple Pay work with Modal or Redirect URL with iframe.
hideHeaderbooleantrueOptionalThis will hide the program header including program logo.
hideMerchantLogobooleanfalseOptionalThis will hide the merchant logo if any.
hideTermsAndConditionsbooleanfalseOptionalThis will hide the Terms and Conditions.
minHeightint725OptionalMinimum height of the plugin iframe in pixels.
modeint0Optional0 = Make Payment
1 = Tokenise
2 = Custom Payment
3 = Preauthorization
onPluginClosefunctionOptionalJavascript callback function to execute when plug-in is closed.
overrideFeePayerint0Optional0 = Default (pricing profile)
1 = Merchant pays fee
2 = Customer pays feeAdmin config
PaymentAmountLabelstringOptionalCustom label to override default payment amount display text
redirectOnErrorstringfalseOptionalIf this is set to true, all validation and processing errors are returned part of the redirect url.
sendConfirmationEmailToCustomerbooleanfalseOptionalThis will send confirmation email to customer.
sendConfirmationEmailToMerchantbooleanfalseOptionalThis will send confirmation email to merchant.
sku1stringOptionalStock Keeping Unit.
If the value exceeds 50 characters, only the first 50 characters will be retained and the rest discarded.
sku2stringOptionalStock Keeping Unit.
If the value exceeds 50 characters, only the first 50 characters will be retained and the rest discarded.
titlestringProcess PaymentOptionalPlugin title.
userModeint0Optional0 = Customer Facing — CCV/3DS required
1 = Merchant Facing — no CCV/3DS if supportedAdmin config

Fingerprint Hash Composition

The fingerprint parameter is a SHA3-512 hash of 7 pipe-separated fields. All credentials are case-sensitive.

Hover over each field for details:

apiKey

API Key

Public API key (GUID) provided by Zenith. Case-sensitive. First field in the pipe-separated hash input.

|username

Username

Integration username provided by Zenith. Case-sensitive. Used in the fingerprint hash but never sent to the client or included in the URL.

|password

Password

Integration password provided by Zenith. Case-sensitive. Used in the fingerprint hash but never sent to the client or included in the URL.

|mode

Mode

0 = Make Payment, 1 = Tokenise, 2 = Custom Payment (amount in hash must be 0, actual amount in payload), 3 = Pre-authorisation.

|amount

Amount (dollars)

Payment amount in dollars, exactly as the plugin payload carries it (49.90, 123, 123.1). The hash uses the same amount in whole cents with no decimal point — 49.90 becomes 4990 and 123.1 becomes 12310. Mode 2 always hashes 0.

|merchantUniquePaymentId

Merchant Unique Payment ID

Your unique transaction identifier. Must be unique per attempt — reusing a previous ID with the same timestamp triggers error E03.

|timestamp

Timestamp (UTC)

UTC format: YYYY-MM-DDTHH:mm:ss (no timezone suffix, no milliseconds). Must match exactly between hash and plugin payload. Server allows 90-second skew.

  • paymentAmount must be in cents (e.g. $150.53 = 15053). For Mode 2, always pass 0.
  • timestamp must be in UTC ISO 8601 format: YYYY-MM-DDTHH:mm:ss — no timezone suffix, no milliseconds.
  • username and password are used only in the hash — they are never sent in the plugin payload.
  • Each merchantUniquePaymentId + timestamp combination must be unique per attempt.

Tools: Use the Fingerprint Generator or Fingerprint Validator to test your implementation.


Output Parameters#

33 parameters for mode 0 - Make Payment.

NameDescription
AccountOrCardNoAccount or card number used to process payment.
AdditionalReferenceSame as input parameter. Returned when supplied in the request payload.
BaseAmountSame as payment amount.
CallbackStatusCallback delivery status as seen by ZenPay (e.g. Successful, Failed). Reflects the server-to-server callback, not the redirect.
CardCategoryCard category classification (e.g. International Cards, Domestic). Returned only for card payments.
CustomerFeeFee charged to the the customer to process the payment.
CustomerNameSame as input parameter.
CustomerReferenceSame as input parameter.
FailureCodePopulated only when payment is not successful.
FailureReasonPopulated only when payment is not successful.
FundsToMerchantBase amount - Merchant fee, if applicable.
IsPaymentSettledToMerchantFlag to indicate whether the funds are settled to the merchant or not.
MerchantCodeMerchant code.
MerchantUniquePaymentIdSame as input parameter.
PayIdReturned only if payment is processed using PayID.
PayIdNameReturned only if payment is processed using PayID. Display name for the PayID
PaymentAccountHigh-level account type used for the payment (e.g. Card, BankAccount).
PaymentCardCard scheme when PaymentAccount is Card (e.g. MasterCard, Visa, AmericanExpress).
PaymentReferencePayment reference.
PaymentStatusNumeric status: 0 Pending · 1 Error · 3 Successful · 4 Failed · 5 Cancelled · 6 Suppressed · 7 InProgress
PaymentStatusStringString equivalent of PaymentStatus (see above).
PreauthAmountBase amount + Customer fee.
PreauthReferencePreauthorization reference.
PreauthStatusNumeric status: 0 Pending · 1 Error · 3 Successful · 4 Failed · 5 Cancelled · 6 Suppressed · 7 InProgress
PreauthStatusStringString equivalent of PreauthStatus (see above).
ProcessedAmountBase amount + Customer fee.
ProcessingDateDate and time when the payment is processed.
Format: yyyy-MM-ddTHH:mm:ss
ProcessorReferenceProcessor reference.
resultOverall outcome of the redirect flow (e.g. success, failed, cancelled).
SettlementDateDate when the payment is settled to the merchant.
Format: yyyy-MM-dd
TokenReturned only if payment is processed using cardProxy input parameter. The value will be same as cardProxy.
TransactionSource36 = Public_OnlineOneOffPayment
TransactionSourceStringString equivalent of TransactionSource (see above).

Validation Code Composition

The callback payload includes an additional ValidationCode parameter that you can use to authenticate the callback and verify it originated from Zenith Payments.

The ValidationCode is a SHA3-512 hash of 7 pipe-separated fields. All credentials are case-sensitive.

Hover over each field for details:

apiKey

API Key

Public API key (GUID) provided by Zenith. Same key used in the fingerprint hash.

|userName

Username

Integration username provided by Zenith. Case-sensitive. Same credential used in the fingerprint hash.

|password

Password

Integration password provided by Zenith. Case-sensitive. Same credential used in the fingerprint hash.

|mode

Mode

0 = Make Payment, 1 = Tokenise, 2 = Custom Payment, 3 = Pre-authorisation. Same value sent in the request.

|paymentAmount

Amount (cents)

Payment amount in whole cents. Same value used in the fingerprint hash.

|merchantUniquePaymentId

Merchant Unique Payment ID

Your unique transaction identifier. Same value sent in the request.

|reference

Reference

The transaction reference returned in the callback response. For Mode 1 (Tokenise), this is the Token output parameter.

  • The first 6 fields are the same values used in the original fingerprint hash.
  • reference is the transaction reference returned in the callback — for Mode 1 (Tokenise), this is the Token output parameter.
  • To verify: regenerate the hash server-side using your credentials + the returned reference, and compare against the received ValidationCode.

See also: Callbacks and Validation — full receive-and-verify flow

Need help with your integration?Talk to the Zenith Integrations Team.
Email integrationsTalk to us