This page is a ZenPay-styled copy of the Zenith Payments developer documentation. View the original docs
Customers API
A customer represents a payer enrolled with a merchant. Each customer holds a profile, payment account details, payment options, and subscription status.
List customers#
View this endpoint in the original docs
Returns customers that match the supplied filter criteria.
Authentication: Api-Key + BasicAuth
Parameters
| Name | In | Type | Description |
|---|---|---|---|
customerReference | query | string | Filter by the merchant's unique reference for the customer. |
customerStatuses | query | array of integer <int32> | Filter by customer status. Defaults to all statuses. Allowed values: 0 Open, 1 AwaitingEmailVerfication, 2 AwaitingSignature, 3 SetUpIncomplete, 4 Restricted, 5 Closed, 6 OnHold, 7 PendingBankAccountVerification, 8 ReferCustomerAccount |
fromOpenDate | query | string <date-time> | Return customers opened on or after this date. Format: yyyy-MM-dd. |
toOpenDate | query | string <date-time> | Return customers opened on or before this date. Format: yyyy-MM-dd. |
fromClosedDate | query | string <date-time> | Return customers closed on or after this date. Format: yyyy-MM-dd. |
toClosedDate | query | string <date-time> | Return customers closed on or before this date. Format: yyyy-MM-dd. |
paymentOptions | query | array of integer <int32> | Filter by payment option. Defaults to all options. Allowed values: 22 AutoPay, 23 EmailReminder, 24 SmsReminder, 25 FixedTerm, 26 BatchPay, 27 ScheduledPay, 28 OneOff, 148 PayID, 149 BPAY |
offset | query | integer <int32> | The zero-based index of the first record to return. Default: 0. Default: 0 |
limit | query | integer <int32> | The maximum number of records to return. Default: 20. Maximum: 2000. Default: 20 |
Responses
200 Return all the customers satisfies the filters.
application/json · array of object (CustomerResponse)
Example: Customer found by reference
One compact list example; show filtering and pagination through parameter documentation.
[
{
"account": {
"bankAccount": {
"accountName": "Test Customer",
"accountNumber": "12345678",
"bsb": "062000",
"isPayTo": false,
"label": "Sweep test account",
"payToStatus": 0
}
},
"paymentOption": {
"notificationMethod": 0,
"paymentAmount": 0,
"paymentFrequency": 34,
"paymentOption": 26
},
"profile": {
"abn": "51824753556",
"address": {
"address1": "1 Test Street",
"address2": "Unit 2",
"country": "AU",
"postcode": "2000",
"state": "NSW",
"suburb": "Sydney"
},
"companyName": "Test Company Pty Ltd",
"customerCode": "BB11226984",
"customerReference": "cust-6052270595449",
"customerStatus": "Open",
"dateOfBirth": "1999-05-08T14:20:58",
"email": "test@zenpay.com.au",
"enableBPayOption": false,
"fax": "0299999998",
"firstName": "Test",
"lastName": "Customer",
"merchantStaffMember": "Example Operator",
"mobile": "0400000000",
"openDate": "2026-09-24T00:20:58.597",
"phone": "0299999999",
"title": "Mr"
}
}
]400 Invalid get request.
application/json · object
404 Unable to find the customers by the filters provided.
application/json · object
500 Something went wrong. Please try again.
application/json · object
Example request (cURL, sandbox host)
curl -X GET 'https://api.sandbox.zenpay.com.au/v2/customers' \
-H 'Api-Key: <your API key>' \
-u '<username>:<password>' \
-H 'Accept: application/json'Create a customer#
View this endpoint in the original docs
Creates a customer from the supplied request payload.
Authentication: Api-Key + BasicAuth
Request body
Customer details required to create a customer.
Content types: application/json, application/x-www-form-urlencoded · required
Schema: NewCustomer
| Field | Type | Description |
|---|---|---|
abn | string | Australian Business Number. |
additionalPaymentAccountProxies | array of object (AccountProxy) | Additional PaymentAccountProxies. Proxy is generated using the Payments Plugin for Bank and Credit/Debit Card or /cardProxies api for Credit/Debit Card. |
additionalReferences | array of object (AdditionalReference) | Additional references if you have more than one references to manage. Eg: Parents paying childcare fee for more than one kid. |
address | object (CustomerAddress) | Customer address. |
bankAccount | object (BankAccount) | Customer bank account details. |
card | object (CreditCardProxy) | Customer credit / debit card proxy. (Token is generated using the /tokens api. |
customerCompanyName | string | Company name if this is company account. |
customerReference required | string | Customer / Parent Reference. Should be unique and provided by the merchant. If you are paying the merchant by BPAY, this should be your BPAY Reference. |
dateOfBirth required | string <date-time> | Date of birth. Customer must be atleast 16 years old. |
email required | string | Email address. |
enableBPayOption | boolean | Allows to enable BPAY option for the customer / parent. |
fax | string | Fax number. |
firstName required | string | First name. Max length: 30 |
isBPayCrnPassed | boolean | Send this as true when customer reference passed if CRN. Default is set to false if not passed. |
lastName required | string | Last name. Max length: 30 |
merchantStaffMember | string | Merchant Staff member assigned to this customer / parent. |
mobile required | string | Mobile number. |
notificationMethod required | integer <int32> | Notification method used to indicate the communication channel when payment successful or failed. Allowed values: 0 None, 1 Sms, 2 Email |
paymentAccountProxy | object (AccountProxy) | This replaces the BankAccount and Card properties. Proxy is generated using the Payments Plugin for Bank and Credit/Debit Card or /cardProxies api for Credit/Debit Card. |
paymentAmount required | number <double> | Payment amount. Set the default amount for auto payments or amount for one-off payment. |
paymentEndDate | string <date-time> | Payment end date. |
paymentFrequency required | integer <int32> | Payment frequency. Applicable to auto pay, email reminder and sms reminder. Allowed values: 32 Weekly, 33 Fortnightly, 38 Monthly, 34 Quarterly, 35 HalfYearly, 36 Yearly, 37 FourWeeks |
paymentOption required | integer <int32> | Payment option. Use the correct payment option which is supported by the merchant. Allowed values: 22 AutoPay, 23 EmailReminder, 24 SmsReminder, 25 FixedTerm, 26 BatchPay, 27 ScheduledPay, 28 OneOff, 148 PayID, 149 BPAY |
paymentStartDate required | string <date-time> | Payment start date. |
phone | string | Phone number. |
promotionCode | string | Promotion code if any. |
sendWelcomeEmail | boolean | Sends welcome email if set to true. Default is set to true if not passed. |
title | string | Provide the salutation. Eg: Mr or Mrs. Max length: 10 |
websiteUrl | string | Website URL if any. |
Example: AutoPay customer
A clearer AutoPay example: the response retains the requested option. One frequency is enough.
{
"abn": "51824753556",
"additionalReferences": [
{
"customerReference": "cust-8560263033257-alt",
"fullName": "Test Customer"
}
],
"address": {
"address1": "1 Test Street",
"address2": "Unit 2",
"country": "AU",
"postcode": "2000",
"state": "NSW",
"suburb": "Sydney"
},
"bankAccount": {
"accountName": "Test Customer",
"accountNumber": "12345678",
"bankBranch": "Sydney",
"bankName": "Commonwealth Bank",
"bsb": "062000",
"isPayTo": false,
"label": "bank test",
"payToStatus": 0
},
"customerCompanyName": "Test Company Pty Ltd",
"customerReference": "cust-8560263033257",
"dateOfBirth": "1999-05-08T14:20:52",
"email": "test@zenpay.com.au",
"enableBPayOption": false,
"fax": "0299999998",
"firstName": "Test",
"isBPayCrnPassed": false,
"lastName": "Customer",
"merchantStaffMember": "Example Operator",
"mobile": "0400000000",
"notificationMethod": 0,
"paymentAmount": 1,
"paymentEndDate": "2027-10-23T14:20:52",
"paymentFrequency": 33,
"paymentOption": 22,
"paymentStartDate": "2026-10-23T14:20:52",
"phone": "0299999999",
"promotionCode": "EX2026",
"sendWelcomeEmail": false,
"title": "Mr",
"websiteUrl": "https://www.zenpay.com.au"
}Example: Customer with a bank account
Baseline bank-account creation; optional profile fields do not earn additional examples.
{
"abn": "51824753556",
"additionalReferences": [
{
"customerReference": "cust-6052270595449-alt",
"fullName": "Test Customer"
}
],
"address": {
"address1": "1 Test Street",
"address2": "Unit 2",
"country": "AU",
"postcode": "2000",
"state": "NSW",
"suburb": "Sydney"
},
"bankAccount": {
"accountName": "Test Customer",
"accountNumber": "12345678",
"bankBranch": "Sydney",
"bankName": "Commonwealth Bank",
"bsb": "062000",
"isPayTo": false,
"label": "test account"
},
"customerCompanyName": "Test Company Pty Ltd",
"customerReference": "cust-6052270595449",
"dateOfBirth": "1999-05-08T14:20:58",
"email": "test@zenpay.com.au",
"enableBPayOption": false,
"fax": "0299999998",
"firstName": "Test",
"isBPayCrnPassed": false,
"lastName": "Customer",
"merchantStaffMember": "Example Operator",
"mobile": "0400000000",
"notificationMethod": 0,
"paymentAmount": 1,
"paymentFrequency": 34,
"paymentOption": 26,
"paymentStartDate": "2026-10-23T14:20:58",
"phone": "0299999999",
"promotionCode": "EX2026",
"sendWelcomeEmail": false,
"title": "Mr",
"websiteUrl": "https://www.zenpay.com.au"
}Example: Customer with a payment account proxy
Distinct account input using the general payment-account proxy.
{
"additionalPaymentAccountProxies": [
{
"label": "additional",
"proxy": "e9430c42020c4750af3f4d046d0034ef"
}
],
"address": {
"address1": "1 Test Street",
"country": "AU",
"postcode": "2000",
"state": "NSW",
"suburb": "Sydney"
},
"customerReference": "cust-7691567123169",
"dateOfBirth": "1999-05-08T14:21:03",
"email": "test@zenpay.com.au",
"firstName": "Test",
"lastName": "Proxy",
"mobile": "0400000000",
"notificationMethod": 0,
"paymentAccountProxy": {
"label": "example pap",
"proxy": "7bd2b35061e2461690eed705f18968a2"
},
"paymentAmount": 1,
"paymentFrequency": 34,
"paymentOption": 26,
"paymentStartDate": "2026-10-23T14:21:03",
"sendWelcomeEmail": false
}Example: Customer with a stored card
Distinct account input using the card field.
{
"address": {
"address1": "1 Test Street",
"country": "AU",
"postcode": "2000",
"state": "NSW",
"suburb": "Sydney"
},
"card": {
"cardProxy": "73898fe3d1044245adbcc1b9b597dc11",
"label": "workflow card"
},
"customerReference": "cust-batch-7880558552220",
"dateOfBirth": "1999-05-08T14:36:46",
"email": "test@zenpay.com.au",
"firstName": "Test",
"lastName": "Card",
"mobile": "0400000000",
"notificationMethod": 0,
"paymentAmount": 1,
"paymentFrequency": 34,
"paymentOption": 26,
"paymentStartDate": "2026-10-23T14:36:46",
"sendWelcomeEmail": false
}Example: PayID customer
Keep the request as well: choosing PayID is a meaningful use even when field names are unchanged.
{
"abn": "51824753556",
"additionalReferences": [
{
"customerReference": "cust-2973999445559-alt",
"fullName": "Test Customer"
}
],
"address": {
"address1": "1 Test Street",
"address2": "Unit 2",
"country": "AU",
"postcode": "2000",
"state": "NSW",
"suburb": "Sydney"
},
"bankAccount": {
"accountName": "Test Customer",
"accountNumber": "12345678",
"bankBranch": "Sydney",
"bankName": "Commonwealth Bank",
"bsb": "062000",
"isPayTo": false,
"label": "bank test",
"payToStatus": 0
},
"customerCompanyName": "Test Company Pty Ltd",
"customerReference": "cust-2973999445559",
"dateOfBirth": "1999-05-08T14:20:56",
"email": "test@zenpay.com.au",
"enableBPayOption": false,
"fax": "0299999998",
"firstName": "Test",
"isBPayCrnPassed": false,
"lastName": "Customer",
"merchantStaffMember": "Example Operator",
"mobile": "0400000000",
"notificationMethod": 0,
"paymentAmount": 1,
"paymentEndDate": "2027-10-23T14:20:56",
"paymentFrequency": 34,
"paymentOption": 148,
"paymentStartDate": "2026-10-23T14:20:56",
"phone": "0299999999",
"promotionCode": "EX2026",
"sendWelcomeEmail": false,
"title": "Mr",
"websiteUrl": "https://www.zenpay.com.au"
}Responses
201 Customer created successfully.
application/json · object (NewCustomer)
Example: AutoPay customer
A clearer AutoPay example: the response retains the requested option. One frequency is enough.
{
"abn": "51824753556",
"additionalPaymentAccountProxies": [],
"additionalReferences": [
{
"customerReference": "cust-8560263033257-alt",
"fullName": "Test Customer"
}
],
"address": {
"address1": "1 Test Street",
"address2": "Unit 2",
"country": "AU",
"postcode": "2000",
"state": "NSW",
"suburb": "Sydney"
},
"bankAccount": {
"accountName": "Test Customer",
"accountNumber": "12345678",
"bankBranch": "Sydney",
"bankName": "Commonwealth Bank",
"bsb": "062000",
"isPayTo": false,
"label": "bank test",
"payToStatus": 0
},
"customerCompanyName": "Test Company Pty Ltd",
"customerLogin": "test@zenpay.com.au",
"customerReference": "cust-8560263033257",
"dateOfBirth": "1999-05-08T14:20:52",
"email": "test@zenpay.com.au",
"enableBPayOption": false,
"fax": "0299999998",
"firstName": "Test",
"isBPayCrnPassed": false,
"lastName": "Customer",
"merchantCode": "1337",
"merchantName": "Menethil",
"merchantStaffMember": "Example Operator",
"mobile": "0400000000",
"notificationMethod": 0,
"passwordGenerationUrl": "https://pay.sandbox.b2bpay.com.au/Password/Reset?token=707bb669-302f-4dc0-9273-128f66b516d3",
"paymentAmount": 1,
"paymentEndDate": "2027-10-23T14:20:52",
"paymentFrequency": 33,
"paymentOption": 22,
"paymentStartDate": "2026-10-23T14:20:52",
"phone": "0299999999",
"promotionCode": "EX2026",
"sendWelcomeEmail": false,
"title": "Mr",
"websiteUrl": "https://www.zenpay.com.au"
}Example: Customer with a bank account
Baseline bank-account creation; optional profile fields do not earn additional examples.
{
"abn": "51824753556",
"additionalPaymentAccountProxies": [],
"additionalReferences": [
{
"customerReference": "cust-6052270595449-alt",
"fullName": "Test Customer"
}
],
"address": {
"address1": "1 Test Street",
"address2": "Unit 2",
"country": "AU",
"postcode": "2000",
"state": "NSW",
"suburb": "Sydney"
},
"bankAccount": {
"accountName": "Test Customer",
"accountNumber": "12345678",
"bankBranch": "Sydney",
"bankName": "Commonwealth Bank",
"bsb": "062000",
"isPayTo": false,
"label": "test account",
"payToStatus": 0
},
"customerCompanyName": "Test Company Pty Ltd",
"customerLogin": "test@zenpay.com.au",
"customerReference": "cust-6052270595449",
"dateOfBirth": "1999-05-08T14:20:58",
"email": "test@zenpay.com.au",
"enableBPayOption": false,
"fax": "0299999998",
"firstName": "Test",
"isBPayCrnPassed": false,
"lastName": "Customer",
"merchantCode": "1337",
"merchantName": "Menethil",
"merchantStaffMember": "Example Operator",
"mobile": "0400000000",
"notificationMethod": 0,
"passwordGenerationUrl": "https://pay.sandbox.b2bpay.com.au/Password/Reset?token=f08304ea-dd86-4498-8988-d32f5bcd650b",
"paymentAmount": 0,
"paymentFrequency": 34,
"paymentOption": 26,
"paymentStartDate": "2026-09-24T00:00:00",
"phone": "0299999999",
"promotionCode": "EX2026",
"sendWelcomeEmail": false,
"title": "Mr",
"websiteUrl": "https://www.zenpay.com.au"
}Example: Customer with a payment account proxy
Distinct account input using the general payment-account proxy.
{
"additionalPaymentAccountProxies": [
{
"label": "additional",
"proxy": "e9430c42020c4750af3f4d046d0034ef"
}
],
"additionalReferences": [],
"address": {
"address1": "1 Test Street",
"country": "AU",
"postcode": "2000",
"state": "NSW",
"suburb": "Sydney"
},
"customerLogin": "test@zenpay.com.au",
"customerReference": "cust-7691567123169",
"dateOfBirth": "1999-05-08T14:21:03",
"email": "test@zenpay.com.au",
"firstName": "Test",
"lastName": "Proxy",
"merchantCode": "1337",
"merchantName": "Menethil",
"mobile": "0400000000",
"notificationMethod": 0,
"passwordGenerationUrl": "https://pay.sandbox.b2bpay.com.au/Password/Reset?token=4c0de80f-64e9-48f8-a536-d4c1cc2a0389",
"paymentAccountProxy": {
"label": "example pap",
"proxy": "7bd2b35061e2461690eed705f18968a2"
},
"paymentAmount": 0,
"paymentFrequency": 34,
"paymentOption": 26,
"paymentStartDate": "2026-09-24T00:00:00",
"sendWelcomeEmail": false
}Example: Customer with a stored card
Distinct account input using the card field.
{
"additionalPaymentAccountProxies": [],
"additionalReferences": [],
"address": {
"address1": "1 Test Street",
"country": "AU",
"postcode": "2000",
"state": "NSW",
"suburb": "Sydney"
},
"card": {
"cardProxy": "73898fe3d1044245adbcc1b9b597dc11",
"label": "workflow card"
},
"customerLogin": "test@zenpay.com.au",
"customerReference": "cust-batch-7880558552220",
"dateOfBirth": "1999-05-08T14:36:46",
"email": "test@zenpay.com.au",
"firstName": "Test",
"lastName": "Card",
"merchantCode": "1337",
"merchantName": "Menethil",
"mobile": "0400000000",
"notificationMethod": 0,
"passwordGenerationUrl": "https://pay.sandbox.b2bpay.com.au/Password/Reset?token=11bddd3a-604c-4b74-8168-0304e7fbedb4",
"paymentAmount": 0,
"paymentFrequency": 34,
"paymentOption": 26,
"paymentStartDate": "2026-09-24T00:00:00",
"sendWelcomeEmail": false
}Example: PayID customer
Keep the request as well: choosing PayID is a meaningful use even when field names are unchanged.
{
"abn": "51824753556",
"additionalPaymentAccountProxies": [],
"additionalReferences": [
{
"customerReference": "cust-2973999445559-alt",
"fullName": "Test Customer"
}
],
"address": {
"address1": "1 Test Street",
"address2": "Unit 2",
"country": "AU",
"postcode": "2000",
"state": "NSW",
"suburb": "Sydney"
},
"bankAccount": {
"accountName": "Test Customer",
"accountNumber": "12345678",
"bankBranch": "Sydney",
"bankName": "Commonwealth Bank",
"bsb": "062000",
"isPayTo": false,
"label": "bank test",
"payToStatus": 0
},
"billerReference": "9205042477",
"customerCompanyName": "Test Company Pty Ltd",
"customerLogin": "test@zenpay.com.au",
"customerReference": "cust-2973999445559",
"dateOfBirth": "1999-05-08T14:20:56",
"email": "test@zenpay.com.au",
"enableBPayOption": false,
"fax": "0299999998",
"firstName": "Test",
"isBPayCrnPassed": false,
"lastName": "Customer",
"merchantCode": "1337",
"merchantName": "Menethil",
"merchantStaffMember": "Example Operator",
"mobile": "0400000000",
"notificationMethod": 0,
"passwordGenerationUrl": "https://pay.sandbox.b2bpay.com.au/Password/Reset?token=55062c7a-e83b-440d-be6c-a303adf713a7",
"payIdDetail": {
"payId": "payiduat@b2bpay.com.au",
"payIdName": "B2Bpay",
"reference": "9205042477"
},
"paymentAmount": 0,
"paymentFrequency": 34,
"paymentOption": 148,
"paymentStartDate": "2026-09-24T00:00:00",
"phone": "0299999999",
"promotionCode": "EX2026",
"sendWelcomeEmail": false,
"title": "Mr",
"websiteUrl": "https://www.zenpay.com.au"
}300 Duplicate customer reference.
application/json · object
Example: Customer reference already exists
Shows the operation-specific duplicate-reference response.
{
"message": "The customer reference already exists."
}400 Invalid input detail.
application/json · object
403 Merchant is forbidden to perform this operation.
application/json · object
500 Something went wrong. Customer may or may not be created.
application/json · object
Example request (cURL, sandbox host)
curl -X POST 'https://api.sandbox.zenpay.com.au/v2/customers' \
-H 'Api-Key: <your API key>' \
-u '<username>:<password>' \
-H 'Content-Type: application/json' \
-d '{
"abn": "51824753556",
"additionalReferences": [
{
"customerReference": "cust-8560263033257-alt",
"fullName": "Test Customer"
}
],
"address": {
"address1": "1 Test Street",
"address2": "Unit 2",
"country": "AU",
"postcode": "2000",
"state": "NSW",
"suburb": "Sydney"
},
"bankAccount": {
"accountName": "Test Customer",
"accountNumber": "12345678",
"bankBranch": "Sydney",
"bankName": "Commonwealth Bank",
"bsb": "062000",
"isPayTo": false,
"label": "bank test",
"payToStatus": 0
},
"customerCompanyName": "Test Company Pty Ltd",
"customerReference": "cust-8560263033257",
"dateOfBirth": "1999-05-08T14:20:52",
"email": "test@zenpay.com.au",
"enableBPayOption": false,
"fax": "0299999998",
"firstName": "Test",
"isBPayCrnPassed": false,
"lastName": "Customer",
"merchantStaffMember": "Example Operator",
"mobile": "0400000000",
"notificationMethod": 0,
"paymentAmount": 1,
"paymentEndDate": "2027-10-23T14:20:52",
"paymentFrequency": 33,
"paymentOption": 22,
"paymentStartDate": "2026-10-23T14:20:52",
"phone": "0299999999",
"promotionCode": "EX2026",
"sendWelcomeEmail": false,
"title": "Mr",
"websiteUrl": "https://www.zenpay.com.au"
}'Get a customer#
View this endpoint in the original docs
Returns the customer for the specified customer reference.
Authentication: Api-Key + BasicAuth
Parameters
| Name | In | Type | Description |
|---|---|---|---|
customerReference required | path | string | The merchant's unique reference for the customer. |
Responses
200 Found the customer.
application/json · object (CustomerResponse)
Example: Customer details
One full customer read; account and payment-option endpoints below demonstrate their variants.
{
"account": {
"bankAccount": {
"accountName": "Test Customer",
"accountNumber": "12345678",
"bsb": "062000",
"isPayTo": false,
"label": "Sweep test account",
"payToStatus": 0
}
},
"paymentOption": {
"notificationMethod": 0,
"paymentAmount": 0,
"paymentFrequency": 34,
"paymentOption": 26
},
"profile": {
"abn": "51824753556",
"address": {
"address1": "1 Test Street",
"address2": "Unit 2",
"country": "AU",
"postcode": "2000",
"state": "NSW",
"suburb": "Sydney"
},
"companyName": "Test Company Pty Ltd",
"customerCode": "BB11226984",
"customerReference": "cust-6052270595449",
"customerStatus": "Open",
"dateOfBirth": "1999-05-08T14:20:58",
"email": "test@zenpay.com.au",
"enableBPayOption": false,
"fax": "0299999998",
"firstName": "Test",
"lastName": "Customer",
"merchantStaffMember": "Example Operator",
"mobile": "0400000000",
"openDate": "2026-09-24T00:20:58.597",
"phone": "0299999999",
"title": "Mr"
}
}400 Invalid customer reference.
application/json · object
404 Unable to find the customer by the reference provided.
application/json · object
Example request (cURL, sandbox host)
curl -X GET 'https://api.sandbox.zenpay.com.au/v2/customers/{customerReference}' \
-H 'Api-Key: <your API key>' \
-u '<username>:<password>' \
-H 'Accept: application/json'Get a customer account#
View this endpoint in the original docs
Returns the account details for the specified customer.
Authentication: Api-Key + BasicAuth
Parameters
| Name | In | Type | Description |
|---|---|---|---|
customerReference required | path | string | The merchant's unique reference for the customer. |
Responses
200 Found the customer account.
application/json · object (CustomerAccountResponse)
Example: Bank account
The bank-account variant of this account lookup.
{
"bankAccount": {
"accountName": "Test Customer",
"accountNumber": "12345678",
"bsb": "062000",
"isPayTo": false,
"label": "Sweep test account",
"payToStatus": 0
}
}Example: Stored card
The card variant of this account lookup.
{
"creditCard": {
"cardNumber": "555555XXXXXX4444",
"cardType": "MasterCard",
"expiry": "1229",
"label": "example card"
}
}400 Invalid customer reference.
application/json · object
404 Unable to find the customer by the reference provided.
application/json · object
Example request (cURL, sandbox host)
curl -X GET 'https://api.sandbox.zenpay.com.au/v2/customers/{customerReference}/account' \
-H 'Api-Key: <your API key>' \
-u '<username>:<password>' \
-H 'Accept: application/json'Update a customer account#
View this endpoint in the original docs
Updates the account details for the specified customer.
Authentication: Api-Key + BasicAuth
Parameters
| Name | In | Type | Description |
|---|---|---|---|
customerReference required | path | string | The merchant's unique reference for the customer. |
Request body
Account details required to update the customer account.
Content types: application/json, application/x-www-form-urlencoded · required
Schema: CustomerAccountRequest
| Field | Type | Description |
|---|---|---|
addtionalPaymentAccountProxies | array of object (AccountProxy) | Additional PaymentAccountProxies. Proxy is generated using the Payments Plugin for bank account and card or /cardProxies API for card. |
bankAccount | object (BankAccount) | Customer bank account details. Provide valid BSB and Account Number. |
creditCardProxy | object (CreditCardProxy) | Customer credit / debit card proxy. Proxy is generated using the /cardProxies API or Payments Plugin. |
paymentAccountProxy | object (AccountProxy) | This replaces the BankAccount and CreditCardProxy. Proxy is generated using the Payments Plugin for bank account and card or /cardProxies API for card. |
Example: Bank account replaced
Prefer this ordinary bank-account update over a PayTo-status-focused variant.
{
"bankAccount": {
"accountName": "Test Customer",
"accountNumber": "12345678",
"bankBranch": "Sydney",
"bankName": "Commonwealth Bank",
"bsb": "062000",
"isPayTo": false,
"label": "test account"
}
}Example: Switch to a payment account proxy
Distinct account replacement body; preserve the captured field spelling.
{
"addtionalPaymentAccountProxies": [
{
"label": "additional",
"proxy": "e4602844c10945c49286d5987bf9eda2"
}
],
"paymentAccountProxy": {
"label": "updated pap",
"proxy": "3836c3b2acea449688c24b6c179f0523"
}
}Example: Switch to a stored card
Distinct account replacement body; successful response has no body.
{
"creditCardProxy": {
"cardProxy": "8c8fb346b9c24f13b3b7be78c093d8cc",
"label": "updated card"
}
}Responses
204 Updated the customer account.
400 Invalid input detail.
application/json · object
403 Merchant is forbidden to perform this operation.
application/json · object
500 Something went wrong. Customer account may or may not be updated.
application/json · object
Example request (cURL, sandbox host)
curl -X PUT 'https://api.sandbox.zenpay.com.au/v2/customers/{customerReference}/account' \
-H 'Api-Key: <your API key>' \
-u '<username>:<password>' \
-H 'Content-Type: application/json' \
-d '{
"bankAccount": {
"accountName": "Test Customer",
"accountNumber": "12345678",
"bankBranch": "Sydney",
"bankName": "Commonwealth Bank",
"bsb": "062000",
"isPayTo": false,
"label": "test account"
}
}'Update a customer reference#
View this endpoint in the original docs
Updates the customer reference for the specified customer.
Authentication: Api-Key + BasicAuth
Parameters
| Name | In | Type | Description |
|---|---|---|---|
customerReference required | path | string | The existing customer reference. |
Request body
Customer reference details required to update the customer reference.
Content types: application/json, application/x-www-form-urlencoded · required
Example: Reference renamed
Shows the plain JSON string body, not an object wrapper.
"upd-a-8625433279667r"Responses
204 Updated the customer reference.
400 Invalid input detail.
application/json · object
403 Merchant is forbidden to perform this operation.
application/json · object
500 Something went wrong. Customer reference may or may not be updated.
application/json · object
Example request (cURL, sandbox host)
curl -X PUT 'https://api.sandbox.zenpay.com.au/v2/customers/{customerReference}/customerReference' \
-H 'Api-Key: <your API key>' \
-u '<username>:<password>' \
-H 'Content-Type: application/json' \
-d '"upd-a-8625433279667r"'Get a customer payment option#
View this endpoint in the original docs
Returns the payment option for the specified customer.
Authentication: Api-Key + BasicAuth
Parameters
| Name | In | Type | Description |
|---|---|---|---|
customerReference required | path | string | The merchant's unique reference for the customer. |
Responses
200 Found the customer payment option.
application/json · object (CustomerPaymentOption)
Example: Batch payment option
Baseline option without BPAY or PayID details.
{
"notificationMethod": 0,
"paymentAmount": 0,
"paymentFrequency": 34,
"paymentOption": 26
}Example: PayID payment option
Shows the PayID details in this dedicated lookup.
{
"notificationMethod": 0,
"payIdDetail": {
"payId": "payiduat@b2bpay.com.au",
"payIdName": "B2Bpay",
"reference": "9205042477"
},
"paymentAmount": 0,
"paymentFrequency": 34,
"paymentOption": 148
}400 Invalid customer reference.
application/json · object
404 Unable to find the customer by the reference provided.
application/json · object
Example request (cURL, sandbox host)
curl -X GET 'https://api.sandbox.zenpay.com.au/v2/customers/{customerReference}/paymentOption' \
-H 'Api-Key: <your API key>' \
-u '<username>:<password>' \
-H 'Accept: application/json'Update a customer payment option#
View this endpoint in the original docs
Updates the payment option for the specified customer.
Authentication: Api-Key + BasicAuth
Parameters
| Name | In | Type | Description |
|---|---|---|---|
customerReference required | path | string | The merchant's unique reference for the customer. |
Request body
Payment option details required to update the customer payment option.
Content types: application/json, application/x-www-form-urlencoded · required
Schema: CustomerPaymentOption
| Field | Type | Description |
|---|---|---|
bPayDetail | object (BPayDetail) | BPAY details. |
nextPaymentDate required | string <date-time> | Payment start date. |
notificationMethod required | integer <int32> | Notification method used to indicate the communication channel when payment successful or failed. Allowed values: 0 None, 1 Sms, 2 Email |
payIdDetail | object (PayIdDetail) | PayID details. |
paymentAmount required | number <double> | Payment amount. Set the default amount for auto payments or amount for one-off payment. |
paymentEndDate | string <date-time> | Payment end date. |
paymentFrequency required | integer <int32> | Payment frequency. Applicable to auto pay, email reminder and sms reminder. Returns monthly if frequency is not available. Allowed values: 32 Weekly, 33 Fortnightly, 38 Monthly, 34 Quarterly, 35 HalfYearly, 36 Yearly, 37 FourWeeks |
paymentOption required | integer <int32> | Payment option. Use the correct payment option which is supported by the merchant. Allowed values: 22 AutoPay, 23 EmailReminder, 24 SmsReminder, 25 FixedTerm, 26 BatchPay, 27 ScheduledPay, 28 OneOff, 148 PayID, 149 BPAY |
Example: AutoPay option updated
One recurring-payment option update with a readily understood frequency.
{
"nextPaymentDate": "2026-11-02T14:21:17",
"notificationMethod": 0,
"paymentAmount": 1,
"paymentFrequency": 33,
"paymentOption": 22
}Example: PayID option update with details
Shows the PayID-specific input. A bodiless acknowledgement alone does not prove supplied details persisted.
{
"nextPaymentDate": "2026-11-02T14:21:18",
"notificationMethod": 0,
"payIdDetail": {
"payId": "payiduat@b2bpay.com.au",
"payIdName": "B2Bpay",
"reference": "1279162000"
},
"paymentAmount": 1,
"paymentEndDate": "2027-10-28T14:21:18",
"paymentFrequency": 34,
"paymentOption": 148
}Responses
204 Updated the customer payment option.
400 Invalid input detail.
application/json · object
403 Merchant is forbidden to perform this operation.
application/json · object
500 Something went wrong. Customer payment option may or may not be updated.
application/json · object
Example request (cURL, sandbox host)
curl -X PUT 'https://api.sandbox.zenpay.com.au/v2/customers/{customerReference}/paymentOption' \
-H 'Api-Key: <your API key>' \
-u '<username>:<password>' \
-H 'Content-Type: application/json' \
-d '{
"nextPaymentDate": "2026-11-02T14:21:17",
"notificationMethod": 0,
"paymentAmount": 1,
"paymentFrequency": 33,
"paymentOption": 22
}'Get a customer profile#
View this endpoint in the original docs
Returns the profile for the specified customer.
Authentication: Api-Key + BasicAuth
Parameters
| Name | In | Type | Description |
|---|---|---|---|
customerReference required | path | string | The merchant's unique reference for the customer. |
Responses
200 Found the customer profile.
application/json · object (ICustomerProfie)
Example: Customer profile
One representative profile read.
{
"abn": "51824753556",
"address": {
"address1": "1 Test Street",
"address2": "Unit 2",
"country": "AU",
"postcode": "2000",
"state": "NSW",
"suburb": "Sydney"
},
"companyName": "Test Company Pty Ltd",
"customerStatus": "Open",
"dateOfBirth": "1999-05-08T14:20:58",
"email": "test@zenpay.com.au",
"enableBPayOption": false,
"fax": "0299999998",
"firstName": "Test",
"lastName": "Customer",
"merchantStaffMember": "Example Operator",
"mobile": "0400000000",
"openDate": "2026-09-24T00:20:58.597",
"phone": "0299999999",
"title": "Mr"
}400 Invalid customer reference.
application/json · object
404 Unable to find the customer by the reference provided.
application/json · object
Example request (cURL, sandbox host)
curl -X GET 'https://api.sandbox.zenpay.com.au/v2/customers/{customerReference}/profile' \
-H 'Api-Key: <your API key>' \
-u '<username>:<password>' \
-H 'Accept: application/json'Update a customer profile#
View this endpoint in the original docs
Updates the profile for the specified customer.
Authentication: Api-Key + BasicAuth
Parameters
| Name | In | Type | Description |
|---|---|---|---|
customerReference required | path | string | The merchant's unique reference for the customer. |
Request body
Profile details required to update the customer profile.
Content types: application/json, application/x-www-form-urlencoded · required
Schema: CustomerProfileRequest
| Field | Type | Description |
|---|---|---|
abn | string | Australian Business Number. |
address required | object (CustomerAddress) | Customer postal address. |
companyName | string | Name of the customer company. |
dateOfBirth required | string <date-time> | Customer date of birth. |
email required | string | Customer email address. |
enableBPayOption | boolean | Whether BPay payment option is enabled for this customer. |
fax | string | Customer fax number. |
firstName required | string | First name. Max length: 30 |
lastName required | string | Last name. Max length: 30 |
merchantStaffMember | string | Staff member assigned to the customer. |
mobile | string | Customer mobile phone number. |
phone | string | Customer phone number. |
title | string | Provide the salutation. Eg: Mr or Mrs. Max length: 10 |
Example: Profile updated
Baseline profile replacement, including the mobile field in the captured request.
{
"abn": "51824753556",
"address": {
"address1": "1 Test Street",
"address2": "Unit 2",
"country": "AU",
"postcode": "2000",
"state": "NSW",
"suburb": "Sydney"
},
"companyName": "Test Company Pty Ltd",
"dateOfBirth": "1999-05-08T14:21:21",
"email": "test@zenpay.com.au",
"enableBPayOption": false,
"fax": "0299999998",
"firstName": "Test",
"lastName": "Customer",
"merchantStaffMember": "Example Operator",
"mobile": "0400000000",
"phone": "0299999999",
"title": "Mr"
}Responses
204 Updated the customer profile.
400 Invalid input detail.
application/json · object
403 Merchant is forbidden to perform this operation.
application/json · object
500 Something went wrong. Customer may or may not be updated.
application/json · object
Example request (cURL, sandbox host)
curl -X PUT 'https://api.sandbox.zenpay.com.au/v2/customers/{customerReference}/profile' \
-H 'Api-Key: <your API key>' \
-u '<username>:<password>' \
-H 'Content-Type: application/json' \
-d '{
"abn": "51824753556",
"address": {
"address1": "1 Test Street",
"address2": "Unit 2",
"country": "AU",
"postcode": "2000",
"state": "NSW",
"suburb": "Sydney"
},
"companyName": "Test Company Pty Ltd",
"dateOfBirth": "1999-05-08T14:21:21",
"email": "test@zenpay.com.au",
"enableBPayOption": false,
"fax": "0299999998",
"firstName": "Test",
"lastName": "Customer",
"merchantStaffMember": "Example Operator",
"mobile": "0400000000",
"phone": "0299999999",
"title": "Mr"
}'Get customer status#
View this endpoint in the original docs
Returns the status for the specified customer.
Authentication: Api-Key + BasicAuth
Parameters
| Name | In | Type | Description |
|---|---|---|---|
customerReference required | path | string | The merchant's unique reference for the customer. |
Responses
200 Found the customer status.
application/json · string
Example: Customer status
Shows that this endpoint returns a scalar rather than a customer object.
"Open"400 Invalid customer reference.
application/json · object
404 Unable to find the customer by the reference provided.
application/json · object
Example request (cURL, sandbox host)
curl -X GET 'https://api.sandbox.zenpay.com.au/v2/customers/{customerReference}/status' \
-H 'Api-Key: <your API key>' \
-u '<username>:<password>' \
-H 'Accept: application/json'Update customer status#
View this endpoint in the original docs
Updates the status for the specified customer.
Authentication: Api-Key + BasicAuth
Parameters
| Name | In | Type | Description |
|---|---|---|---|
customerReference required | path | string | The merchant's unique reference for the customer. |
Request body
Status details required to update the customer status.
Content types: application/json, application/x-www-form-urlencoded · required
Schema: CustomerStatusRequest
| Field | Type | Description |
|---|---|---|
closeCustomer | boolean | True to close, false to open. |
reason | string | Reason if the customer is closed. |
Example: Customer closed
Shows the close request and reason. Do not infer a working reopen flow from this capture.
{
"closeCustomer": true,
"reason": "example capture"
}Responses
204 Updated the customer status.
400 Invalid input detail.
application/json · object
403 Merchant is forbidden to perform this operation.
application/json · object
500 Something went wrong. Customer payment option may or may not be updated.
application/json · object
Example request (cURL, sandbox host)
curl -X PUT 'https://api.sandbox.zenpay.com.au/v2/customers/{customerReference}/status' \
-H 'Api-Key: <your API key>' \
-u '<username>:<password>' \
-H 'Content-Type: application/json' \
-d '{
"closeCustomer": true,
"reason": "example capture"
}'