Create a Mandate Using a Customer ID
This section describes how to set up a mandate using a customer ID to verify the customer.
During checkout, the customer enters their email address or phone number as an ID. The customer ID is used to verify the payment and is passed through the sale request in the bank.accountAlias.id field. Include the grand total in the request by using the orderInformation.amountDetails.totalAmount field.
When you receive a successful response, save the sale request ID in the id response field to perform a follow-on check status request or cancellation request.
Endpoints
POST /pts/v2/billing-agreements
POST /pts/v2/billing-agreements
See Endpoints for the full per-brand Server URLs reference.
Example
{ "clientReferenceInformation": { "code": "001" }, "processingInformation": { "actionList": [ "BILLING_AGREEMENT_CREATE" ] }, "orderInformation": { "invoiceDetails": { "productDescription": "Mandate" }, "billTo": { "firstName": "John", "lastName": "Doe" }, "amountDetails": { "totalAmount": "120.00", "currency": "AUD" } }, "deviceInformation": { "ipAddress": "192.168.1.1" }, "paymentInformation": { "paymentType": { "name": "bankTransfer", "method": { "name": "payToPayByBank" } }, "bank": { "accountAlias": { "id": "+61-88888888", "type": "phone" } } }, "agreementInformation": { "type": "oneoff", "frequency": "monthly", "occurencesPerPeriod": 1, "startDate": "20261212", "endDate": "20271212" }}{ "processorInformation": { "responseCode": "00001", "transactionId": "56b5161fe0634fed9588f5944940139a" }, "clientReferenceInformation": { "code": "001" }, "message": "Request was processed successfully.", "agreementInformation": { "dateCreated": "20260113", "id": "KPQ46J6O532S" }, "status": "PENDING", "id": "7683246630756556804807", "submitTimeUtc": "2026-01-13T17:17:43Z"}| Field | Type | Description |
|---|---|---|
agreementInformation.endDate | ||
agreementInformation.frequency | Set to annual, monthly, quarterly, weekly, daily, adhoc, or fortnightly. | |
agreementInformation.occurencesPerPeriod | ||
agreementInformation.startDate | ||
agreementInformation.type | Set to recurring, oneoff, split, or usage. | |
clientReferenceInformation.code | ||
deviceInformation.ipAddress | ||
orderInformation.amountDetails.currency | Set to AUD. | |
orderInformation.amountDetails.totalAmount | ||
orderInformation.billTo.firstName | ||
orderInformation.billTo.lastName | ||
orderInformation.invoiceDetails.productDescription | ||
paymentInformation.bank.accountAlias.id | ||
paymentInformation.bank.accountAlias.type | Set to email, phone, accountNumber, businessNumber, or organizationId. | |
paymentInformation.paymentType.method.name | Set to payToPayByBank. | |
paymentInformation.paymentType.name | Set to bankTransfer. | |
processingInformation.actionList[0] | Set to BILLING_AGREEMENT_CREATE. |
If needed, include any of these optional fields to create a mandate:
Optional Fields
| Field | Type | Description |
|---|---|---|
merchantInformation.cancelUrl | ||
merchantInformation.failureUrl | ||
merchantInformation.successUrl | ||
orderInformation.billTo.address1 | ||
orderInformation.billTo.address2 | ||
orderInformation.billTo.administrativeArea | ||
orderInformation.billTo.country | ||
orderInformation.billTo.county | ||
orderInformation.billTo.district | ||
orderInformation.billTo.email | ||
orderInformation.billTo.locality | ||
orderInformation.billTo.phoneNumber | ||
orderInformation.billTo.postalCode | ||
orderInformation.billTo.title |
Response Fields
Save the request ID in the id field from the sale response. Include the request ID in a check status request to confirm that the payment is complete.
"id": "7683246630756556804807"When the sale amount is processed, sends a SETTLED webhook notification. See Webhook Subscriptions. If you do not receive a webhook notification, send a check status request. See Check Status.
Thanks for your feedback!
Last published: September 29, 2026