{
	"components": {
		"schemas": {
			"AccountProxy": {
				"properties": {
					"label": {
						"maxLength": 80,
						"type": "string",
						"description": "Label for the account."
					},
					"proxy": {
						"maxLength": 40,
						"type": "string",
						"description": "Card or bank account proxy. Proxy is generated using the Payments Plugin for bank account and card or /cardProxies api for card."
					}
				},
				"required": [
					"proxy"
				],
				"type": "object",
				"title": "Payment Account Reference",
				"description": "Payment account proxy reference. Recommended over CardProxy."
			},
			"AdditionalReference": {
				"properties": {
					"customerReference": {
						"type": "string",
						"description": "Customer reference linked to this additional reference."
					},
					"fullName": {
						"type": "string",
						"description": "Full name associated with the additional reference."
					}
				},
				"type": "object",
				"title": "Additional Reference",
				"description": "Additional customer reference entry containing a full name and customer reference."
			},
			"AmbiguousResult": {
				"properties": {},
				"type": "object",
				"title": "Ambiguous Result",
				"description": "Response returned when a duplicate is detected (HTTP 300). Indicates the resource already exists."
			},
			"ApiBatchPayEntry": {
				"properties": {
					"additionalReference": {
						"type": "string",
						"description": "Additional reference. (Conditional)."
					},
					"baseAmount": {
						"format": "double",
						"type": "number",
						"description": "Base amount of the payment is done."
					},
					"cardCategory": {
						"type": "string",
						"description": "Card category."
					},
					"cardTypeString": {
						"type": "string",
						"description": "Card scheme the payment was processed on, as text. For example: Visa."
					},
					"cardTypeValue": {
						"format": "int32",
						"type": "integer",
						"description": "Card scheme the payment was processed on, as its numeric code. Pairs with `cardTypeString`."
					},
					"companyName": {
						"type": "string",
						"description": "Customer company name."
					},
					"customerFee": {
						"format": "double",
						"type": "number",
						"description": "Fee charged on customer card."
					},
					"customerName": {
						"type": "string",
						"description": "Customer who paid the payment."
					},
					"customerReference": {
						"type": "string",
						"description": "Reference of the Customer who paid the payment."
					},
					"entryStatus": {
						"type": "string",
						"description": "One of:\n\n- `BatchPay Entry Pending` — This Entry is waiting to be processed\n- `BatchPay Entry Processed` — Payment for this Entry has been successfully processed\n- `Customer not found` — This Customer is not found in system. Create the Customer using POST - /v2/customers API\n- `Duplicate entry` — There is a duplicate entry in the batch. Remove duplicate entry\n- `Multiple customers found` — The System has detected that there is Multiple Customers that have the same Reference setup. Check Customers and update reference\n- `Customer status is not open` — Corresponding customer for batchpay entry is not in open state. Update Customer Status to Open\n- `Payment end date has expired` — Payment End Date for BatchPay Entry has expired. Update Date to a future date\n- `Payment option is not BatchPay` — Customer's Payment Option needs to be BatchPay in order to be processed. Update Customer Payment Option to BatchPay\n- `Customer status does not allow payment processing` — Customer Status is invalid. Customer Status must be Open to process payments. Check Status of Customer\n- `Invalid payment amount` — Payment amount is not valid. Check amount and resubmit\n- `Error during payment processing` — There was an error while processing payment. Please contact Zenith Payments\n- `Technical Error` — This Entry has encountered an unhandled error. Please contact Zenith Payments\n- `Cancelled` — Batch is cancelled\n- `DuplicatePaymentUniqueId` — Duplicate payment unique id"
					},
					"failureCode": {
						"type": "string",
						"description": "Failure code if the payment failed. Please refer: http://tinyurl.com/y6lkmpsv for more details. (Conditional)."
					},
					"failureReason": {
						"type": "string",
						"description": "Failure reason if the payment failed. (Conditional)."
					},
					"isPaymentRecalled": {
						"type": "boolean",
						"description": "Payment recalled."
					},
					"isPaymentRefunded": {
						"type": "boolean",
						"description": "Payment refunded."
					},
					"isPaymentRetryScheduled": {
						"type": "boolean",
						"description": "Whether a retry payment is pending. Based on Program/Merchant settings, a failed payment will be retried."
					},
					"lastDigits": {
						"type": "string",
						"description": "Payment Card No."
					},
					"merchantCode": {
						"type": "string",
						"description": "Merchant code."
					},
					"merchantFee": {
						"format": "double",
						"type": "number",
						"description": "Fee charged on Merchant."
					},
					"merchantName": {
						"type": "string",
						"description": "Merchant trading name."
					},
					"merchantUniquePaymentId": {
						"type": "string",
						"description": "Unique payment id provided by the merchant. (Conditional)."
					},
					"merchantWithheldAmount": {
						"format": "double",
						"type": "number",
						"description": "Funds to Merchant."
					},
					"paymentAmount": {
						"format": "double",
						"type": "number",
						"description": "Total payment amount including the fees."
					},
					"paymentCard": {
						"type": "string",
						"description": "Payment card used."
					},
					"paymentDate": {
						"format": "date-time",
						"type": "string",
						"description": "Payment date."
					},
					"paymentMethod": {
						"type": "string",
						"description": "Method was used to process the transaction. ie: Bank Account, Credit Card, etc."
					},
					"paymentReference": {
						"type": "string",
						"description": "Unique Payment Reference for the payment done."
					},
					"paymentResource": {
						"type": "string",
						"description": "Link to the actual payment."
					},
					"paymentStatus": {
						"type": "string",
						"description": "One of:\n\n- `Pending` — This Payment is waiting to be processed\n- `Error` — This Payment has encountered an Error\n- `Submitted` — This Payment was successfully submitted\n- `Successful` — This Payment was successful\n- `Successful (Recalled)` — This Payment was Recalled. The System has detected that this Entry potentially has been submitted in another Batch\n- `Successful (Refunded)` — This Payment was Refunded\n- `Successful (Refunded) (Recalled)` — This Payment was Refunded and Recalled\n- `Failed` — This Payment has Failed\n- `Cancelled` — This Payment was Cancelled\n- `Suppressed` — This Payment was Suppressed\n- `InProgress` — This Payment is being processed"
					},
					"processedAmount": {
						"format": "double",
						"type": "number",
						"description": "Total payment amount including the fees."
					},
					"processingDate": {
						"format": "date-time",
						"type": "string",
						"description": "Processing Date for the payment. Date Format: yyyy-MM-ddTHH:mm:ssZ, TimeZone: AEST."
					},
					"processorReference": {
						"type": "string",
						"description": "Processor reference for the payment done."
					},
					"recalledOn": {
						"format": "date-time",
						"type": "string",
						"description": "Recalled date. Date Format: yyyy-MM-ddTHH:mm:ssZ, TimeZone: AEST (Conditional)."
					},
					"recalledReason": {
						"type": "string",
						"description": "Reason. (Conditional)."
					},
					"refundedOn": {
						"format": "date-time",
						"type": "string",
						"description": "Refunded date. Date Format: yyyy-MM-ddTHH:mm:ssZ, TimeZone: AEST (Conditional)."
					},
					"refundedReason": {
						"type": "string",
						"description": "Reason. (Conditional)."
					},
					"retryPaymentReference": {
						"type": "string",
						"description": "Retry payment reference. (Conditional)."
					},
					"retryPaymentResource": {
						"type": "string",
						"description": "Link to the retry payment."
					},
					"retryPaymentStatus": {
						"type": "string",
						"description": "Retry payment status."
					},
					"retryScheduledOn": {
						"format": "date-time",
						"type": "string",
						"description": "Retry payment scheduled date. Date Format: yyyy-MM-ddTHH:mm:ssZ, TimeZone: AEST (Conditional)."
					},
					"settlementDate": {
						"format": "date-time",
						"type": "string",
						"description": "Settlement Date for the payment. This is a calculated date and may change until the payment been settled. Date Format: yyyy-MM-ddTHH:mm:ssZ, TimeZone: AEST."
					},
					"settlementReference": {
						"type": "string",
						"description": "Reference for the settlement this entry was paid out in. Empty until the payment settles."
					},
					"subCardTypeString": {
						"type": "string",
						"description": "Card sub-type where the scheme has one, as text. Empty when the scheme has none."
					},
					"subCardTypeValue": {
						"format": "int32",
						"type": "integer",
						"description": "Card sub-type as its numeric code. Pairs with `subCardTypeString`."
					}
				},
				"type": "object",
				"title": "Batch Payment Entry",
				"description": "Individual entry within a batch payment including amount, status, and reference."
			},
			"ApiBatchPaySummary": {
				"properties": {
					"merchantCode": {
						"type": "string",
						"description": "Merchant code."
					},
					"merchantName": {
						"type": "string",
						"description": "Merchant name (Trading name)."
					},
					"merchantUniqueBatchId": {
						"type": "string",
						"description": "Unique batch id provided by the merchant."
					},
					"processingDate": {
						"format": "date-time",
						"type": "string",
						"description": "Batch processed date."
					},
					"status": {
						"type": "string",
						"description": "One of:\n\n- `File Uploaded` — Batch file is uploaded and pending file processing\n- `Pending` — Payment is not processed yet\n- `Validation in Progress` — Batch validation is in progress\n- `On Hold - Potential Duplicate` — Batch is on hold awaiting manual activation\n- `Ready for Payment Processing` — Batch duplicate validation is completed and now it is ready for Payment processing\n- `On Hold Approved`\n- `Payment Processing in Progress` — Batch payment processing in progress\n- `Completed` — Batch payment processing completed\n- `Cancelled` — Batch payment is cancelled\n- `BatchPay Not Allowed` — Error in processing - Merchant status doesn't allow to process batch payment\n- `Merchant Not Found` — Error in file/batch processing merchant code in file not found in database\n- `Technical Error` — Any technical error like batch entry has been added twice"
					},
					"statusRemarks": {
						"type": "string",
						"description": "Status remarks."
					},
					"submittedDate": {
						"format": "date-time",
						"type": "string",
						"description": "Batch submitted date."
					},
					"totalAmount": {
						"format": "double",
						"type": "number",
						"description": "Total batch payment amount."
					},
					"totalEntries": {
						"format": "int32",
						"type": "integer",
						"description": "Total batch items in the batch."
					}
				},
				"type": "object",
				"title": "Batch Payment Summary",
				"description": "Batch payment summary including status, totals, and processing details."
			},
			"ApiRequestPayEntry": {
				"properties": {
					"additionalReference": {
						"type": "string",
						"description": "Additional reference for the payment entry."
					},
					"baseAmount": {
						"format": "double",
						"type": "number",
						"description": "Base payment amount before fees."
					},
					"companyName": {
						"type": "string",
						"description": "Company name associated with this payment entry."
					},
					"customerFee": {
						"format": "double",
						"type": "number",
						"description": "Fee charged to the customer."
					},
					"customerName": {
						"type": "string",
						"description": "Name of the customer for this payment entry."
					},
					"customerReference": {
						"type": "string",
						"description": "Reference identifier for the customer in this payment entry."
					},
					"email": {
						"type": "string",
						"description": "Email address for payment notifications."
					},
					"entryStatus": {
						"type": "string",
						"description": "Current status of this payment entry."
					},
					"failureCode": {
						"type": "string",
						"description": "Error code for the payment failure."
					},
					"failureReason": {
						"type": "string",
						"description": "Reason the payment failed."
					},
					"isPaymentRecalled": {
						"type": "boolean",
						"description": "Whether the payment has been recalled."
					},
					"isPaymentRefunded": {
						"type": "boolean",
						"description": "Whether the payment has been refunded."
					},
					"isPaymentRetryScheduled": {
						"type": "boolean",
						"description": "Whether a payment retry has been scheduled."
					},
					"lastDigits": {
						"type": "string",
						"description": "Last digits of the payment card used."
					},
					"merchantCode": {
						"type": "string",
						"description": "Merchant code."
					},
					"merchantFee": {
						"format": "double",
						"type": "number",
						"description": "Fee charged to the merchant."
					},
					"merchantName": {
						"type": "string",
						"description": "Merchant trading name."
					},
					"merchantWithheldAmount": {
						"format": "double",
						"type": "number",
						"description": "Amount withheld from the merchant."
					},
					"mobile": {
						"type": "string",
						"description": "Mobile number for payment notifications."
					},
					"oneOffPaymentReference": {
						"type": "string",
						"description": "Reference for a one-off payment."
					},
					"paymentAmount": {
						"format": "double",
						"type": "number",
						"description": "Amount to be paid in this entry."
					},
					"paymentCard": {
						"type": "string",
						"description": "Card details associated with the payment."
					},
					"paymentDate": {
						"format": "date-time",
						"type": "string",
						"description": "Scheduled date for the payment."
					},
					"paymentMethod": {
						"type": "string",
						"description": "Method used for payment (e.g. card, direct debit)."
					},
					"paymentReference": {
						"type": "string",
						"description": "Unique reference for the payment transaction."
					},
					"paymentResource": {
						"type": "string",
						"description": "Resource identifier for the payment."
					},
					"paymentStatus": {
						"type": "string",
						"description": "Payment processing status."
					},
					"processedAmount": {
						"format": "double",
						"type": "number",
						"description": "Total amount processed including fees."
					},
					"processingDate": {
						"format": "date-time",
						"type": "string",
						"description": "Date the payment was processed."
					},
					"processorReference": {
						"type": "string",
						"description": "Reference assigned by the payment processor."
					},
					"recalledOn": {
						"format": "date-time",
						"type": "string",
						"description": "Date and time the payment was recalled."
					},
					"recalledReason": {
						"type": "string",
						"description": "Reason the payment was recalled."
					},
					"refundedOn": {
						"format": "date-time",
						"type": "string",
						"description": "Date and time the payment was refunded."
					},
					"refundedReason": {
						"type": "string",
						"description": "Reason the payment was refunded."
					},
					"requestReference": {
						"type": "string",
						"description": "Reference to the parent request-to-pay batch."
					},
					"retryPaymentReference": {
						"type": "string",
						"description": "Reference for the retry payment transaction."
					},
					"retryPaymentResource": {
						"type": "string",
						"description": "Resource identifier for the retry payment."
					},
					"retryPaymentStatus": {
						"type": "string",
						"description": "Status of the retry payment."
					},
					"retryScheduledOn": {
						"format": "date-time",
						"type": "string",
						"description": "Date and time the retry is scheduled for."
					},
					"settlementDate": {
						"format": "date-time",
						"type": "string",
						"description": "Date the payment was settled."
					}
				},
				"type": "object",
				"title": "Request Pay Entry",
				"description": "Individual entry within a request-to-pay batch including amount and recipient details."
			},
			"ApiRequestPaySummary": {
				"properties": {
					"merchantCode": {
						"type": "string",
						"description": "Merchant code."
					},
					"merchantName": {
						"type": "string",
						"description": "Merchant trading name."
					},
					"merchantUniqueRequestBatchId": {
						"type": "string",
						"description": "Merchant-assigned unique identifier for the request-to-pay batch."
					},
					"processingDate": {
						"format": "date-time",
						"type": "string",
						"description": "Date and time the request-to-pay was processed."
					},
					"status": {
						"type": "string",
						"description": "Current processing status of the request-to-pay."
					},
					"statusRemarks": {
						"type": "string",
						"description": "Additional remarks about the request-to-pay processing status."
					},
					"submittedDate": {
						"format": "date-time",
						"type": "string",
						"description": "Date and time the request-to-pay was submitted."
					},
					"totalAmount": {
						"format": "double",
						"type": "number",
						"description": "Total monetary amount of all entries in the request-to-pay."
					},
					"totalEntries": {
						"format": "int32",
						"type": "integer",
						"description": "Total number of entries in the request-to-pay."
					}
				},
				"type": "object",
				"title": "Request Pay Summary",
				"description": "Request-to-pay summary including status, totals, and processing details."
			},
			"BPayDetail": {
				"properties": {
					"billerCode": {
						"type": "string",
						"description": "BPAY Biller Code."
					},
					"billerReference": {
						"type": "string",
						"description": "BPAY Biller Reference."
					}
				},
				"type": "object",
				"title": "BPAY Detail",
				"description": "BPAY details including biller code and biller reference."
			},
			"BankAccount": {
				"properties": {
					"accountName": {
						"maxLength": 32,
						"pattern": "[\\u0020-\\u007E]*",
						"type": "string",
						"description": "Account Holder name."
					},
					"accountNumber": {
						"pattern": "^([0-9]{4,10})",
						"type": "string",
						"description": "Bank Account number."
					},
					"bankBranch": {
						"maxLength": 50,
						"type": "string",
						"description": "Bank branch."
					},
					"bankName": {
						"maxLength": 50,
						"type": "string",
						"description": "Bank Name."
					},
					"bsb": {
						"maxLength": 6,
						"type": "string",
						"description": "BSB Number. Format: 000000."
					},
					"isPayTo": {
						"type": "boolean",
						"description": "Bank account is PayTo if true."
					},
					"label": {
						"maxLength": 50,
						"type": "string",
						"description": "Label for the account."
					},
					"payToStatus": {
						"enum": [
							0,
							1,
							2,
							3,
							4,
							5,
							6,
							7,
							8,
							9
						],
						"format": "int32",
						"type": "integer",
						"description": "If PayTo account, this field will let you know the status of the Mandate."
					}
				},
				"required": [
					"bsb",
					"accountNumber",
					"accountName"
				],
				"type": "object",
				"title": "Bank Account Details",
				"description": "Bank account details including BSB, account number, and account name."
			},
			"BatchPaymentDataRecord": {
				"properties": {
					"customerReference": {
						"type": "string",
						"description": "Customer reference in individual payment batch entry."
					},
					"merchantUniquePaymentId": {
						"maxLength": 50,
						"type": "string",
						"description": "Unique payment id provided by the merchant. Can be used when Proxy payment is performed. (Optional)."
					},
					"paymentAccountProxy": {
						"maxLength": 40,
						"type": "string",
						"description": "Pass an alternative Proxy if required (Optional). If no Proxy is passed, the nominated card / bank account is used."
					},
					"paymentAmount": {
						"format": "double",
						"maximum": 1.7976931348623157e+308,
						"minimum": 0.01,
						"type": "number",
						"description": "Payment amount in individual payment batch entry."
					}
				},
				"required": [
					"customerReference",
					"paymentAmount"
				],
				"type": "object",
				"title": "Batch Payment Entry Record",
				"description": "Individual batch payment entry submitted by the client. Supports JSON or XML format."
			},
			"BatchPaymentRequest": {
				"properties": {
					"batchPaymentEntries": {
						"items": {
							"$ref": "#/components/schemas/BatchPaymentDataRecord"
						},
						"type": "array",
						"description": "Collection of BatchPayment entry."
					},
					"merchantUniqueBatchId": {
						"maxLength": 50,
						"type": "string",
						"description": "Unique batch id provided by the merchant."
					}
				},
				"required": [
					"batchPaymentEntries"
				],
				"type": "object",
				"title": "Batch Payment Request",
				"description": "Container for batch payment entries. Root element containing a collection of BatchPaymentEntry."
			},
			"BatchPaymentResponse": {
				"properties": {
					"batchPaymentId": {
						"format": "int32",
						"type": "integer",
						"description": "Id of BatchPayment."
					},
					"merchantCode": {
						"type": "string",
						"description": "Merchant code."
					},
					"merchantName": {
						"type": "string",
						"description": "Merchant trading name."
					},
					"merchantUniqueBatchId": {
						"type": "string",
						"description": "Unique batch id provided by the merchant."
					},
					"warningMessages": {
						"type": "string",
						"description": "WarningMessages after processing batch."
					}
				},
				"type": "object",
				"title": "Batch Payment Response",
				"description": "Batch payment response returned after submission."
			},
			"CaptureCardRequest": {
				"properties": {
					"additionalReference": {
						"type": "string",
						"description": "Additional reference. This field is returned in reconciliation reports."
					},
					"merchantUniquePaymentId": {
						"maxLength": 50,
						"type": "string",
						"description": "Unique payment id provided by the merchant."
					},
					"oneOffPaymentReference": {
						"type": "string",
						"description": "One Off Payment reference. This field is returned in reconciliation reports."
					},
					"paymentAmount": {
						"format": "double",
						"type": "number",
						"description": "Amount to capture."
					},
					"sendPaymentConfirmation": {
						"type": "boolean",
						"description": "Flag to send the customer invoice."
					}
				},
				"required": [
					"paymentAmount"
				],
				"type": "object",
				"title": "Preauthorization Capture Request",
				"description": "Capture request for a preauthorization including payment amount and optional references."
			},
			"CaptureCardResponse": {
				"properties": {
					"abn": {
						"type": "string",
						"description": "ABN for the transaction."
					},
					"accountOrCardNo": {
						"type": "string",
						"description": "Payment Card No."
					},
					"additionalReference": {
						"type": "string",
						"description": "Additional reference. (Conditional)."
					},
					"baseAmount": {
						"format": "double",
						"type": "number",
						"description": "Base amount of the payment is done."
					},
					"cardCategory": {
						"type": "string",
						"description": "Card category."
					},
					"chargeBackedOn": {
						"format": "date-time",
						"type": "string",
						"description": "Recalled date. Date Format: yyyy-MM-ddTHH:mm:ss, TimeZone: AEST (Conditional)."
					},
					"chargeBackedReason": {
						"type": "string",
						"description": "Reason. (Conditional)."
					},
					"chargeBackedTransactionReference": {
						"type": "string",
						"description": "ChargedBackedTransactionReference : If a charge transaction is charged back then this is transaction reference of charged back transaction.(Conditional)."
					},
					"customerFee": {
						"format": "double",
						"type": "number",
						"description": "Fee charged on customer card."
					},
					"customerName": {
						"type": "string",
						"description": "Customer who paid the payment."
					},
					"customerReference": {
						"type": "string",
						"description": "Reference of the Customer who paid the payment."
					},
					"failureCode": {
						"type": "string",
						"description": "Failure code if the payment failed. Please refer: http://tinyurl.com/y6lkmpsv for more details. (Conditional)."
					},
					"failureReason": {
						"type": "string",
						"description": "Failure reason if the payment failed. (Conditional)."
					},
					"fundsToMerchant": {
						"format": "double",
						"type": "number",
						"description": "Funds to Merchant."
					},
					"isPaymentChargeBacked": {
						"type": "boolean",
						"description": "Payment Charge Backed."
					},
					"isPaymentRecalled": {
						"type": "boolean",
						"description": "Payment recalled."
					},
					"isPaymentRefunded": {
						"type": "boolean",
						"description": "Payment refunded."
					},
					"isPaymentRetryScheduled": {
						"type": "boolean",
						"description": "Whether a retry payment is pending. Based on Program/Merchant settings, a failed payment will be retried."
					},
					"isPaymentSettledToMerchant": {
						"type": "boolean",
						"description": "Whether the payment has been settled to the merchant."
					},
					"merchantCode": {
						"type": "string",
						"description": "Merchant code."
					},
					"merchantFee": {
						"format": "double",
						"type": "number",
						"description": "Fee charged on Merchant."
					},
					"merchantName": {
						"type": "string",
						"description": "Merchant trading name."
					},
					"merchantUniquePaymentId": {
						"type": "string",
						"description": "Unique payment id provided by the merchant. (Conditional)."
					},
					"oneOffPaymentReference": {
						"type": "string",
						"description": "One Off Payment Reference."
					},
					"originalTransactionReference": {
						"type": "string",
						"description": "OriginalTransactionReference : For a Recall / Refund transaction, it is the transaction reference of original transaction."
					},
					"paymentAccount": {
						"type": "string",
						"description": "Payment Account by which the payment is done."
					},
					"paymentAmount": {
						"format": "double",
						"type": "number",
						"description": "Total payment amount including the fees."
					},
					"paymentCard": {
						"type": "string",
						"description": "Payment card used."
					},
					"paymentReference": {
						"type": "string",
						"description": "Unique Payment Reference for the payment done."
					},
					"paymentSourceDisplay": {
						"type": "string",
						"description": "Payment source of transaction."
					},
					"paymentStatus": {
						"type": "string",
						"description": "Current Status of the payment. Expected Statuses\n\n1. Pending\tThis Payment is waiting be to processed\n2. Error - This Payment has encountered an Error\n3. Submitted - This Payment was successfully submitted\n4. Successful - This Payment was successful\n5. Successful(Recalled) - This Payment was Recalled\n6. Successful(Refunded) - This Payment was Refunded\n7. Successful (Refunded) (Recalled) - This Payment was Refunded and Recalled\n8. Failed - This Payment has Failed\n9. Cancelled - This Payment was Cancelled\n10. Suppressed - This Payment was Suppressed\n11. InProgress - This Payment is being processed."
					},
					"preauthExpiryAt": {
						"format": "date-time",
						"type": "string",
						"description": "Preauth expiry in minutes."
					},
					"processingDate": {
						"format": "date-time",
						"type": "string",
						"description": "Processing Date for the payment. Date Format: yyyy-MM-ddTHH:mm:ss, TimeZone: AEST."
					},
					"processorReference": {
						"type": "string",
						"description": "Processor reference for the payment done."
					},
					"recalledOn": {
						"format": "date-time",
						"type": "string",
						"description": "Recalled date. Date Format: yyyy-MM-ddTHH:mm:ss, TimeZone: AEST (Conditional)."
					},
					"recalledReason": {
						"type": "string",
						"description": "Reason. (Conditional)."
					},
					"recalledTransactionReference": {
						"type": "string",
						"description": "RecalledTransactionReference : If a charge transaction is recalled then this is transaction reference of recall transaction.(Conditional)."
					},
					"refundedOn": {
						"format": "date-time",
						"type": "string",
						"description": "Refunded date. Date Format: yyyy-MM-ddTHH:mm:ss, TimeZone: AEST (Conditional)."
					},
					"refundedReason": {
						"type": "string",
						"description": "Reason. (Conditional)."
					},
					"refundedTransactionReference": {
						"type": "string",
						"description": "RefundedTransactionReference : If a charge transaction is refunded then this is transaction reference of refunded transaction.(Conditional)."
					},
					"remainingPreauthAmount": {
						"format": "double",
						"type": "number",
						"description": "Remaining preauth amount after one or more captures."
					},
					"retryPaymentReference": {
						"type": "string",
						"description": "Retry payment reference. (Conditional)."
					},
					"retryScheduledOn": {
						"format": "date-time",
						"type": "string",
						"description": "Retry payment scheduled date. Date Format: yyyy-MM-ddTHH:mm:ss, TimeZone: AEST (Conditional)."
					},
					"settlementDate": {
						"format": "date-time",
						"type": "string",
						"description": "Settlement Date for the payment. This is a calculated date and may change until the payment been settled. Date Format: yyyy-MM-ddTHH:mm:ss, TimeZone: AEST."
					},
					"transactionType": {
						"enum": [
							1,
							2,
							3,
							4,
							5,
							6,
							7,
							8,
							9,
							10
						],
						"format": "int32",
						"type": "integer",
						"x-enumDescriptions": {
							"1": "Charge",
							"2": "InvoicePayment",
							"3": "Refund",
							"4": "Chargeback",
							"5": "Recall",
							"6": "FixedTermSettlement",
							"7": "SponsorInvoicePayment",
							"8": "MerchantSettlementAdjustmentPayment",
							"9": "Preauthorization",
							"10": "Credit"
						},
						"description": "Transaction type numeric code."
					},
					"transactionTypeDisplay": {
						"type": "string",
						"description": "Transaction Type. Possible values:\n\n1. Charge\n2. Invoice\n3. Refund\n4. Chargeback\n5. Recall\n6. Fixed Term Settlement."
					}
				},
				"type": "object",
				"title": "Preauthorization Capture Result",
				"description": "Capture preauthorization response including status, amounts, and transaction details. Fields marked as conditional are only returned under certain conditions."
			},
			"CardProxyRequest": {
				"properties": {
					"cardHolderName": {
						"type": "string",
						"description": "Card holder name."
					},
					"cardNumber": {
						"type": "string",
						"description": "Credit/Debit Card number."
					},
					"customerUniqueId": {
						"type": "string",
						"description": "Customer unique identifier."
					},
					"expiry": {
						"examples": [
							"MM/yy"
						],
						"type": "string",
						"description": "Card expiry in MM/yy format."
					},
					"paymentAmount": {
						"format": "double",
						"type": "number",
						"description": "Amount is optional. If provided, the applicable pricing will be returned in the result."
					},
					"threeDSecureData": {
						"$ref": "#/components/schemas/ThreeDSecureData",
						"description": "Conditional. Pass the values if 3DSecure is required."
					}
				},
				"required": [
					"cardNumber",
					"expiry"
				],
				"type": "object",
				"title": "Card Tokenization Request",
				"description": "Credit or debit card details for card proxy creation."
			},
			"CardProxyResponse": {
				"properties": {
					"cardNumber": {
						"type": "string",
						"description": "Obfuscated card number."
					},
					"cardProxy": {
						"type": "string",
						"description": "Processor token. Used to make payment next time."
					},
					"cardType": {
						"type": "string",
						"description": "Card type (Visa, MasterCard etc.)."
					},
					"expiry": {
						"type": "string",
						"description": "Card expiry in MM/yy format."
					},
					"failureCode": {
						"type": "string",
						"description": "Failure code in case the authorisation fails."
					},
					"failureReason": {
						"type": "string",
						"description": "Failure reason in case the authorisation fails."
					},
					"pricing": {
						"$ref": "#/components/schemas/Pricing",
						"description": "Applicable pricing based on provided card and payment details."
					},
					"redirectUrl": {
						"type": "string",
						"description": "3DSecure redirect url to complete the 3DSecure challege if required by the scheme."
					},
					"status": {
						"readOnly": true,
						"type": "string",
						"description": "Proxy status Expected Statuses\n\n1. Pending\tThis proxy is waiting be to processed\n2. Successful - This proxy was successful\n3. Failed - This proxy has Failed\n4. PendingThreeDS - This proxy needs to complete 3DSecure process using the RedirectUrl."
					}
				},
				"type": "object",
				"title": "Card Tokenization Response",
				"description": "Card authorisation response returned after card proxy creation."
			},
			"CreditCard": {
				"properties": {
					"cardNumber": {
						"type": "string",
						"description": "Card number."
					},
					"cardType": {
						"type": "string",
						"description": "Card Type."
					},
					"expiry": {
						"type": "string",
						"description": "Expiry."
					},
					"label": {
						"type": "string",
						"description": "Label for the card."
					}
				},
				"type": "object",
				"title": "Credit Card",
				"description": "Credit card details including card number, type, expiry, and label."
			},
			"CreditCardProxy": {
				"properties": {
					"cardProxy": {
						"maxLength": 40,
						"type": "string",
						"description": "Card proxy generated by the /cardproxies api."
					},
					"label": {
						"maxLength": 80,
						"type": "string",
						"description": "Label for the card."
					}
				},
				"required": [
					"cardProxy"
				],
				"type": "object",
				"title": "Credit Card Proxy",
				"description": "Credit card proxy reference with optional label."
			},
			"CreditRequestResponse": {
				"properties": {
					"cancelReason": {
						"type": "string",
						"description": "Reason the credit request was cancelled."
					},
					"creditAmount": {
						"format": "double",
						"type": "number",
						"description": "Credit request amount."
					},
					"creditReference": {
						"format": "int32",
						"readOnly": true,
						"type": "integer",
						"description": "Reference for the credit transaction."
					},
					"merchantCode": {
						"type": "string",
						"description": "Merchant code."
					},
					"merchantName": {
						"type": "string",
						"description": "Merchant trading name."
					},
					"rejectReason": {
						"type": "string",
						"description": "Reason the credit request was rejected."
					},
					"requestReason": {
						"type": "string",
						"description": "Reason for the credit request."
					},
					"requestStatus": {
						"format": "int32",
						"type": "integer",
						"description": "Status code of the credit request."
					},
					"requestStatusString": {
						"type": "string",
						"description": "Status label for the credit request."
					},
					"requestUniqueId": {
						"type": "string",
						"description": "Unique identifier for the credit request."
					},
					"status": {
						"enum": [
							0,
							1,
							2,
							3,
							4,
							5,
							6
						],
						"format": "int32",
						"readOnly": true,
						"type": "integer",
						"x-enumDescriptions": {
							"0": "Forbidden",
							"1": "CountLimitReached",
							"2": "AmountLimitReached",
							"3": "InvalidPaymentProxy",
							"4": "DuplicateRequest",
							"5": "NotEligibleForCredit",
							"6": "Success"
						},
						"description": "Status code of the credit request."
					}
				},
				"type": "object",
				"title": "Credit Request Response",
				"description": "Credit request details including status, credit reference, amount, and merchant information."
			},
			"CreditsRequest": {
				"properties": {
					"creditAmount": {
						"format": "double",
						"type": "number",
						"description": "Payment amount."
					},
					"customerName": {
						"maxLength": 100,
						"type": "string",
						"description": "Customer name."
					},
					"customerReference": {
						"maxLength": 20,
						"type": "string",
						"description": "Customer reference."
					},
					"paymentAccountProxy": {
						"maxLength": 50,
						"type": "string",
						"description": "Payment Account Proxy."
					},
					"reason": {
						"maxLength": 50,
						"type": "string",
						"description": "Credit reason."
					},
					"requestUniqueId": {
						"maxLength": 50,
						"type": "string",
						"description": "Unique credit id provided by the merchant."
					}
				},
				"required": [
					"customerReference",
					"creditAmount",
					"paymentAccountProxy",
					"customerName",
					"reason",
					"requestUniqueId"
				],
				"type": "object",
				"title": "Credit Disbursement Request",
				"description": "Credit request details including customer reference, amount, payment account proxy, and reason."
			},
			"CustomerAccountRequest": {
				"properties": {
					"addtionalPaymentAccountProxies": {
						"items": {
							"$ref": "#/components/schemas/AccountProxy"
						},
						"type": "array",
						"description": "Additional PaymentAccountProxies. Proxy is generated using the Payments Plugin for bank account and card or /cardProxies API for card."
					},
					"bankAccount": {
						"$ref": "#/components/schemas/BankAccount",
						"description": "Customer bank account details. Provide valid BSB and Account Number."
					},
					"creditCardProxy": {
						"$ref": "#/components/schemas/CreditCardProxy",
						"description": "Customer credit / debit card proxy. Proxy is generated using the /cardProxies API or Payments Plugin."
					},
					"paymentAccountProxy": {
						"$ref": "#/components/schemas/AccountProxy",
						"description": "This replaces the BankAccount and CreditCardProxy. Proxy is generated using the Payments Plugin for bank account and card or /cardProxies API for card."
					}
				},
				"type": "object",
				"title": "Customer Payment Account Update",
				"description": "Customer payment account update. Accepts PaymentAccountProxy, CreditCardProxy, or BankAccount. Priority order: PaymentAccountProxy, BankAccount, CreditCardProxy. Preferred option is PaymentAccountProxy."
			},
			"CustomerAccountResponse": {
				"properties": {
					"bankAccount": {
						"$ref": "#/components/schemas/BankAccount",
						"description": "Customer bank account details."
					},
					"creditCard": {
						"$ref": "#/components/schemas/CreditCard",
						"description": "Customer credit card details."
					}
				},
				"type": "object",
				"title": "Customer Account Response",
				"description": "Customer payment account including bank account and credit card details."
			},
			"CustomerAddress": {
				"properties": {
					"address1": {
						"type": "string",
						"description": "Address line 1."
					},
					"address2": {
						"type": "string",
						"description": "Address line 2."
					},
					"country": {
						"maxLength": 100,
						"type": "string",
						"description": "Country."
					},
					"postcode": {
						"type": "string",
						"description": "Postcode."
					},
					"state": {
						"maxLength": 50,
						"type": "string",
						"description": "State / province."
					},
					"suburb": {
						"maxLength": 50,
						"type": "string",
						"description": "Suburb / city."
					}
				},
				"required": [
					"address1",
					"suburb",
					"state",
					"country",
					"postcode"
				],
				"type": "object",
				"title": "Customer Address",
				"description": "Customer address including address lines, suburb, state, postcode, and country."
			},
			"CustomerPaymentOption": {
				"properties": {
					"bPayDetail": {
						"$ref": "#/components/schemas/BPayDetail",
						"description": "BPAY details."
					},
					"nextPaymentDate": {
						"format": "date-time",
						"type": "string",
						"description": "Payment start date."
					},
					"notificationMethod": {
						"enum": [
							0,
							1,
							2
						],
						"format": "int32",
						"type": "integer",
						"x-enumDescriptions": {
							"0": "None",
							"1": "Sms",
							"2": "Email"
						},
						"description": "Notification method used to indicate the communication channel when payment successful or failed."
					},
					"payIdDetail": {
						"$ref": "#/components/schemas/PayIdDetail",
						"description": "PayID details."
					},
					"paymentAmount": {
						"format": "double",
						"type": "number",
						"description": "Payment amount. Set the default amount for auto payments or amount for one-off payment."
					},
					"paymentEndDate": {
						"format": "date-time",
						"type": "string",
						"description": "Payment end date."
					},
					"paymentFrequency": {
						"enum": [
							32,
							33,
							38,
							34,
							35,
							36,
							37
						],
						"format": "int32",
						"type": "integer",
						"x-enumDescriptions": {
							"32": "Weekly",
							"33": "Fortnightly",
							"34": "Quarterly",
							"35": "HalfYearly",
							"36": "Yearly",
							"37": "FourWeeks",
							"38": "Monthly"
						},
						"description": "Payment frequency. Applicable to auto pay, email reminder and sms reminder. Returns monthly if frequency is not available."
					},
					"paymentOption": {
						"enum": [
							22,
							23,
							24,
							25,
							26,
							27,
							28,
							148,
							149
						],
						"format": "int32",
						"type": "integer",
						"x-enumDescriptions": {
							"22": "AutoPay",
							"23": "EmailReminder",
							"24": "SmsReminder",
							"25": "FixedTerm",
							"26": "BatchPay",
							"27": "ScheduledPay",
							"28": "OneOff",
							"148": "PayID",
							"149": "BPAY"
						},
						"description": "Payment option. Use the correct payment option which is supported by the merchant."
					}
				},
				"required": [
					"paymentOption",
					"paymentAmount",
					"paymentFrequency",
					"nextPaymentDate",
					"notificationMethod"
				],
				"type": "object",
				"title": "Customer Payment Option",
				"description": "Customer payment option including payment type, amount, frequency, schedule, and notification method."
			},
			"CustomerProfile": {
				"properties": {
					"abn": {
						"type": "string",
						"description": "Australian Business Number."
					},
					"address": {
						"$ref": "#/components/schemas/CustomerAddress",
						"description": "Customer postal address."
					},
					"bPayReference": {
						"type": "string",
						"description": "BPay reference number for the customer."
					},
					"companyName": {
						"type": "string",
						"description": "Name of the customer company."
					},
					"customerCode": {
						"type": "string",
						"description": "Unique code assigned to the customer."
					},
					"customerReference": {
						"type": "string",
						"description": "Unique reference identifier for the customer."
					},
					"customerStatus": {
						"type": "string",
						"description": "Current status of the customer account."
					},
					"dateClosed": {
						"format": "date-time",
						"type": "string",
						"description": "Date the customer account was closed."
					},
					"dateOfBirth": {
						"format": "date-time",
						"type": "string",
						"description": "Customer date of birth."
					},
					"email": {
						"type": "string",
						"description": "Customer email address."
					},
					"enableBPayOption": {
						"type": "boolean",
						"description": "Whether BPay payment option is enabled for this customer."
					},
					"fax": {
						"type": "string",
						"description": "Customer fax number."
					},
					"firstName": {
						"type": "string",
						"description": "Customer first name."
					},
					"lastName": {
						"type": "string",
						"description": "Customer last name."
					},
					"merchantStaffMember": {
						"type": "string",
						"description": "Staff member assigned to the customer."
					},
					"mobile": {
						"type": "string",
						"description": "Customer mobile phone number."
					},
					"openDate": {
						"format": "date-time",
						"type": "string",
						"description": "Date the customer account was opened."
					},
					"phone": {
						"type": "string",
						"description": "Customer phone number."
					},
					"title": {
						"type": "string",
						"description": "Customer title (e.g. Mr, Mrs, Ms)."
					}
				},
				"type": "object",
				"title": "Customer Profile",
				"description": "Customer profile including personal details, contact information, address, and account dates."
			},
			"CustomerProfileRequest": {
				"properties": {
					"abn": {
						"type": "string",
						"description": "Australian Business Number."
					},
					"address": {
						"$ref": "#/components/schemas/CustomerAddress",
						"description": "Customer postal address."
					},
					"companyName": {
						"type": "string",
						"description": "Name of the customer company."
					},
					"dateOfBirth": {
						"format": "date-time",
						"type": "string",
						"description": "Customer date of birth."
					},
					"email": {
						"type": "string",
						"description": "Customer email address."
					},
					"enableBPayOption": {
						"type": "boolean",
						"description": "Whether BPay payment option is enabled for this customer."
					},
					"fax": {
						"type": "string",
						"description": "Customer fax number."
					},
					"firstName": {
						"maxLength": 30,
						"type": "string",
						"description": "First name."
					},
					"lastName": {
						"maxLength": 30,
						"type": "string",
						"description": "Last name."
					},
					"merchantStaffMember": {
						"type": "string",
						"description": "Staff member assigned to the customer."
					},
					"mobile": {
						"type": "string",
						"description": "Customer mobile phone number."
					},
					"phone": {
						"type": "string",
						"description": "Customer phone number."
					},
					"title": {
						"maxLength": 10,
						"type": "string",
						"description": "Provide the salutation. Eg: Mr or Mrs."
					}
				},
				"required": [
					"firstName",
					"lastName",
					"address",
					"email",
					"dateOfBirth"
				],
				"type": "object",
				"title": "Customer Profile Request",
				"description": "Customer profile details for creating or updating a customer profile."
			},
			"CustomerResponse": {
				"properties": {
					"account": {
						"$ref": "#/components/schemas/CustomerAccountResponse",
						"description": "Customer Payment account."
					},
					"merchantCode": {
						"type": "string",
						"description": "Merchant code."
					},
					"merchantName": {
						"type": "string",
						"description": "Merchant trading name."
					},
					"paymentOption": {
						"$ref": "#/components/schemas/CustomerPaymentOption",
						"description": "Customer payment option."
					},
					"profile": {
						"$ref": "#/components/schemas/CustomerProfile",
						"description": "Customer profile."
					}
				},
				"type": "object",
				"title": "Customer Details Response",
				"description": "Customer details including profile, payment account, payment option, and merchant information."
			},
			"CustomerStatusRequest": {
				"properties": {
					"closeCustomer": {
						"type": "boolean",
						"description": "True to close, false to open."
					},
					"reason": {
						"type": "string",
						"description": "Reason if the customer is closed."
					}
				},
				"type": "object",
				"title": "Customer Status Update Request",
				"description": "Customer status update request including close/open flag and reason."
			},
			"ICustomerProfie": {
				"properties": {
					"abn": {
						"type": "string",
						"description": "Australian Business Number."
					},
					"address": {
						"$ref": "#/components/schemas/CustomerAddress",
						"description": "Customer postal address."
					},
					"companyName": {
						"type": "string",
						"description": "Name of the customer company."
					},
					"dateOfBirth": {
						"format": "date-time",
						"type": "string",
						"description": "Customer date of birth."
					},
					"email": {
						"type": "string",
						"description": "Customer email address."
					},
					"enableBPayOption": {
						"type": "boolean",
						"description": "Whether BPay payment option is enabled for this customer."
					},
					"fax": {
						"type": "string",
						"description": "Customer fax number."
					},
					"firstName": {
						"type": "string",
						"description": "Customer first name."
					},
					"lastName": {
						"type": "string",
						"description": "Customer last name."
					},
					"merchantStaffMember": {
						"type": "string",
						"description": "Staff member assigned to the customer."
					},
					"mobile": {
						"type": "string",
						"description": "Customer mobile phone number."
					},
					"phone": {
						"type": "string",
						"description": "Customer phone number."
					},
					"title": {
						"type": "string",
						"description": "Customer title (e.g. Mr, Mrs, Ms)."
					}
				},
				"type": "object",
				"title": "Customer Profile Details",
				"description": "Customer profile details returned for a customer profile query."
			},
			"InternalServerErrorResult": {
				"properties": {
					"request": {
						"readOnly": true,
						"type": "object",
						"description": "Gets the request message which led to this result."
					}
				},
				"type": "object",
				"title": "Internal Server Error",
				"description": "Response returned when an internal server error occurs (HTTP 500)."
			},
			"ModelError": {
				"properties": {
					"errorMessage": {
						"readOnly": true,
						"type": "string",
						"description": "Gets or sets the error message."
					},
					"exception": {
						"readOnly": true,
						"type": "object",
						"description": "Gets or sets the exception object."
					}
				},
				"type": "object",
				"title": "Validation Error",
				"description": "Represents an error that occurs during model binding."
			},
			"ModelState": {
				"properties": {
					"errors": {
						"items": {
							"$ref": "#/components/schemas/ModelError"
						},
						"readOnly": true,
						"type": "array",
						"description": "Gets a ModelErrorCollection object that contains any errors that occurred during model binding."
					},
					"value": {
						"$ref": "#/components/schemas/ValueProviderResult",
						"description": "Gets a ValueProviderResult object that encapsulates the value that was being bound during model binding."
					}
				},
				"type": "object",
				"title": "Validation Model State",
				"description": "Encapsulates the state of model binding to a property of an action-method argument, or to the argument itself."
			},
			"NewCustomer": {
				"properties": {
					"abn": {
						"type": "string",
						"description": "Australian Business Number."
					},
					"additionalPaymentAccountProxies": {
						"items": {
							"$ref": "#/components/schemas/AccountProxy"
						},
						"type": "array",
						"description": "Additional PaymentAccountProxies. Proxy is generated using the Payments Plugin for Bank and Credit/Debit Card or /cardProxies api for Credit/Debit Card."
					},
					"additionalReferences": {
						"items": {
							"$ref": "#/components/schemas/AdditionalReference"
						},
						"type": "array",
						"description": "Additional references if you have more than one references to manage. Eg: Parents paying childcare fee for more than one kid."
					},
					"address": {
						"$ref": "#/components/schemas/CustomerAddress",
						"description": "Customer address."
					},
					"bankAccount": {
						"$ref": "#/components/schemas/BankAccount",
						"description": "Customer bank account details."
					},
					"card": {
						"$ref": "#/components/schemas/CreditCardProxy",
						"description": "Customer credit / debit card proxy. (Token is generated using the /tokens api."
					},
					"customerCompanyName": {
						"type": "string",
						"description": "Company name if this is company account."
					},
					"customerReference": {
						"type": "string",
						"description": "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": {
						"format": "date-time",
						"type": "string",
						"description": "Date of birth. Customer must be atleast 16 years old."
					},
					"email": {
						"type": "string",
						"description": "Email address."
					},
					"enableBPayOption": {
						"type": "boolean",
						"description": "Allows to enable BPAY option for the customer / parent."
					},
					"fax": {
						"type": "string",
						"description": "Fax number."
					},
					"firstName": {
						"maxLength": 30,
						"type": "string",
						"description": "First name."
					},
					"isBPayCrnPassed": {
						"type": "boolean",
						"description": "Send this as true when customer reference passed if CRN. Default is set to false if not passed."
					},
					"lastName": {
						"maxLength": 30,
						"type": "string",
						"description": "Last name."
					},
					"merchantStaffMember": {
						"type": "string",
						"description": "Merchant Staff member assigned to this customer / parent."
					},
					"mobile": {
						"type": "string",
						"description": "Mobile number."
					},
					"notificationMethod": {
						"enum": [
							0,
							1,
							2
						],
						"format": "int32",
						"type": "integer",
						"x-enumDescriptions": {
							"0": "None",
							"1": "Sms",
							"2": "Email"
						},
						"description": "Notification method used to indicate the communication channel when payment successful or failed."
					},
					"paymentAccountProxy": {
						"$ref": "#/components/schemas/AccountProxy",
						"description": "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": {
						"format": "double",
						"type": "number",
						"description": "Payment amount. Set the default amount for auto payments or amount for one-off payment."
					},
					"paymentEndDate": {
						"format": "date-time",
						"type": "string",
						"description": "Payment end date."
					},
					"paymentFrequency": {
						"enum": [
							32,
							33,
							38,
							34,
							35,
							36,
							37
						],
						"format": "int32",
						"type": "integer",
						"x-enumDescriptions": {
							"32": "Weekly",
							"33": "Fortnightly",
							"34": "Quarterly",
							"35": "HalfYearly",
							"36": "Yearly",
							"37": "FourWeeks",
							"38": "Monthly"
						},
						"description": "Payment frequency. Applicable to auto pay, email reminder and sms reminder."
					},
					"paymentOption": {
						"enum": [
							22,
							23,
							24,
							25,
							26,
							27,
							28,
							148,
							149
						],
						"format": "int32",
						"type": "integer",
						"x-enumDescriptions": {
							"22": "AutoPay",
							"23": "EmailReminder",
							"24": "SmsReminder",
							"25": "FixedTerm",
							"26": "BatchPay",
							"27": "ScheduledPay",
							"28": "OneOff",
							"148": "PayID",
							"149": "BPAY"
						},
						"description": "Payment option. Use the correct payment option which is supported by the merchant."
					},
					"paymentStartDate": {
						"format": "date-time",
						"type": "string",
						"description": "Payment start date."
					},
					"phone": {
						"type": "string",
						"description": "Phone number."
					},
					"promotionCode": {
						"type": "string",
						"description": "Promotion code if any."
					},
					"sendWelcomeEmail": {
						"type": "boolean",
						"description": "Sends welcome email if set to true. Default is set to true if not passed."
					},
					"title": {
						"maxLength": 10,
						"type": "string",
						"description": "Provide the salutation. Eg: Mr or Mrs."
					},
					"websiteUrl": {
						"type": "string",
						"description": "Website URL if any."
					}
				},
				"required": [
					"customerReference",
					"firstName",
					"lastName",
					"email",
					"mobile",
					"dateOfBirth",
					"paymentOption",
					"paymentAmount",
					"paymentFrequency",
					"paymentStartDate",
					"notificationMethod"
				],
				"type": "object",
				"title": "New Customer Request",
				"description": "Customer creation request including profile, payment option, and account details."
			},
			"NewCustomerResponse": {
				"properties": {
					"abn": {
						"type": "string",
						"description": "Australian Business Number."
					},
					"additionalPaymentAccountProxies": {
						"items": {
							"$ref": "#/components/schemas/AccountProxy"
						},
						"type": "array",
						"description": "Additional PaymentAccountProxies. Proxy is generated using the Payments Plugin for Bank and Credit/Debit Card or /cardProxies api for Credit/Debit Card."
					},
					"additionalReferences": {
						"items": {
							"$ref": "#/components/schemas/AdditionalReference"
						},
						"type": "array",
						"description": "Additional references if you have more than one references to manage. Eg: Parents paying childcare fee for more than one kid."
					},
					"address": {
						"$ref": "#/components/schemas/CustomerAddress",
						"description": "Customer address."
					},
					"bPayDetail": {
						"$ref": "#/components/schemas/BPayDetail",
						"description": "BPAY details."
					},
					"bankAccount": {
						"$ref": "#/components/schemas/BankAccount",
						"description": "Customer bank account details."
					},
					"billerCode": {
						"type": "string",
						"description": "If BPAY payment method is enabled, biller code will be returned."
					},
					"billerReference": {
						"type": "string",
						"description": "If BPAY payment method is enabled, biller reference can be used by the customer to make BPAY payment."
					},
					"card": {
						"$ref": "#/components/schemas/CreditCardProxy",
						"description": "Customer credit / debit card proxy. (Token is generated using the /tokens api."
					},
					"customerCompanyName": {
						"type": "string",
						"description": "Company name if this is company account."
					},
					"customerLogin": {
						"type": "string",
						"description": "Customer login."
					},
					"customerReference": {
						"type": "string",
						"description": "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": {
						"format": "date-time",
						"type": "string",
						"description": "Date of birth. Customer must be atleast 16 years old."
					},
					"email": {
						"type": "string",
						"description": "Email address."
					},
					"enableBPayOption": {
						"type": "boolean",
						"description": "Allows to enable BPAY option for the customer / parent."
					},
					"fax": {
						"type": "string",
						"description": "Fax number."
					},
					"firstName": {
						"maxLength": 30,
						"type": "string",
						"description": "First name."
					},
					"isBPayCrnPassed": {
						"type": "boolean",
						"description": "Send this as true when customer reference passed if CRN. Default is set to false if not passed."
					},
					"lastName": {
						"maxLength": 30,
						"type": "string",
						"description": "Last name."
					},
					"merchantCode": {
						"type": "string",
						"description": "Merchant code."
					},
					"merchantName": {
						"type": "string",
						"description": "Merchant trading name."
					},
					"merchantStaffMember": {
						"type": "string",
						"description": "Merchant Staff member assigned to this customer / parent."
					},
					"mobile": {
						"type": "string",
						"description": "Mobile number."
					},
					"notificationMethod": {
						"enum": [
							0,
							1,
							2
						],
						"format": "int32",
						"type": "integer",
						"x-enumDescriptions": {
							"0": "None",
							"1": "Sms",
							"2": "Email"
						},
						"description": "Notification method used to indicate the communication channel when payment successful or failed."
					},
					"passwordGenerationUrl": {
						"type": "string",
						"description": "Password generation for customer login."
					},
					"payIdDetail": {
						"$ref": "#/components/schemas/PayIdDetail",
						"description": "PayID details."
					},
					"paymentAccountProxy": {
						"$ref": "#/components/schemas/AccountProxy",
						"description": "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": {
						"format": "double",
						"type": "number",
						"description": "Payment amount. Set the default amount for auto payments or amount for one-off payment."
					},
					"paymentEndDate": {
						"format": "date-time",
						"type": "string",
						"description": "Payment end date."
					},
					"paymentFrequency": {
						"enum": [
							32,
							33,
							38,
							34,
							35,
							36,
							37
						],
						"format": "int32",
						"type": "integer",
						"x-enumDescriptions": {
							"32": "Weekly",
							"33": "Fortnightly",
							"34": "Quarterly",
							"35": "HalfYearly",
							"36": "Yearly",
							"37": "FourWeeks",
							"38": "Monthly"
						},
						"description": "Payment frequency. Applicable to auto pay, email reminder and sms reminder."
					},
					"paymentOption": {
						"enum": [
							22,
							23,
							24,
							25,
							26,
							27,
							28,
							148,
							149
						],
						"format": "int32",
						"type": "integer",
						"x-enumDescriptions": {
							"22": "AutoPay",
							"23": "EmailReminder",
							"24": "SmsReminder",
							"25": "FixedTerm",
							"26": "BatchPay",
							"27": "ScheduledPay",
							"28": "OneOff",
							"148": "PayID",
							"149": "BPAY"
						},
						"description": "Payment option. Use the correct payment option which is supported by the merchant."
					},
					"paymentStartDate": {
						"format": "date-time",
						"type": "string",
						"description": "Payment start date."
					},
					"phone": {
						"type": "string",
						"description": "Phone number."
					},
					"promotionCode": {
						"type": "string",
						"description": "Promotion code if any."
					},
					"sendWelcomeEmail": {
						"type": "boolean",
						"description": "Sends welcome email if set to true. Default is set to true if not passed."
					},
					"title": {
						"maxLength": 10,
						"type": "string",
						"description": "Provide the salutation. Eg: Mr or Mrs."
					},
					"websiteUrl": {
						"type": "string",
						"description": "Website URL if any."
					}
				},
				"required": [
					"customerReference",
					"firstName",
					"lastName",
					"email",
					"mobile",
					"dateOfBirth",
					"paymentOption",
					"paymentAmount",
					"paymentFrequency",
					"paymentStartDate",
					"notificationMethod"
				],
				"type": "object",
				"title": "Customer Creation Response",
				"description": "Customer creation response including assigned references and payment option details."
			},
			"PayIdDetail": {
				"properties": {
					"payId": {
						"type": "string",
						"description": "PayID."
					},
					"payIdName": {
						"type": "string",
						"description": "PayID Name."
					},
					"reference": {
						"type": "string",
						"description": "Reference."
					}
				},
				"type": "object",
				"title": "PayID Detail",
				"description": "PayID details including PayID value, name, and reference."
			},
			"PaymentAccountProxyResponse": {
				"properties": {
					"accountName": {
						"examples": [
							"John Smith"
						],
						"type": "string",
						"description": "Account name (Bank/PayTo accounts)."
					},
					"accountNumber": {
						"examples": [
							"12345678"
						],
						"type": "string",
						"description": "Account number (Bank/PayTo accounts)."
					},
					"accountType": {
						"examples": [
							"Card"
						],
						"type": "string",
						"description": "Type of payment account."
					},
					"bsb": {
						"examples": [
							"123-456"
						],
						"type": "string",
						"description": "BSB code (Bank/PayTo accounts)."
					},
					"cardExpiry": {
						"examples": [
							"12/25"
						],
						"type": "string",
						"description": "Card expiry date (Card accounts only)."
					},
					"cardHolderName": {
						"examples": [
							"John Smith"
						],
						"type": "string",
						"description": "Card holder name (Card accounts only)."
					},
					"cardNumber": {
						"examples": [
							"****1234"
						],
						"type": "string",
						"description": "Masked card number (Card accounts only)."
					},
					"cardType": {
						"examples": [
							"Visa"
						],
						"type": "string",
						"description": "Card type (Card accounts only)."
					},
					"payId": {
						"examples": [
							"john.smith@email.com"
						],
						"type": "string",
						"description": "PayId identifier (PayId accounts only)."
					},
					"payIdName": {
						"examples": [
							"John Smith"
						],
						"type": "string",
						"description": "PayId display name (PayId accounts only)."
					},
					"payToStatus": {
						"examples": [
							"Active"
						],
						"type": "string",
						"description": "PayTo status (PayTo accounts only)."
					},
					"processor3DSPayload": {
						"examples": [
							"eyJhbGciOiJIUzI1NiJ9..."
						],
						"type": "string",
						"description": "3DS payload (Card accounts only)."
					},
					"processorName": {
						"examples": [
							"Stripe"
						],
						"type": "string",
						"description": "Processor name (Card accounts only)."
					},
					"processorToken": {
						"examples": [
							"tok_1234567890"
						],
						"type": "string",
						"description": "Processor token (Card accounts only)."
					},
					"statusDescription": {
						"examples": [
							"Account is active and ready for payments"
						],
						"type": "string",
						"description": "Status description (PayTo accounts only)."
					},
					"uId": {
						"examples": [
							"12345678-1234-5678-9012-123456789012"
						],
						"type": "string",
						"description": "Unique identifier (PayTo accounts only)."
					}
				},
				"type": "object",
				"title": "Payment Account Reference Response",
				"description": "Payment account proxy response representing the different response structures for card, bank account, PayID, and PayTo details."
			},
			"PaymentAdditionalData": {
				"properties": {
					"authCode": {
						"type": "string",
						"description": "Authorisation code returned by the card issuer."
					},
					"rrn": {
						"type": "string",
						"description": "Retrieval reference number assigned by the acquirer, used when tracing the transaction with them."
					},
					"stan": {
						"type": "string",
						"description": "System trace audit number identifying the transaction on the acquirer's network."
					}
				},
				"type": "object",
				"title": "Payment Additional Data",
				"description": "Acquirer and issuer references for a card transaction: the authorisation code, the retrieval reference number and the system trace audit number."
			},
			"PaymentCard": {
				"properties": {
					"cardHolder": {
						"type": "string",
						"description": "Name of the cardholder."
					},
					"cardNumber": {
						"type": "string",
						"description": "Card number."
					},
					"cvv": {
						"type": "string",
						"description": "Card verification value."
					},
					"expiryMonth": {
						"type": "string",
						"description": "Card expiry month."
					},
					"expiryYear": {
						"maxLength": 4,
						"minLength": 4,
						"type": "string",
						"description": "Card expiry year."
					}
				},
				"required": [
					"cardHolder",
					"cardNumber",
					"expiryMonth",
					"expiryYear",
					"cvv"
				],
				"type": "object",
				"title": "Payment Card",
				"description": "Card details for direct card payment including cardholder name, card number, expiry, and CVV."
			},
			"PaymentRequest": {
				"properties": {
					"abn": {
						"type": "string",
						"description": "Customer Australian Business Number."
					},
					"additionalReference": {
						"type": "string",
						"description": "Additional reference. This field is returned in reconciliation reports."
					},
					"card": {
						"$ref": "#/components/schemas/PaymentCard",
						"description": "PAN detail."
					},
					"cardProxy": {
						"type": "string",
						"description": "Card Proxy (Conditional). Use only if you want to pay using card proxy."
					},
					"companyName": {
						"type": "string",
						"description": "Customer company name."
					},
					"contactNumber": {
						"type": "string",
						"description": "Customer contact number."
					},
					"customerEmail": {
						"type": "string",
						"description": "The customer email to which an invoice is sent to."
					},
					"customerName": {
						"type": "string",
						"description": "Customer name."
					},
					"customerReference": {
						"type": "string",
						"description": "Customer reference. Required only when payment account proxy or card proxy is not provided."
					},
					"merchantUniquePaymentId": {
						"maxLength": 50,
						"type": "string",
						"description": "Unique payment id provided by the merchant."
					},
					"oneOffPaymentReference": {
						"type": "string",
						"description": "One Off Payment reference. This field is returned in reconciliation reports."
					},
					"overrideFeePayer": {
						"enum": [
							0,
							1,
							2
						],
						"format": "int32",
						"type": "integer",
						"x-enumDescriptions": {
							"0": "Default",
							"1": "Merchant",
							"2": "Customer"
						},
						"description": "Override Fee Payer. This field is to determine who is paying transaction fee. 0 Use Set Profile - default 1 Merchant Pays Fee (if allowed) 2 Customer Pays Fee (if allowed)."
					},
					"paymentAccountProxy": {
						"$ref": "#/components/schemas/AccountProxy",
						"description": "Card or bank account proxy. Proxy is generated using the Payments Plugin for bank account and card or /cardProxies API for card."
					},
					"paymentAmount": {
						"format": "double",
						"type": "number",
						"description": "Payment amount."
					},
					"sendPaymentConfirmation": {
						"type": "boolean",
						"description": "Flag to send the customer invoice."
					},
					"threeDSecureData": {
						"$ref": "#/components/schemas/ThreeDSecureData",
						"description": "Optional. 3DSecure details."
					}
				},
				"required": [
					"customerReference",
					"paymentAmount",
					"overrideFeePayer"
				],
				"type": "object",
				"title": "Payment Request",
				"description": "Payment request including customer reference or card proxy, amount, and optional 3D Secure details."
			},
			"PaymentResponse": {
				"properties": {
					"abn": {
						"type": "string",
						"description": "ABN for the transaction."
					},
					"accountOrCardNo": {
						"type": "string",
						"description": "Payment Card No."
					},
					"additionalData": {
						"$ref": "#/components/schemas/PaymentAdditionalData",
						"description": "Acquirer and issuer references for the transaction, returned for card payments."
					},
					"additionalReference": {
						"type": "string",
						"description": "Additional reference. (Conditional)."
					},
					"baseAmount": {
						"format": "double",
						"type": "number",
						"description": "Base amount of the payment is done."
					},
					"cardCategory": {
						"type": "string",
						"description": "Card category."
					},
					"cardTypeString": {
						"type": "string",
						"description": "Card scheme the payment was processed on, as text. For example: MasterCard."
					},
					"cardTypeValue": {
						"format": "int32",
						"type": "integer",
						"description": "Card scheme the payment was processed on, as its numeric code. Pairs with `cardTypeString`."
					},
					"chargeBackedOn": {
						"format": "date-time",
						"type": "string",
						"description": "Recalled date. Date Format: yyyy-MM-ddTHH:mm:ss, TimeZone: AEST (Conditional)."
					},
					"chargeBackedReason": {
						"type": "string",
						"description": "Reason. (Conditional)."
					},
					"chargeBackedTransactionReference": {
						"type": "string",
						"description": "ChargedBackedTransactionReference : If a charge transaction is charged back then this is transaction reference of charged back transaction.(Conditional)."
					},
					"chargebacks": {
						"items": {
							"$ref": "#/components/schemas/SubPayment"
						},
						"type": "array",
						"description": "All chargebacks processed on this payment."
					},
					"customerCode": {
						"type": "string",
						"description": "Unique customer code if the customer exists in the system."
					},
					"customerFee": {
						"format": "double",
						"type": "number",
						"description": "Fee charged on customer card."
					},
					"customerName": {
						"type": "string",
						"description": "Customer who paid the payment."
					},
					"customerReference": {
						"type": "string",
						"description": "Reference of the Customer who paid the payment."
					},
					"failureCode": {
						"type": "string",
						"description": "Failure code if the payment failed. Please refer: http://tinyurl.com/y6lkmpsv for more details. (Conditional)."
					},
					"failureReason": {
						"type": "string",
						"description": "Failure reason if the payment failed. (Conditional)."
					},
					"fundsToMerchant": {
						"format": "double",
						"type": "number",
						"description": "Funds to Merchant."
					},
					"isPaymentChargeBacked": {
						"type": "boolean",
						"description": "Payment Charge Backed."
					},
					"isPaymentRecalled": {
						"type": "boolean",
						"description": "Payment recalled."
					},
					"isPaymentRefunded": {
						"type": "boolean",
						"description": "Payment refunded."
					},
					"isPaymentRetryScheduled": {
						"type": "boolean",
						"description": "Whether a retry payment is pending. Based on Program/Merchant settings, a failed payment will be retried."
					},
					"isPaymentSettledToMerchant": {
						"type": "boolean",
						"description": "Whether the payment has been settled to the merchant."
					},
					"merchantCode": {
						"type": "string",
						"description": "Merchant code."
					},
					"merchantFee": {
						"format": "double",
						"type": "number",
						"description": "Fee charged on Merchant."
					},
					"merchantName": {
						"type": "string",
						"description": "Merchant trading name."
					},
					"merchantSettlementReference": {
						"type": "string",
						"description": "Reference for the merchant settlement this payment was paid out in. Empty until the payment settles."
					},
					"merchantUniquePaymentId": {
						"type": "string",
						"description": "Unique payment id provided by the merchant. (Conditional)."
					},
					"oneOffPaymentReference": {
						"type": "string",
						"description": "One Off Payment Reference."
					},
					"originalTransactionReference": {
						"type": "string",
						"description": "OriginalTransactionReference : For a Recall / Refund transaction, it is the transaction reference of original transaction."
					},
					"paymentAccount": {
						"type": "string",
						"description": "Payment Account by which the payment is done."
					},
					"paymentAmount": {
						"format": "double",
						"type": "number",
						"description": "Total payment amount including the fees."
					},
					"paymentCard": {
						"type": "string",
						"description": "Payment card used."
					},
					"paymentReference": {
						"type": "string",
						"description": "Unique Payment Reference for the payment done."
					},
					"paymentSourceDisplay": {
						"type": "string",
						"description": "Payment source of transaction."
					},
					"paymentStatus": {
						"type": "string",
						"description": "Current Status of the payment. Expected Statuses\n\n1. Pending\tThis Payment is waiting be to processed\n2. Error - This Payment has encountered an Error\n3. Submitted - This Payment was successfully submitted\n4. Successful - This Payment was successful\n5. Successful(Recalled) - This Payment was Recalled\n6. Successful(Refunded) - This Payment was Refunded\n7. Successful (Refunded) (Recalled) - This Payment was Refunded and Recalled\n8. Failed - This Payment has Failed\n9. Cancelled - This Payment was Cancelled\n10. Suppressed - This Payment was Suppressed\n11. InProgress - This Payment is being processed."
					},
					"preauthExpiryAt": {
						"format": "date-time",
						"type": "string",
						"description": "Preauth expiry in minutes."
					},
					"processingDate": {
						"format": "date-time",
						"type": "string",
						"description": "Processing Date for the payment. Date Format: yyyy-MM-ddTHH:mm:ss, TimeZone: AEST."
					},
					"processorReference": {
						"type": "string",
						"description": "Processor reference for the payment done."
					},
					"recalledOn": {
						"format": "date-time",
						"type": "string",
						"description": "Recalled date. Date Format: yyyy-MM-ddTHH:mm:ss, TimeZone: AEST (Conditional)."
					},
					"recalledReason": {
						"type": "string",
						"description": "Reason. (Conditional)."
					},
					"recalledTransactionReference": {
						"type": "string",
						"description": "RecalledTransactionReference : If a charge transaction is recalled then this is transaction reference of recall transaction.(Conditional)."
					},
					"recalls": {
						"items": {
							"$ref": "#/components/schemas/SubPayment"
						},
						"type": "array",
						"description": "All recalls processed on this payment."
					},
					"redirectUrl": {
						"type": "string",
						"description": "3DSecure redirect url to complete the 3DSecure challege if required by the scheme."
					},
					"refundedOn": {
						"format": "date-time",
						"type": "string",
						"description": "Refunded date. Date Format: yyyy-MM-ddTHH:mm:ss, TimeZone: AEST (Conditional)."
					},
					"refundedReason": {
						"type": "string",
						"description": "Reason. (Conditional)."
					},
					"refundedTransactionReference": {
						"type": "string",
						"description": "RefundedTransactionReference : If a charge transaction is refunded then this is transaction reference of refunded transaction.(Conditional)."
					},
					"refunds": {
						"items": {
							"$ref": "#/components/schemas/SubPayment"
						},
						"type": "array",
						"description": "All refunds processed on this payment."
					},
					"remainingPreauthAmount": {
						"format": "double",
						"type": "number",
						"description": "Remaining preauth amount."
					},
					"retryPaymentReference": {
						"type": "string",
						"description": "Retry payment reference. (Conditional)."
					},
					"retryScheduledOn": {
						"format": "date-time",
						"type": "string",
						"description": "Retry payment scheduled date. Date Format: yyyy-MM-ddTHH:mm:ss, TimeZone: AEST (Conditional)."
					},
					"settlementDate": {
						"format": "date-time",
						"type": "string",
						"description": "Settlement Date for the payment. This is a calculated date and may change until the payment been settled. Date Format: yyyy-MM-ddTHH:mm:ss, TimeZone: AEST."
					},
					"settlementFrequencyString": {
						"type": "string",
						"description": "How often the merchant is settled, as text. For example: Monthly."
					},
					"settlementFrequencyValue": {
						"format": "int32",
						"type": "integer",
						"description": "How often the merchant is settled, as its numeric code. Pairs with `settlementFrequencyString`."
					},
					"settlementPostPartialRefund": {
						"$ref": "#/components/schemas/SettlementPayment",
						"description": "Balance Payment if any is available."
					},
					"settlementReference": {
						"type": "string",
						"description": "Reference for the settlement this payment was paid out in. Empty until the payment settles."
					},
					"settlementType": {
						"type": "string",
						"description": "Whether the merchant is settled gross or net of fees. For example: Gross."
					},
					"sku1": {
						"type": "string",
						"description": "Stock keeping unit field 1."
					},
					"sku2": {
						"type": "string",
						"description": "Stock keeping unit field 2."
					},
					"subCardType": {
						"type": "string",
						"description": "Sub card type."
					},
					"subCardTypeString": {
						"type": "string",
						"description": "Card sub-type where the scheme has one, as text. Empty when the scheme has none."
					},
					"subCardTypeValue": {
						"format": "int32",
						"type": "integer",
						"description": "Card sub-type as its numeric code. Pairs with `subCardTypeString`."
					},
					"transactionType": {
						"enum": [
							1,
							2,
							3,
							4,
							5,
							6,
							7,
							8,
							9,
							10
						],
						"format": "int32",
						"type": "integer",
						"x-enumDescriptions": {
							"1": "Charge",
							"2": "InvoicePayment",
							"3": "Refund",
							"4": "Chargeback",
							"5": "Recall",
							"6": "FixedTermSettlement",
							"7": "SponsorInvoicePayment",
							"8": "MerchantSettlementAdjustmentPayment",
							"9": "Preauthorization",
							"10": "Credit"
						},
						"description": "Transaction type numeric code."
					},
					"transactionTypeDisplay": {
						"type": "string",
						"description": "Transaction Type. Possible values:\n\n1. Charge\n2. Invoice\n3. Refund\n4. Chargeback\n5. Recall\n6. Fixed Term Settlement."
					}
				},
				"type": "object",
				"title": "Payment Result",
				"description": "Payment response including status, amounts, fees, and settlement details. Fields marked as conditional are only returned under certain conditions."
			},
			"PingResponse": {
				"properties": {
					"buildVersion": {
						"type": "string",
						"description": "Build version."
					},
					"serverDateTime": {
						"format": "date-time",
						"type": "string",
						"description": "Server Date Time."
					},
					"timeZoneInfo": {
						"type": "string",
						"description": "DateTime Time Zone."
					},
					"version": {
						"type": "string",
						"description": "API version."
					}
				},
				"type": "object",
				"title": "Ping Response",
				"description": "Ping response including server date time and version information."
			},
			"PluginCustomization": {
				"properties": {
					"customerNameLabel": {
						"type": "string",
						"description": "Custom label to override default customer name display text."
					},
					"customerReferenceLabel": {
						"type": "string",
						"description": "Custom label to override default customer reference display text."
					},
					"hideHeader": {
						"type": "boolean",
						"description": "Hide the plugin header. Defaults to false if not provided."
					},
					"hideMerchantLogo": {
						"type": "boolean",
						"description": "This will hide the merchant logo if any. Defaults to 'false' if not provided."
					},
					"paymentAmountLabel": {
						"type": "string",
						"description": "Custom label to override default payment amount display text."
					},
					"title": {
						"type": "string",
						"description": "Plugin Title. Defaults to 'Process Payment' if not provided."
					}
				},
				"type": "object",
				"title": "Hosted Payment Page Customization",
				"description": "Visual customization options for the payment plugin."
			},
			"PluginPaymentMethods": {
				"properties": {
					"aliPayPlus": {
						"type": "boolean",
						"description": "Conditional if mode is set to 0. Show AliPay+ option only if the option is enable for the merchant.Default is false."
					},
					"applePay": {
						"type": "boolean",
						"description": "Conditional if mode is set to 0. Show Apple Pay option only if the option is enable for the merchant.Default is false."
					},
					"bankAccount": {
						"type": "boolean",
						"description": "Conditional. Required if mode is set to 0 or 2. Show bank account option only if the option is enable for the merchant.Default is false."
					},
					"card": {
						"type": "boolean",
						"description": "Conditional. Required if mode is set to 0 or 2. Show card option only if the option is enable for the merchant.Default is true."
					},
					"cardTokenise": {
						"type": "boolean",
						"description": "Conditional. Required if mode is set to 0 or 2. Show card tokenise option only if the option is enable for the merchant.Default is true."
					},
					"googlePay": {
						"type": "boolean",
						"description": "Conditional if mode is set to 0. Show Google Pay option only if the option is enable for the merchant.Default is false."
					},
					"latitudePay": {
						"type": "boolean",
						"description": "Conditional if mode is set to 0. Show Latitude Pay option only if the option is enable for the merchant.Default is false."
					},
					"payId": {
						"type": "boolean",
						"description": "Conditional. Required if mode is set to 0 or 2. Show PayID option only if the option is enable for the merchant.Default is false."
					},
					"payTo": {
						"type": "boolean",
						"description": "Conditional. Required if mode is set to 0 or 2. Show PayTo option only if the option is enable for the merchant.Default is false."
					},
					"slicePay": {
						"type": "boolean",
						"description": "Conditional if mode is set to 0. Show Slice Pay option only if the option is enable for the merchant.Default is false."
					},
					"unionPay": {
						"type": "boolean",
						"description": "Conditional if mode is set to 0. Show UnionPay option only if the option is enable for the merchant.Default is false."
					},
					"weChat": {
						"type": "boolean",
						"description": "Conditional if mode is set to 0. Show WeChat Pay option only if the option is enable for the merchant.Default is false."
					}
				},
				"type": "object",
				"title": "Hosted Payment Methods",
				"description": "Payment methods enabled for the payment plugin session."
			},
			"PreauthRequest": {
				"properties": {
					"abn": {
						"type": "string",
						"description": "Customer Australian Business Number."
					},
					"additionalReference": {
						"type": "string",
						"description": "Additional reference. This field is returned in reconciliation reports."
					},
					"card": {
						"$ref": "#/components/schemas/PaymentCard",
						"description": "PAN detail."
					},
					"cardProxy": {
						"type": "string",
						"description": "Card Proxy (Conditional). Use only if you want to pay using card proxy."
					},
					"companyName": {
						"type": "string",
						"description": "Customer company name."
					},
					"contactNumber": {
						"type": "string",
						"description": "Customer contact number."
					},
					"customerEmail": {
						"type": "string",
						"description": "The customer email to which an invoice is sent to."
					},
					"customerName": {
						"type": "string",
						"description": "Customer name."
					},
					"customerReference": {
						"type": "string",
						"description": "Customer reference. Required only when payment account proxy or card proxy is not provided."
					},
					"merchantUniquePaymentId": {
						"maxLength": 50,
						"type": "string",
						"description": "Unique payment id provided by the merchant."
					},
					"oneOffPaymentReference": {
						"type": "string",
						"description": "One Off Payment reference. This field is returned in reconciliation reports."
					},
					"overrideFeePayer": {
						"enum": [
							0,
							1,
							2
						],
						"format": "int32",
						"type": "integer",
						"x-enumDescriptions": {
							"0": "Default",
							"1": "Merchant",
							"2": "Customer"
						},
						"description": "Override Fee Payer. This field is to determine who is paying transaction fee. 0 Use Set Profile - default 1 Merchant Pays Fee (if allowed) 2 Customer Pays Fee (if allowed)."
					},
					"paymentAccountProxy": {
						"$ref": "#/components/schemas/AccountProxy",
						"description": "Card or bank account proxy. Proxy is generated using the Payments Plugin for bank account and card or /cardProxies API for card."
					},
					"preauthAmount": {
						"format": "double",
						"type": "number",
						"description": "Preauth amount."
					},
					"threeDSecureData": {
						"$ref": "#/components/schemas/ThreeDSecureData",
						"description": "Optional. 3DSecure details."
					}
				},
				"required": [
					"customerReference",
					"preauthAmount"
				],
				"type": "object",
				"title": "Preauthorization Request",
				"description": "Preauthorization request including customer reference, amount, and optional card or proxy details."
			},
			"PreauthResponse": {
				"properties": {
					"abn": {
						"type": "string",
						"description": "ABN for the transaction."
					},
					"accountOrCardNo": {
						"type": "string",
						"description": "Payment Card No."
					},
					"additionalReference": {
						"type": "string",
						"description": "Additional reference. (Conditional)."
					},
					"baseAmount": {
						"format": "double",
						"type": "number",
						"description": "Base amount of the payment is done."
					},
					"cardCategory": {
						"type": "string",
						"description": "Card category."
					},
					"chargeBackedOn": {
						"format": "date-time",
						"type": "string",
						"description": "Recalled date. Date Format: yyyy-MM-ddTHH:mm:ss, TimeZone: AEST (Conditional)."
					},
					"chargeBackedReason": {
						"type": "string",
						"description": "Reason. (Conditional)."
					},
					"chargeBackedTransactionReference": {
						"type": "string",
						"description": "ChargedBackedTransactionReference : If a charge transaction is charged back then this is transaction reference of charged back transaction.(Conditional)."
					},
					"customerFee": {
						"format": "double",
						"type": "number",
						"description": "Fee charged on customer card."
					},
					"customerName": {
						"type": "string",
						"description": "Customer who paid the payment."
					},
					"customerReference": {
						"type": "string",
						"description": "Reference of the Customer who paid the payment."
					},
					"failureCode": {
						"type": "string",
						"description": "Failure code if the payment failed. Please refer: http://tinyurl.com/y6lkmpsv for more details. (Conditional)."
					},
					"failureReason": {
						"type": "string",
						"description": "Failure reason if the payment failed. (Conditional)."
					},
					"fundsToMerchant": {
						"format": "double",
						"type": "number",
						"description": "Funds to Merchant."
					},
					"isPaymentChargeBacked": {
						"type": "boolean",
						"description": "Payment Charge Backed."
					},
					"isPaymentRecalled": {
						"type": "boolean",
						"description": "Payment recalled."
					},
					"isPaymentRefunded": {
						"type": "boolean",
						"description": "Payment refunded."
					},
					"isPaymentRetryScheduled": {
						"type": "boolean",
						"description": "Whether a retry payment is pending. Based on Program/Merchant settings, a failed payment will be retried."
					},
					"isPaymentSettledToMerchant": {
						"type": "boolean",
						"description": "Whether the payment has been settled to the merchant."
					},
					"merchantCode": {
						"type": "string",
						"description": "Merchant code."
					},
					"merchantFee": {
						"format": "double",
						"type": "number",
						"description": "Fee charged on Merchant."
					},
					"merchantName": {
						"type": "string",
						"description": "Merchant trading name."
					},
					"merchantUniquePaymentId": {
						"type": "string",
						"description": "Unique payment id provided by the merchant. (Conditional)."
					},
					"oneOffPaymentReference": {
						"type": "string",
						"description": "One Off Payment Reference."
					},
					"originalTransactionReference": {
						"type": "string",
						"description": "OriginalTransactionReference : For a Recall / Refund transaction, it is the transaction reference of original transaction."
					},
					"paymentAccount": {
						"type": "string",
						"description": "Payment Account by which the payment is done."
					},
					"paymentCard": {
						"type": "string",
						"description": "Payment card used."
					},
					"paymentSourceDisplay": {
						"type": "string",
						"description": "Payment source of transaction."
					},
					"preauthAmount": {
						"format": "double",
						"type": "number",
						"description": "Total payment amount including the fees."
					},
					"preauthExpiryAt": {
						"format": "date-time",
						"type": "string",
						"description": "Preauth Expires at."
					},
					"preauthReference": {
						"type": "string",
						"description": "Unique Payment Reference for the payment done."
					},
					"preauthStatus": {
						"type": "string",
						"description": "Current Status of the payment. Expected Statuses\n\n1. Pending\tThis Payment is waiting be to processed\n2. Error - This Payment has encountered an Error\n3. Submitted - This Payment was successfully submitted\n4. Successful - This Payment was successful\n5. Successful(Recalled) - This Payment was Recalled\n6. Successful(Refunded) - This Payment was Refunded\n7. Successful (Refunded) (Recalled) - This Payment was Refunded and Recalled\n8. Failed - This Payment has Failed\n9. Cancelled - This Payment was Cancelled\n10. Suppressed - This Payment was Suppressed\n11. InProgress - This Payment is being processed."
					},
					"processingDate": {
						"format": "date-time",
						"type": "string",
						"description": "Processing Date for the payment. Date Format: yyyy-MM-ddTHH:mm:ss, TimeZone: AEST."
					},
					"processorReference": {
						"type": "string",
						"description": "Processor reference for the payment done."
					},
					"recalledOn": {
						"format": "date-time",
						"type": "string",
						"description": "Recalled date. Date Format: yyyy-MM-ddTHH:mm:ss, TimeZone: AEST (Conditional)."
					},
					"recalledReason": {
						"type": "string",
						"description": "Reason. (Conditional)."
					},
					"recalledTransactionReference": {
						"type": "string",
						"description": "RecalledTransactionReference : If a charge transaction is recalled then this is transaction reference of recall transaction.(Conditional)."
					},
					"redirectUrl": {
						"type": "string",
						"description": "3DSecure redirect url to complete the 3DSecure challege if required by the scheme."
					},
					"refundedOn": {
						"format": "date-time",
						"type": "string",
						"description": "Refunded date. Date Format: yyyy-MM-ddTHH:mm:ss, TimeZone: AEST (Conditional)."
					},
					"refundedReason": {
						"type": "string",
						"description": "Reason. (Conditional)."
					},
					"refundedTransactionReference": {
						"type": "string",
						"description": "RefundedTransactionReference : If a charge transaction is refunded then this is transaction reference of refunded transaction.(Conditional)."
					},
					"remainingPreauthAmount": {
						"format": "double",
						"type": "number",
						"description": "Remaining preauth amount after one or more captures."
					},
					"retryPaymentReference": {
						"type": "string",
						"description": "Retry payment reference. (Conditional)."
					},
					"retryScheduledOn": {
						"format": "date-time",
						"type": "string",
						"description": "Retry payment scheduled date. Date Format: yyyy-MM-ddTHH:mm:ss, TimeZone: AEST (Conditional)."
					},
					"settlementDate": {
						"format": "date-time",
						"type": "string",
						"description": "Settlement Date for the payment. This is a calculated date and may change until the payment been settled. Date Format: yyyy-MM-ddTHH:mm:ss, TimeZone: AEST."
					},
					"transactionType": {
						"enum": [
							1,
							2,
							3,
							4,
							5,
							6,
							7,
							8,
							9,
							10
						],
						"format": "int32",
						"type": "integer",
						"x-enumDescriptions": {
							"1": "Charge",
							"2": "InvoicePayment",
							"3": "Refund",
							"4": "Chargeback",
							"5": "Recall",
							"6": "FixedTermSettlement",
							"7": "SponsorInvoicePayment",
							"8": "MerchantSettlementAdjustmentPayment",
							"9": "Preauthorization",
							"10": "Credit"
						},
						"description": "Transaction type numeric code."
					},
					"transactionTypeDisplay": {
						"type": "string",
						"description": "Transaction Type. Possible values:\n\n1. Charge\n2. Invoice\n3. Refund\n4. Chargeback\n5. Recall\n6. Fixed Term Settlement."
					}
				},
				"type": "object",
				"title": "Preauthorization Result",
				"description": "Preauthorization response including status, amounts, fees, and settlement details. Fields marked as conditional are only returned under certain conditions."
			},
			"PreconditionFailedResponse": {
				"properties": {
					"errorCode": {
						"readOnly": true,
						"type": "string",
						"description": "Error code."
					},
					"errorMessage": {
						"readOnly": true,
						"type": "string",
						"description": "Error message."
					}
				},
				"type": "object",
				"title": "Precondition Failed Response",
				"description": "Error response returned when a precondition check fails."
			},
			"Pricing": {
				"properties": {
					"customerFee": {
						"format": "double",
						"type": "number",
						"description": "Fee paid by the customer."
					},
					"merchantFee": {
						"format": "double",
						"type": "number",
						"description": "Fee paid by the merchant."
					},
					"paymentAmount": {
						"format": "double",
						"type": "number",
						"description": "Payment amount i.e. base amount excluding any fee."
					},
					"processingAmount": {
						"format": "double",
						"type": "number",
						"description": "Total amount charged to the card, including any fee."
					}
				},
				"type": "object",
				"title": "Pricing",
				"description": "Applicable fee for the card used."
			},
			"PricingResponse": {
				"properties": {
					"pricing": {
						"$ref": "#/components/schemas/Pricing",
						"description": "Applicable pricing based on provided card and payment details."
					}
				},
				"type": "object",
				"title": "Pricing Response",
				"description": "Pricing response including applicable fees."
			},
			"RefundRequest": {
				"properties": {
					"refundAmount": {
						"format": "double",
						"type": "number",
						"description": "Refund Amount (Conditional). Amount is required when Refund Value is 'Partial' (2)."
					},
					"refundRequestReason": {
						"maxLength": 50,
						"type": "string",
						"description": "Reason for the refund request."
					},
					"refundRequestUniqueId": {
						"maxLength": 50,
						"type": "string",
						"description": "Refund Request Unique Id."
					},
					"refundValue": {
						"enum": [
							1,
							2,
							3
						],
						"format": "int32",
						"type": "integer",
						"x-enumDescriptions": {
							"1": "Base",
							"2": "Partial",
							"3": "Full"
						},
						"description": "Refund value - Defaults to 'BaseAmount' (1) if not passed."
					}
				},
				"required": [
					"refundValue",
					"refundRequestReason"
				],
				"type": "object",
				"title": "Refund Request",
				"description": "Refund request including refund value and optional merchant unique ID."
			},
			"RefundResponse": {
				"properties": {
					"additionalReference": {
						"type": "string",
						"description": "Additional Reference."
					},
					"cancelReason": {
						"type": "string",
						"description": "Reason for the refund request cancellation. This field will returned only if the status is 'Canceled'."
					},
					"merchantCode": {
						"type": "string",
						"description": "Merchant code."
					},
					"merchantName": {
						"type": "string",
						"description": "Merchant trading name."
					},
					"paymentReference": {
						"type": "string",
						"description": "Payment Reference."
					},
					"refundAmount": {
						"format": "double",
						"type": "number",
						"description": "Refund Amount."
					},
					"refundRequestUniqueId": {
						"type": "string",
						"description": "Refund Request Unique Id."
					},
					"refundValue": {
						"enum": [
							1,
							2,
							3
						],
						"format": "int32",
						"type": "integer",
						"x-enumDescriptions": {
							"1": "Base",
							"2": "Partial",
							"3": "Full"
						},
						"description": "Refund value."
					},
					"refundValueString": {
						"readOnly": true,
						"type": "string",
						"description": "Refund value (Human readable)."
					},
					"rejectReason": {
						"type": "string",
						"description": "Reason for the refund request rejected. This field will returned only if the status is 'Rejected'."
					},
					"requestReason": {
						"type": "string",
						"description": "Reason for the refund request."
					},
					"requestStatus": {
						"format": "int32",
						"type": "integer",
						"description": "Refund request status."
					},
					"requestStatusString": {
						"type": "string",
						"description": "Refund request status (Human readable)."
					}
				},
				"type": "object",
				"title": "Refund Result",
				"description": "Refund request response including status and refund reference."
			},
			"RequestPayRequest": {
				"properties": {
					"merchantUniqueRequestBatchId": {
						"maxLength": 50,
						"type": "string",
						"description": "Unique batch id provided by the merchant."
					},
					"requestPaymentEntries": {
						"items": {
							"$ref": "#/components/schemas/RequestPayRequestRecord"
						},
						"type": "array",
						"description": "Collection of RequestPayment entry."
					}
				},
				"required": [
					"requestPaymentEntries"
				],
				"type": "object",
				"title": "Request Pay Batch Request",
				"description": "Container for request-to-pay entries. Root element containing a collection of RequestPayEntry."
			},
			"RequestPayRequestRecord": {
				"properties": {
					"customerReference": {
						"type": "string",
						"description": "Customer reference in individual payment request entry."
					},
					"email": {
						"type": "string",
						"description": "Customer email in individual payment request entry. Use comma or semicolon to provide more than one email address for a customer."
					},
					"firstName": {
						"type": "string",
						"description": "First name of the customer."
					},
					"lastName": {
						"type": "string",
						"description": "Last name of the customer."
					},
					"merchantUniquePaymentId": {
						"maxLength": 50,
						"type": "string",
						"description": "Unique payment id provided by the merchant. Can be used when Proxy payment is performed. (Optional)."
					},
					"mobile": {
						"pattern": "^(04[0-9]{8}|02[0-9]{7,8})$",
						"type": "string",
						"description": "Customer mobile in individual payment request entry."
					},
					"paymentAmount": {
						"format": "double",
						"maximum": 1.7976931348623157e+308,
						"minimum": 0.01,
						"type": "number",
						"description": "Payment amount in individual payment request entry."
					}
				},
				"required": [
					"customerReference",
					"paymentAmount",
					"firstName"
				],
				"type": "object",
				"title": "Request Pay Entry Request",
				"description": "Individual request-to-pay entry submitted by the client."
			},
			"RequestPayResponse": {
				"properties": {
					"merchantCode": {
						"type": "string",
						"description": "Merchant code."
					},
					"merchantName": {
						"type": "string",
						"description": "Merchant trading name."
					},
					"merchantUniqueRequestBatchId": {
						"type": "string",
						"description": "Unique request pay batch id provided by the merchant."
					},
					"requestPayId": {
						"format": "int32",
						"type": "integer",
						"description": "Id of RequestPay for call to Uploading."
					},
					"warningMessages": {
						"type": "string",
						"description": "WarningMessages after processing batch."
					}
				},
				"type": "object",
				"title": "Request Pay Response",
				"description": "Request-to-pay response returned after submission."
			},
			"SessionRequest": {
				"properties": {
					"additionalReference": {
						"type": "string",
						"description": "Additional reference for reconciliation reports."
					},
					"allowSaveCardInformation": {
						"type": "boolean",
						"description": "Optional. This will allow to save the card information. Defaults to 'false' if not provided. This option will only work if 'Enable Plugin Pay &amp; Save Card' option is enabled at program or merchant level."
					},
					"allowedPaymentMethods": {
						"$ref": "#/components/schemas/PluginPaymentMethods",
						"description": "Allowed Payment methods."
					},
					"apiKey": {
						"type": "string",
						"description": "Set by the plugin. Leave it out of your request."
					},
					"businessNumber": {
						"type": "string",
						"description": "Optional. Business Number (For example: ABN). Used for reward programs if the Program is enabled to provide reward points."
					},
					"callbackUrl": {
						"type": "string",
						"description": "Optional. The URL will be called with HTTP POST method to submit the result. Refer to Payment Plugin documentation for payment response payload."
					},
					"companyName": {
						"type": "string",
						"description": "Optional. Customer company name."
					},
					"contactNumber": {
						"type": "string",
						"description": "Optional. Contact number."
					},
					"customerEmail": {
						"type": "string",
						"description": "Required. Email address to which invoice will be emailed if the merchant is configured. It is mandatory from V4."
					},
					"customerName": {
						"type": "string",
						"description": "Conditional. Required if mode is set to 0 or 2."
					},
					"customerReference": {
						"type": "string",
						"description": "Conditional. Required if mode is set to 0 or 2."
					},
					"customization": {
						"$ref": "#/components/schemas/PluginCustomization",
						"description": "Optional. Fields to customize the plugin fields."
					},
					"departureDate": {
						"format": "date-time",
						"type": "string",
						"description": "Conditional. DepartureDate is required for Slice Pay. Provide date in UTC ISO 8601 format as departureDate. format: yyyy-MM-dd."
					},
					"displayMode": {
						"enum": [
							0,
							1
						],
						"format": "int32",
						"type": "integer",
						"x-enumDescriptions": {
							"0": "Default",
							"1": "RedirectUrl"
						},
						"description": "Optional. Must be one of the following two values 0 - Default(Modal) 1 - Redirect Url. Defaults to 0 if not provided. *Google Pay and Apple Pay works if Modal or Redirect Url with iframe is used."
					},
					"endpointUrl": {
						"type": "string",
						"description": "Endpoint url of the plugin. Just provide the base url. For example: https://pay.travelpay.com.au."
					},
					"fingerprint": {
						"type": "string",
						"description": "Set by the plugin. Leave it out of your request."
					},
					"hideTermsAndConditions": {
						"type": "boolean",
						"description": "Optional. This will hide the Terms and Conditions. Defaults to 'false' if not provided."
					},
					"isJsPlugin": {
						"type": "boolean",
						"description": "Is JS Plugin. Default is true. Set to false if you want to use without iframe."
					},
					"merchantCode": {
						"type": "string",
						"description": "Merchant code. Make sure the merchant code is related to the API credentials."
					},
					"merchantUniquePaymentId": {
						"type": "string",
						"description": "Required. Payment id provided by the merchant. Must be unique and can not be reused if a transaction is processed using this id. This field also work as IdempotencyKey for request for successful requests."
					},
					"mode": {
						"enum": [
							0,
							1,
							2,
							3
						],
						"format": "int32",
						"type": "integer",
						"x-enumDescriptions": {
							"0": "DefaultPayment",
							"1": "Tokenise",
							"2": "CustomPayment",
							"3": "Preauth"
						},
						"description": "Optional. Must be one of the following three values 0 - Make Payment 1 - Tokenise 2 - Custom Payment 3 - Preauthorization. Defaults to 0 if not provided."
					},
					"overrideFeePayer": {
						"enum": [
							0,
							1,
							2
						],
						"format": "int32",
						"type": "integer",
						"x-enumDescriptions": {
							"0": "Default",
							"1": "Merchant",
							"2": "Customer"
						},
						"description": "Optional. Must be one of the following three values 0 - Default(based on pricing profile) 1 - Merchant(Merchant will pay the fee regardless of pricing profile setting) 2 - Customer(Customer will pay the fee regardless of pricing profile setting) Defaults to 0 if not provided."
					},
					"paymentAccountProxy": {
						"type": "string",
						"description": "Conditional. Use this parameter to make a payment using a payment account proxy which is generated using mode '1'."
					},
					"paymentAmount": {
						"format": "double",
						"type": "number",
						"description": "Conditional. Required if mode is set to 0 or 2. Returns applicable fee if provided with mode 1."
					},
					"redirectOnError": {
						"type": "boolean",
						"description": "All errors/exceptions will be return back the caller using the redirect url."
					},
					"redirectUrl": {
						"type": "string",
						"description": "Required. The page will redirect to this URL with the result in the query string. Refer the return parameters section below."
					},
					"sendConfirmationEmailToCustomer": {
						"type": "boolean",
						"description": "Optional. This will send confirmation email to customer. Defaults to 'false' if not provided."
					},
					"sendConfirmationEmailToMerchant": {
						"type": "boolean",
						"description": "Optional. This will send confirmation email to merchant. Defaults to 'false' if not provided."
					},
					"showFailedPaymentFeeOnTokenising": {
						"type": "boolean",
						"description": "Optional if mode is set to 1. Show the applicable failed payment fees for the token at the end of the process.Default is false."
					},
					"showFeeOnTokenising": {
						"type": "boolean",
						"description": "Required if mode is set to 1. Show the applicable fees for the token at the end of the process.Default is false."
					},
					"sku1": {
						"type": "string",
						"description": "Optional. Stock Keeping Unit - Optional text fields, allowing up to 50 alphanumeric characters. If the value exceeds 50 characters, only the first 50 characters will be retained and the rest discarded."
					},
					"sku2": {
						"type": "string",
						"description": "Optional Stock Keeping Unit - Optional text fields, allowing up to 50 alphanumeric characters. If the value exceeds 50 characters, only the first 50 characters will be retained and the rest discarded."
					},
					"timestamp": {
						"examples": [
							"2025-10-01T02:15:56"
						],
						"format": "date-time",
						"type": "string",
						"description": "Required. Timestamp is required from v4. Provide current datetime in UTC ISO 8601 format as timestamp. format: yyyy-MM-ddTHH:mm:ss."
					},
					"userMode": {
						"enum": [
							0,
							1
						],
						"format": "int32",
						"type": "integer",
						"x-enumDescriptions": {
							"0": "Customer",
							"1": "Merchant"
						},
						"description": "Optional. Must be one of the following two values 0 - Customer Facing - default (cardholder must enter CCV or 3DS) 1 - Merchant Facing(for merchant use only - no CCV or 3DS) - if supported by merchant options."
					},
					"version": {
						"enum": [
							1,
							2,
							3,
							4,
							5
						],
						"format": "int32",
						"type": "integer",
						"x-enumDescriptions": {
							"1": "v1",
							"2": "v2",
							"3": "v3",
							"4": "v4",
							"5": "v5"
						},
						"description": "Required. Plugin version. Always use the latest."
					}
				},
				"required": [
					"version",
					"endpointUrl",
					"merchantCode",
					"isJsPlugin",
					"mode",
					"userMode",
					"displayMode",
					"redirectUrl",
					"merchantUniquePaymentId",
					"timestamp"
				],
				"type": "object",
				"title": "Hosted Payment Session Request",
				"description": "Session creation request including payment mode, version, and customization options."
			},
			"SessionResponse": {
				"properties": {
					"endpointUrl": {
						"type": "string",
						"description": "Payment plugin endpoint url."
					},
					"expiresAt": {
						"format": "date-time",
						"type": "string",
						"description": "Expiry of the secure token."
					},
					"secureToken": {
						"type": "string",
						"description": "Token used to initialize the payment plugin."
					}
				},
				"type": "object",
				"title": "Hosted Payment Session Response",
				"description": "Session response containing the secure token, expiry, and payment plugin endpoint URL."
			},
			"SettlementPayment": {
				"properties": {
					"fundsToMerchant": {
						"format": "double",
						"type": "number",
						"description": "Amount to be settled to the merchant."
					},
					"merchantSettlementDate": {
						"format": "date-time",
						"type": "string",
						"description": "Date payment will be settled to the merchant."
					},
					"processedOn": {
						"format": "date-time",
						"type": "string",
						"description": "Processing date. Date Format: yyyy-MM-ddTHH:mm:ss, TimeZone: AEST."
					},
					"status": {
						"type": "string",
						"description": "Current Status of the balance payment. Expected Statuses\n\n1. Pending\n2. Error\n3. Submitted\n4. Successful\n5. Failed\n6. Cancelled\n7. Suppressed\n8. InProgress."
					},
					"transactionReference": {
						"type": "string",
						"description": "TransactionReference."
					}
				},
				"type": "object",
				"title": "Settlement Payment",
				"description": "Settlement payment details including processing date, status, settlement date, and funds to merchant."
			},
			"SubPayment": {
				"properties": {
					"customerFee": {
						"format": "double",
						"type": "number",
						"description": "Fee charged on Customer."
					},
					"merchantFee": {
						"format": "double",
						"type": "number",
						"description": "Fee charged on Merchant."
					},
					"paymentAmount": {
						"format": "double",
						"type": "number",
						"description": "Total payment amount including the fees."
					},
					"processedOn": {
						"format": "date-time",
						"type": "string",
						"description": "Refund/Recall date. Date Format: yyyy-MM-ddTHH:mm:ss, TimeZone: AEST (Conditional)."
					},
					"reason": {
						"type": "string",
						"description": "Reason. (Conditional)."
					},
					"status": {
						"type": "string",
						"description": "Current Status of the refund/recall. Expected Statuses\n\n1. Pending\tThis refund/recall is waiting be to processed\n2. Error - This refund/recall has encountered an Error\n3. Submitted - This refund/recall was successfully submitted\n4. Successful - This refund/recall was successful\n5. Failed - This refund/recall has Failed\n6. Cancelled - This refund/recall was Cancelled\n7. Suppressed - This refund/recall was Suppressed\n8. InProgress - This refund/recall is being processed."
					},
					"transactionReference": {
						"type": "string",
						"description": "TransactionReference : If a charge transaction is refunded/recalled then this is transaction reference of that transaction.(Conditional)."
					}
				},
				"type": "object",
				"title": "Sub Payment",
				"description": "Refund or recall transaction details including date, fees, amount, reason, and status."
			},
			"ThreeDSecureBrowserData": {
				"properties": {
					"acceptHeader": {
						"type": "string",
						"description": "Exact content of the HTTP accept headers as sent to the 3DS Requestor from the Cardholder's browser."
					},
					"colorDepth": {
						"format": "int32",
						"type": "integer",
						"description": "Value representing the bit depth of the colour palette for displaying images, in bits per pixel. Obtained from Cardholder browser using the screen.colorDepth property. Possible values: 1, 4, 8, 15, 16, 24, 32, 48."
					},
					"ipAddress": {
						"type": "string",
						"description": "IP address of the browser as returned by the HTTP headers to the 3DS Requestor."
					},
					"language": {
						"type": "string",
						"description": "Value representing the browser language as defined in IETF BCP47. The value is limited to 1-8 characters. Value is returned from navigator.language property."
					},
					"screenHeight": {
						"format": "int32",
						"type": "integer",
						"description": "Total height of the Cardholder's screen in pixels. Value is returned from the screen.height property."
					},
					"screenWidth": {
						"format": "int32",
						"type": "integer",
						"description": "Total width of the Cardholder's screen in pixels. Value is returned from the screen.width property."
					},
					"timezone": {
						"type": "string",
						"description": "Time difference between UTC time and the Cardholder browser local time, in minutes. The field is limited to 1-5 characters where the value is returned from the getTimezoneOffset() method."
					},
					"userAgent": {
						"type": "string",
						"description": "Exact content of the HTTP user-agent header. The field is limited to maximum 2048 characters. Obtained from Cardholder browser using the navigator.userAgent property."
					}
				},
				"type": "object",
				"title": "3D Secure Browser Data",
				"description": "Cardholder browser data collected for 3D Secure authentication."
			},
			"ThreeDSecureData": {
				"properties": {
					"browserData": {
						"$ref": "#/components/schemas/ThreeDSecureBrowserData",
						"description": "Cardholder's browser data. Mandatory if UseThreeDSecure is true."
					},
					"callbackUrl": {
						"type": "string",
						"description": "Endpoint to receive status notifications once 3DSecure is completed. Use [uniqueId] (case sensitive) in URL to differentiate different payments and 3DS statuses For example: CallbackUrl https://www.yourdomain.com.au/3dsecure/[uniqueId] will be translated to https://www.yourdomain.com.au/callbacks/123456 assuming uniqueId is 123456."
					},
					"redirectUrl": {
						"type": "string",
						"description": "Redirect URL used to redirect once the 3DSecure process is completed. Use [uniqueId], [status] (case sensitive) in URL to differentiate different payments and 3DS statuses For example: RedirectUrl https://www.yourdomain.com.au/3dsecure/[uniqueId]?status=[status] will be translated to https://www.yourdomain.com.au/3dsecure/123456?status=Success assuming uniqueId is 123456 Possible 3DSecure statuses: Success, Failed, Cancelled."
					},
					"useThreeDSecure": {
						"type": "boolean",
						"description": "Will trigger 3DSecure process if enabled or valid for the card."
					}
				},
				"type": "object",
				"title": "3D Secure Data",
				"description": "3D Secure authentication configuration including browser data, callback URL, and redirect URL."
			},
			"TokenResponse": {
				"properties": {
					"cardNumber": {
						"type": "string",
						"description": "Obfuscated card number."
					},
					"cardProxy": {
						"type": "string",
						"description": "Card proxy that can be used to process payment."
					},
					"cardType": {
						"type": "string",
						"description": "Card type (Visa, MasterCard etc.)."
					},
					"expiry": {
						"type": "string",
						"description": "Card expiry in MM/yy format."
					},
					"status": {
						"readOnly": true,
						"type": "string",
						"description": "Proxy status."
					}
				},
				"type": "object",
				"title": "Card Proxy Token Response",
				"description": "Card proxy token response including card proxy value, obfuscated card number, expiry, card type, and status."
			},
			"ValueProviderResult": {
				"properties": {
					"attemptedValue": {
						"readOnly": true,
						"type": "string",
						"description": "Gets or sets the raw value that is converted to a string for display."
					},
					"culture": {
						"readOnly": true,
						"type": "string",
						"description": "Gets or sets the culture."
					},
					"rawValue": {
						"readOnly": true,
						"type": "object",
						"description": "Gets or set the raw value that is supplied by the value provider."
					}
				},
				"type": "object",
				"title": "Validation Result",
				"description": "Represents the result of binding a value (such as from a form post or query string) to an action-method argument property, or to the argument itself."
			},
			"VoidCardResponse": {
				"properties": {
					"failureCode": {
						"type": "string",
						"description": "Failure code if the payment failed. Please refer: http://tinyurl.com/y6lkmpsv for more details. (Conditional)."
					},
					"failureReason": {
						"type": "string",
						"description": "Failure reason if the payment failed. (Conditional)."
					},
					"preauthReference": {
						"type": "string",
						"description": "Unique Payment Reference for the payment done."
					},
					"status": {
						"type": "string",
						"description": "Current Status of the void. Expected Statuses\n\n1. Pending\tThis Payment is waiting be to processed\n2. Error - This Payment has encountered an Error\n3. Submitted - This Payment was successfully submitted\n4. Successful - This Payment was successful\n5. Successful(Recalled) - This Payment was Recalled\n6. Successful(Refunded) - This Payment was Refunded\n7. Successful (Refunded) (Recalled) - This Payment was Refunded and Recalled\n8. Failed - This Payment has Failed\n9. Cancelled - This Payment was Cancelled\n10. Suppressed - This Payment was Suppressed\n11. InProgress - This Payment is being processed."
					}
				},
				"type": "object",
				"title": "Preauthorization Void Result",
				"description": "Void preauthorization response including status and transaction details. Fields marked as conditional are only returned under certain conditions."
			}
		},
		"securitySchemes": {
			"Api-Key": {
				"description": "Program API key. Required together with Basic credentials — neither authenticates alone.",
				"in": "header",
				"name": "Api-Key",
				"type": "apiKey"
			},
			"BasicAuth": {
				"description": "Program username and password. Required together with the `Api-Key` header — neither authenticates alone.",
				"scheme": "basic",
				"type": "http"
			}
		}
	},
	"info": {
		"contact": {
			"email": "integrations@zenithpayments.com.au",
			"name": "ZenPay Integrations Team",
			"url": "https://docs.zenithpayments.support"
		},
		"description": "ZenPay v2 REST Payment API. Supports:\n\n- Payments\n- Preauths\n- Refunds\n- CreditRequests\n- BatchPayments\n- Customers\n- CardProxies\n- Proxies\n- RequestPays\n- Sessions\n- Diagnostics",
		"title": "Merchant APIs",
		"version": "v2",
		"x-swagger-net-version": "8.4.19.001"
	},
	"openapi": "3.2.0",
	"paths": {
		"/v2/batchpayments": {
			"post": {
				"operationId": "BatchPayments_Create",
				"parameters": [],
				"requestBody": {
					"content": {
						"application/json": {
							"examples": {
								"Batch created": {
									"description": "One batch with one entry, accepted. `batchPaymentId` and the `Location` header both identify the new batch.",
									"value": {
										"batchPaymentEntries": [
											{
												"customerReference": "cust-batch-7880558552220",
												"merchantUniquePaymentId": "bp-3ff90e78-23a8-40f2-92fd-1ce108aa189f",
												"paymentAccountProxy": "73898fe3d1044245adbcc1b9b597dc11",
												"paymentAmount": 1
											}
										],
										"merchantUniqueBatchId": "batch-770de16d-8d02-4fbc-a146-0bc16b6ff564"
									}
								}
							},
							"schema": {
								"$ref": "#/components/schemas/BatchPaymentRequest"
							}
						},
						"application/x-www-form-urlencoded": {
							"schema": {
								"$ref": "#/components/schemas/BatchPaymentRequest"
							}
						}
					},
					"required": true,
					"description": "Collection of batch payment entries inside a container required to create a batch payment."
				},
				"responses": {
					"201": {
						"content": {
							"application/json": {
								"examples": {
									"Batch created": {
										"description": "One batch with one entry, accepted. `batchPaymentId` and the `Location` header both identify the new batch.",
										"value": {
											"batchPaymentId": 7161,
											"merchantCode": "1337",
											"merchantName": "Menethil",
											"merchantUniqueBatchId": "batch-770de16d-8d02-4fbc-a146-0bc16b6ff564",
											"warningMessages": ""
										}
									}
								},
								"schema": {
									"$ref": "#/components/schemas/BatchPaymentResponse"
								}
							}
						},
						"links": {
							"GetBatchPayment": {
								"description": "The batch summary — dates, total entries, total amount and status. The entries themselves are a separate call.",
								"operationId": "BatchPayments_Get",
								"parameters": {
									"batchPaymentId": "$response.body#/batchPaymentId"
								}
							},
							"GetBatchPaymentEntries": {
								"description": "The individual entries, each with its customer, amount and entry status.",
								"operationId": "BatchPayments_ListEntries",
								"parameters": {
									"batchPaymentId": "$response.body#/batchPaymentId"
								}
							}
						},
						"description": "Batch payment created successfully."
					},
					"300": {
						"content": {
							"application/json": {
								"examples": {
									"Batch id resent after the first finished": {
										"description": "The same `merchantUniqueBatchId` resent after the first batch completed. No new batch: the `Location` header returns the original `batchPaymentId`.",
										"value": {
											"message": "The merchant unique id already exists."
										}
									}
								},
								"schema": {
									"$ref": "#/components/schemas/AmbiguousResult"
								}
							}
						},
						"headers": {
							"Location": {
								"description": "Absolute URL of the original batch payment (its last path segment is the batchPaymentId).",
								"schema": {
									"type": "string"
								}
							}
						},
						"links": {
							"GetOriginalBatchPayment": {
								"description": "This status means the merchantUniqueBatchId was already used and no new batch was created. The Location header holds the absolute URL of the original batch; its last path segment is the batchPaymentId this operation takes. No parameter expression is given because a runtime expression cannot take the last segment of a URL.",
								"operationId": "BatchPayments_Get"
							}
						},
						"description": "Duplicate merchant unique id. The response will have 'Location' header which will have the orginal batch payment."
					},
					"400": {
						"content": {
							"application/json": {
								"examples": {
									"Batch id resent immediately": {
										"description": "The same `merchantUniqueBatchId` resent while the first was still processing, refused with the reason under `modelState`.",
										"value": {
											"message": "The request is invalid.",
											"modelState": {
												"merchantUniqueBatchId": [
													"This request has already been processed. Please use a new MerchantUniqueBatchId for a new request."
												]
											}
										}
									}
								},
								"schema": {
									"additionalProperties": {
										"$ref": "#/components/schemas/ModelState"
									},
									"type": "object"
								}
							}
						},
						"description": "Invalid batch payment details."
					},
					"500": {
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/InternalServerErrorResult"
								}
							}
						},
						"description": "Something went wrong. Batch payment may or may not be created."
					}
				},
				"security": [
					{
						"Api-Key": [],
						"BasicAuth": []
					}
				],
				"tags": [
					"BatchPayments"
				],
				"summary": "Create a batch payment",
				"description": "Creates a batch payment from the supplied request payload."
			}
		},
		"/v2/batchpayments/{batchPaymentId}": {
			"get": {
				"operationId": "BatchPayments_Get",
				"parameters": [
					{
						"in": "path",
						"name": "batchPaymentId",
						"required": true,
						"schema": {
							"format": "int32",
							"type": "integer"
						},
						"description": "The unique batch payment identifier."
					}
				],
				"responses": {
					"200": {
						"content": {
							"application/json": {
								"examples": {
									"Completed batch": {
										"description": "The batch once `status` reads `Completed`. Whether each payment succeeded is on the entries endpoint, not here.",
										"value": {
											"merchantCode": "1337",
											"merchantName": "Menethil",
											"merchantUniqueBatchId": "batch-770de16d-8d02-4fbc-a146-0bc16b6ff564",
											"processingDate": "2026-09-24T00:41:05.01",
											"status": "Completed",
											"submittedDate": "2026-09-24T00:36:46.94",
											"totalAmount": 1,
											"totalEntries": 1
										}
									},
									"Pending batch": {
										"description": "The batch while `status` is still `Pending`. Poll until it reads `Completed`.",
										"value": {
											"merchantCode": "1337",
											"merchantName": "Menethil",
											"merchantUniqueBatchId": "batch-770de16d-8d02-4fbc-a146-0bc16b6ff564",
											"processingDate": "2026-09-24T00:36:46.893",
											"status": "Pending",
											"submittedDate": "2026-09-24T00:36:46.94",
											"totalAmount": 1,
											"totalEntries": 1
										}
									}
								},
								"schema": {
									"items": {
										"$ref": "#/components/schemas/ApiBatchPaySummary"
									},
									"type": "array"
								}
							}
						},
						"description": "Batch Payment summary."
					},
					"404": {
						"content": {
							"application/json": {
								"schema": {
									"type": "object"
								}
							}
						},
						"description": "Batch payment not found."
					},
					"500": {
						"content": {
							"application/json": {
								"schema": {
									"type": "object"
								}
							}
						},
						"description": "Unable to get the batch payment."
					}
				},
				"security": [
					{
						"Api-Key": [],
						"BasicAuth": []
					}
				],
				"tags": [
					"BatchPayments"
				],
				"summary": "Get a batch payment",
				"description": "Returns the batch payment for the specified batch payment ID."
			}
		},
		"/v2/batchpayments/{batchPaymentId}/entries": {
			"get": {
				"operationId": "BatchPayments_ListEntries",
				"parameters": [
					{
						"in": "path",
						"name": "batchPaymentId",
						"required": true,
						"schema": {
							"format": "int32",
							"type": "integer"
						},
						"description": "The unique batch payment identifier."
					}
				],
				"responses": {
					"200": {
						"content": {
							"application/json": {
								"examples": {
									"Entry for an unknown customer": {
										"description": "An entry whose `customerReference` matched no customer. The response is still 200, so entry failures show in `entryStatus`, not the HTTP status.",
										"value": [
											{
												"cardTypeValue": 0,
												"customerReference": "no-such-customer-ref",
												"entryStatus": "Customer not found",
												"isPaymentRecalled": false,
												"isPaymentRefunded": false,
												"isPaymentRetryScheduled": false,
												"merchantCode": "1337",
												"merchantName": "Menethil",
												"merchantUniquePaymentId": "bp-949b6ff2-0f7e-46e5-a474-46dd7b172862",
												"paymentAmount": 1,
												"paymentStatus": ""
											}
										]
									},
									"Pending entry": {
										"description": "An entry not yet processed: no payment reference, fees or processed amount yet.",
										"value": [
											{
												"cardTypeValue": 0,
												"customerName": "Test Card",
												"customerReference": "cust-batch-7880558552220",
												"entryStatus": "BatchPay Entry Pending",
												"isPaymentRecalled": false,
												"isPaymentRefunded": false,
												"isPaymentRetryScheduled": false,
												"merchantCode": "1337",
												"merchantName": "Menethil",
												"merchantUniquePaymentId": "bp-3ff90e78-23a8-40f2-92fd-1ce108aa189f",
												"paymentAmount": 1,
												"paymentStatus": ""
											}
										]
									},
									"Processed entry": {
										"description": "A processed entry, carrying its `paymentReference`, the fee split and the masked card number.",
										"value": [
											{
												"baseAmount": 1,
												"cardCategory": "International Cards",
												"cardTypeString": "MasterCard",
												"cardTypeValue": 2,
												"customerFee": 0,
												"customerName": "Test Card",
												"customerReference": "cust-batch-7880558552220",
												"entryStatus": "BatchPay Entry Processed",
												"isPaymentRecalled": false,
												"isPaymentRefunded": false,
												"isPaymentRetryScheduled": false,
												"lastDigits": "555555XXXXXX4444",
												"merchantCode": "1337",
												"merchantFee": 0.05,
												"merchantName": "Menethil",
												"merchantUniquePaymentId": "bp-3ff90e78-23a8-40f2-92fd-1ce108aa189f",
												"merchantWithheldAmount": 1,
												"paymentAmount": 1,
												"paymentCard": "MasterCard",
												"paymentDate": "2026-09-24T00:40:36.03",
												"paymentMethod": "Credit / Debit Card",
												"paymentReference": "247446",
												"paymentResource": "https://api.sandbox.b2bpay.com.au/v2/payments/247446",
												"paymentStatus": "Successful",
												"processedAmount": 1,
												"processorReference": "d989e5ded6bc9fcec1f8",
												"settlementDate": "2026-09-25T00:00:00"
											}
										]
									}
								},
								"schema": {
									"items": {
										"$ref": "#/components/schemas/ApiBatchPayEntry"
									},
									"type": "array"
								}
							}
						},
						"description": "List of batch payment entries."
					},
					"404": {
						"content": {
							"application/json": {
								"schema": {
									"type": "object"
								}
							}
						},
						"description": "Batch payment not found."
					},
					"500": {
						"content": {
							"application/json": {
								"schema": {
									"type": "object"
								}
							}
						},
						"description": "Unable to get the batch payment."
					}
				},
				"security": [
					{
						"Api-Key": [],
						"BasicAuth": []
					}
				],
				"tags": [
					"BatchPayments"
				],
				"summary": "List batch payment entries",
				"description": "Returns the entries for the specified batch payment."
			}
		},
		"/v2/cardproxies": {
			"post": {
				"operationId": "CardProxies_Create",
				"requestBody": {
					"content": {
						"application/json": {
							"examples": {
								"Card tokenised with pricing": {
									"description": "Same basic request as above, plus a payment amount over 1, so the response comes back with the applicable fee — no 3-D Secure data needed to see pricing.",
									"value": {
										"cardHolderName": "Test Cardholder",
										"cardNumber": "5555555555554444",
										"customerUniqueId": "recap-1297842247644",
										"expiry": "12/29",
										"paymentAmount": 100
									}
								},
								"Card tokenised, 3-D Secure pending": {
									"description": "Shows the authentication handoff; token creation alone does not prove challenge completion.",
									"value": {
										"cardHolderName": "Test Cardholder",
										"cardNumber": "5555555555554444",
										"customerUniqueId": "recap-3ds-1824624376604",
										"expiry": "12/29",
										"paymentAmount": 1,
										"threeDSecureData": {
											"browserData": {
												"acceptHeader": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
												"colorDepth": 24,
												"ipAddress": "203.0.113.10",
												"language": "en-AU",
												"screenHeight": 1080,
												"screenWidth": 1920,
												"timezone": "-600",
												"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36"
											},
											"callbackUrl": "https://httpbin.org/post?uniqueId=[uniqueId]&status=[status]",
											"redirectUrl": "https://httpbin.org/get",
											"useThreeDSecure": true
										}
									}
								},
								"Card tokenised, basic request": {
									"description": "Smallest captured successful tokenisation request; the same customerUniqueId sent again is the paired 409 below.",
									"value": {
										"cardHolderName": "Test Cardholder",
										"cardNumber": "5555555555554444",
										"customerUniqueId": "dup-6052133113378",
										"expiry": "12/29"
									}
								}
							},
							"schema": {
								"$ref": "#/components/schemas/CardProxyRequest"
							}
						},
						"application/x-www-form-urlencoded": {
							"schema": {
								"$ref": "#/components/schemas/CardProxyRequest"
							}
						}
					},
					"required": true,
					"description": "Card details required to create a card proxy."
				},
				"responses": {
					"201": {
						"content": {
							"application/json": {
								"examples": {
									"Card tokenised with pricing": {
										"description": "Same basic request as above, plus a payment amount over 1, so the response comes back with the applicable fee — no 3-D Secure data needed to see pricing.",
										"value": {
											"cardNumber": "555555XXXXXX4444",
											"cardProxy": "92879c54c08a45f9a0b92ffb6f1966c7",
											"cardType": "MasterCard",
											"expiry": "1229",
											"pricing": {
												"customerFee": 0,
												"merchantFee": 0,
												"paymentAmount": 100,
												"processingAmount": 100
											},
											"status": "Successful"
										}
									},
									"Card tokenised, 3-D Secure pending": {
										"description": "Shows the authentication handoff; token creation alone does not prove challenge completion.",
										"value": {
											"cardNumber": "555555XXXXXX4444",
											"cardProxy": "e1f1ef1e7e22468eaeaa42d9b5ed1d36",
											"cardType": "MasterCard",
											"expiry": "1229",
											"pricing": {
												"customerFee": 0,
												"merchantFee": 0,
												"paymentAmount": 1,
												"processingAmount": 1
											},
											"redirectUrl": "https://pay.sandbox.b2bpay.com.au/3dsecure/e1f1ef1e-7e22-468e-aeaa-42d9b5ed1d36/CardProxiesApi",
											"status": "PendingThreeDS"
										}
									},
									"Card tokenised, basic request": {
										"description": "Smallest captured successful tokenisation request; the same customerUniqueId sent again is the paired 409 below.",
										"value": {
											"cardNumber": "555555XXXXXX4444",
											"cardProxy": "93283bd2477b47dd856986300e3803f0",
											"cardType": "MasterCard",
											"expiry": "1229",
											"status": "Successful"
										}
									}
								},
								"schema": {
									"$ref": "#/components/schemas/CardProxyResponse"
								}
							}
						},
						"links": {
							"Delete": {
								"description": "Removes the token. Works on any token including one still pending 3D Secure, and on one already spent through a completed payment. There is no reverse direction.",
								"operationId": "CardProxies_Delete",
								"parameters": {
									"cardProxy": "$response.body#/cardProxy"
								}
							},
							"GetPaymentAccountProxy": {
								"description": "The same value read through the general proxy resource, which covers card and bank accounts. This is the only read that works for a token created with useThreeDSecure true.",
								"operationId": "Proxies_Get",
								"parameters": {
									"proxy": "$response.body#/cardProxy"
								}
							},
							"GetProxyTransactionFee": {
								"description": "Pricing through the general proxy resource. Not available for a token created with useThreeDSecure true, which returns 404 here.",
								"operationId": "Proxies_GetPricing",
								"parameters": {
									"paymentAmount": "$response.body#/pricing/paymentAmount",
									"proxy": "$response.body#/cardProxy"
								}
							},
							"GetTokenDetail": {
								"description": "Reads the token back. Returns fewer fields than this response did — no pricing and no status. A token created with useThreeDSecure true is NOT readable here even after a successful challenge; use the proxies link below instead.",
								"operationId": "CardProxies_Get",
								"parameters": {
									"cardProxy": "$response.body#/cardProxy"
								}
							},
							"GetTransactionFee": {
								"description": "Prices a payment on this token. paymentAmount is required and is a query parameter, not part of the path.",
								"operationId": "CardProxies_GetPricing",
								"parameters": {
									"cardProxy": "$response.body#/cardProxy",
									"paymentAmount": "$response.body#/pricing/paymentAmount"
								}
							}
						},
						"description": "Card authorisation is successful."
					},
					"400": {
						"content": {
							"application/json": {
								"schema": {
									"additionalProperties": {
										"$ref": "#/components/schemas/ModelState"
									},
									"type": "object"
								}
							}
						},
						"description": "Invalid input detail."
					},
					"403": {
						"content": {
							"application/json": {
								"examples": {
									"Tokenising not allowed": {
										"description": "A business rule specific to this operation (tokenisation switched off for the account), the same class as a declined-credit 412; document the permission status.",
										"value": ""
									}
								}
							}
						},
						"description": "The credential provided doesn't support this endpoint."
					},
					"409": {
						"description": "Customer unique id is already used."
					},
					"412": {
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/PreconditionFailedResponse"
								}
							}
						},
						"description": "Tokenisation failed."
					}
				},
				"security": [
					{
						"Api-Key": [],
						"BasicAuth": []
					}
				],
				"tags": [
					"CardProxies"
				],
				"summary": "Create a card proxy",
				"description": "Creates a card proxy from the supplied card details. Not recommended for software or sites that are not PCI DSS compliant. For an easy and secure card tokenisation and payment option, see the Payment Plugin."
			}
		},
		"/v2/cardproxies/{cardProxy}": {
			"delete": {
				"operationId": "CardProxies_Delete",
				"parameters": [
					{
						"in": "path",
						"name": "cardProxy",
						"required": true,
						"schema": {
							"type": "string"
						},
						"description": "The card proxy identifier."
					}
				],
				"responses": {
					"204": {
						"content": {
							"application/json": {
								"examples": {
									"Card proxy deleted": {
										"description": "Deleting a token answers 204 with an empty body.",
										"value": ""
									}
								}
							}
						},
						"description": "Card proxy deleted successfully."
					},
					"400": {
						"content": {
							"application/json": {
								"schema": {
									"additionalProperties": {
										"$ref": "#/components/schemas/ModelState"
									},
									"type": "object"
								}
							}
						},
						"description": "Invalid input detail."
					},
					"404": {
						"description": "Unable to find the Card proxy provided."
					}
				},
				"security": [
					{
						"Api-Key": [],
						"BasicAuth": []
					}
				],
				"tags": [
					"CardProxies"
				],
				"summary": "Delete a card proxy",
				"description": "Deletes the specified card proxy without affecting customers already registered with it."
			},
			"get": {
				"operationId": "CardProxies_Get",
				"parameters": [
					{
						"in": "path",
						"name": "cardProxy",
						"required": true,
						"schema": {
							"type": "string"
						},
						"description": "The card proxy identifier."
					}
				],
				"responses": {
					"200": {
						"content": {
							"application/json": {
								"examples": {
									"Card proxy details": {
										"description": "Baseline lookup for this operation.",
										"value": {
											"cardNumber": "555555XXXXXX4444",
											"cardProxy": "92879c54c08a45f9a0b92ffb6f1966c7",
											"cardType": "MasterCard",
											"expiry": "1229"
										}
									}
								},
								"schema": {
									"$ref": "#/components/schemas/TokenResponse"
								}
							}
						},
						"description": "Token response of the card proxy provided."
					},
					"400": {
						"content": {
							"application/json": {
								"schema": {
									"additionalProperties": {
										"$ref": "#/components/schemas/ModelState"
									},
									"type": "object"
								}
							}
						},
						"description": "Invalid input detail."
					},
					"404": {
						"description": "Unable to find the token response for the card proxy provided."
					}
				},
				"security": [
					{
						"Api-Key": [],
						"BasicAuth": []
					}
				],
				"tags": [
					"CardProxies"
				],
				"summary": "Get a card proxy",
				"description": "Returns the card proxy for the specified card proxy value."
			}
		},
		"/v2/cardproxies/{cardProxy}/pricing": {
			"get": {
				"operationId": "CardProxies_GetPricing",
				"parameters": [
					{
						"in": "path",
						"name": "cardProxy",
						"required": true,
						"schema": {
							"type": "string"
						},
						"description": "The card proxy identifier."
					},
					{
						"in": "query",
						"name": "paymentAmount",
						"required": true,
						"schema": {
							"format": "double",
							"type": "number"
						},
						"description": "The payment amount used to calculate pricing."
					}
				],
				"responses": {
					"200": {
						"content": {
							"application/json": {
								"examples": {
									"Card proxy pricing": {
										"description": "Baseline pricing lookup; keep paymentAmount in the query-parameter documentation.",
										"value": {
											"pricing": {
												"customerFee": 0,
												"merchantFee": 0,
												"paymentAmount": 1,
												"processingAmount": 1
											}
										}
									}
								},
								"schema": {
									"$ref": "#/components/schemas/PricingResponse"
								}
							}
						},
						"description": "Pricing response for card proxy and payment amount provided."
					},
					"400": {
						"content": {
							"application/json": {
								"schema": {
									"additionalProperties": {
										"$ref": "#/components/schemas/ModelState"
									},
									"type": "object"
								}
							}
						},
						"description": "Invalid input detail."
					},
					"404": {
						"description": "Unable to find the pricing response for the card proxy provided."
					}
				},
				"security": [
					{
						"Api-Key": [],
						"BasicAuth": []
					}
				],
				"tags": [
					"CardProxies"
				],
				"summary": "Get card proxy pricing",
				"description": "Returns pricing for the specified card proxy and payment amount."
			}
		},
		"/v2/credit-requests": {
			"post": {
				"operationId": "CreditRequests_Create",
				"requestBody": {
					"content": {
						"application/json": {
							"examples": {
								"Credit request created": {
									"description": "Shows submission and the resulting pending credit request.",
									"value": {
										"creditAmount": 1,
										"customerName": "Test Customer",
										"customerReference": "cr-1210180471651",
										"paymentAccountProxy": "858b5f59d687468da8b76d0487184f95",
										"reason": "Example capture",
										"requestUniqueId": "credit-8662342847790"
									}
								}
							},
							"schema": {
								"$ref": "#/components/schemas/CreditsRequest"
							}
						},
						"application/x-www-form-urlencoded": {
							"schema": {
								"$ref": "#/components/schemas/CreditsRequest"
							}
						}
					},
					"required": true,
					"description": "Credit request details required to create a credit request."
				},
				"responses": {
					"201": {
						"content": {
							"application/json": {
								"examples": {
									"Credit request created": {
										"description": "Shows submission and the resulting pending credit request.",
										"value": {
											"creditAmount": 1,
											"creditReference": 1188,
											"merchantCode": "1337",
											"merchantName": "Menethil",
											"requestReason": "Example capture",
											"requestStatus": 0,
											"requestStatusString": "Pending",
											"requestUniqueId": "credit-8662342847790",
											"status": 6
										}
									}
								},
								"schema": {
									"$ref": "#/components/schemas/CreditRequestResponse"
								}
							}
						},
						"links": {
							"Get": {
								"description": "Reads the credit request back. The body is the same shape this response returned — the credit reference and the request status as both a number and a string.",
								"operationId": "CreditRequests_Get",
								"parameters": {
									"requestUniqueId": "$response.body#/requestUniqueId"
								}
							}
						},
						"description": "Credit created."
					},
					"400": {
						"content": {
							"application/json": {
								"schema": {
									"additionalProperties": {
										"$ref": "#/components/schemas/ModelState"
									},
									"type": "object"
								}
							}
						},
						"description": "Invalid input detail."
					},
					"403": {
						"content": {
							"application/json": {
								"schema": {
									"type": "object"
								}
							}
						},
						"description": "Merchant is forbidden to perform this operation."
					},
					"409": {
						"content": {
							"application/json": {
								"schema": {
									"type": "object"
								}
							}
						},
						"description": "UniqueId is not unique."
					},
					"412": {
						"content": {
							"application/json": {
								"examples": {
									"Card proxy not eligible": {
										"description": "Shows the eligibility refusal; changing the amount alone does not demonstrate eligibility.",
										"value": {
											"errorCode": "ERR",
											"errorMessage": "The Proxy provided is not eligible for credit."
										}
									},
									"Daily credit limit reached": {
										"description": "A limit refusal requires different handling from an ineligible payment account.",
										"value": {
											"errorCode": "ERR",
											"errorMessage": "Maximum amount of credits per day limit reached."
										}
									}
								},
								"schema": {
									"additionalProperties": {
										"$ref": "#/components/schemas/ModelState"
									},
									"type": "object"
								}
							}
						},
						"description": "Not allowed due to limit or not eligible to process."
					},
					"422": {
						"content": {
							"application/json": {
								"schema": {
									"type": "object"
								}
							}
						},
						"description": "Merchant is forbidden to perform this operation."
					},
					"500": {
						"content": {
							"application/json": {
								"schema": {
									"type": "object"
								}
							}
						},
						"description": "Something went wrong. Please try again."
					}
				},
				"security": [
					{
						"Api-Key": [],
						"BasicAuth": []
					}
				],
				"tags": [
					"CreditRequests"
				],
				"summary": "Create a credit request",
				"description": "Creates a credit request from the supplied request payload."
			}
		},
		"/v2/credit-requests/{requestUniqueId}": {
			"get": {
				"operationId": "CreditRequests_Get",
				"parameters": [
					{
						"in": "path",
						"name": "requestUniqueId",
						"required": true,
						"schema": {
							"type": "string"
						},
						"description": "The merchant's unique identifier for the credit request."
					}
				],
				"responses": {
					"200": {
						"content": {
							"application/json": {
								"examples": {
									"Credit request pending": {
										"description": "Read straight after creating the credit, before ZenPay has processed it; preserving the captured array response.",
										"value": [
											{
												"creditAmount": 1,
												"creditReference": 1188,
												"merchantCode": "1337",
												"merchantName": "Menethil",
												"requestReason": "Example capture",
												"requestStatus": 0,
												"requestStatusString": "Pending",
												"requestUniqueId": "credit-8662342847790",
												"status": 6
											}
										]
									}
								},
								"schema": {
									"$ref": "#/components/schemas/CreditRequestResponse"
								}
							}
						},
						"description": "Found the credit."
					},
					"404": {
						"description": "Unable to find the credit."
					}
				},
				"security": [
					{
						"Api-Key": [],
						"BasicAuth": []
					}
				],
				"tags": [
					"CreditRequests"
				],
				"summary": "Get a credit request",
				"description": "Returns the credit request for the specified request unique ID."
			}
		},
		"/v2/customers": {
			"get": {
				"operationId": "Customers_List",
				"parameters": [
					{
						"in": "query",
						"name": "customerReference",
						"required": false,
						"schema": {
							"type": "string"
						},
						"description": "Filter by the merchant's unique reference for the customer."
					},
					{
						"explode": true,
						"in": "query",
						"name": "customerStatuses",
						"required": false,
						"schema": {
							"items": {
								"enum": [
									0,
									1,
									2,
									3,
									4,
									5,
									6,
									7,
									8
								],
								"format": "int32",
								"type": "integer",
								"x-enumDescriptions": {
									"0": "Open",
									"1": "AwaitingEmailVerfication",
									"2": "AwaitingSignature",
									"3": "SetUpIncomplete",
									"4": "Restricted",
									"5": "Closed",
									"6": "OnHold",
									"7": "PendingBankAccountVerification",
									"8": "ReferCustomerAccount"
								}
							},
							"type": "array"
						},
						"style": "form",
						"description": "Filter by customer status. Defaults to all statuses."
					},
					{
						"in": "query",
						"name": "fromOpenDate",
						"required": false,
						"schema": {
							"format": "date-time",
							"type": "string"
						},
						"description": "Return customers opened on or after this date. Format: yyyy-MM-dd."
					},
					{
						"in": "query",
						"name": "toOpenDate",
						"required": false,
						"schema": {
							"format": "date-time",
							"type": "string"
						},
						"description": "Return customers opened on or before this date. Format: yyyy-MM-dd."
					},
					{
						"in": "query",
						"name": "fromClosedDate",
						"required": false,
						"schema": {
							"format": "date-time",
							"type": "string"
						},
						"description": "Return customers closed on or after this date. Format: yyyy-MM-dd."
					},
					{
						"in": "query",
						"name": "toClosedDate",
						"required": false,
						"schema": {
							"format": "date-time",
							"type": "string"
						},
						"description": "Return customers closed on or before this date. Format: yyyy-MM-dd."
					},
					{
						"explode": true,
						"in": "query",
						"name": "paymentOptions",
						"required": false,
						"schema": {
							"items": {
								"enum": [
									22,
									23,
									24,
									25,
									26,
									27,
									28,
									148,
									149
								],
								"format": "int32",
								"type": "integer",
								"x-enumDescriptions": {
									"22": "AutoPay",
									"23": "EmailReminder",
									"24": "SmsReminder",
									"25": "FixedTerm",
									"26": "BatchPay",
									"27": "ScheduledPay",
									"28": "OneOff",
									"148": "PayID",
									"149": "BPAY"
								}
							},
							"type": "array"
						},
						"style": "form",
						"description": "Filter by payment option. Defaults to all options."
					},
					{
						"in": "query",
						"name": "offset",
						"required": false,
						"schema": {
							"default": 0,
							"format": "int32",
							"type": "integer"
						},
						"description": "The zero-based index of the first record to return. Default: 0."
					},
					{
						"in": "query",
						"name": "limit",
						"required": false,
						"schema": {
							"default": 20,
							"format": "int32",
							"type": "integer"
						},
						"description": "The maximum number of records to return. Default: 20. Maximum: 2000."
					}
				],
				"responses": {
					"200": {
						"content": {
							"application/json": {
								"examples": {
									"Customer found by reference": {
										"description": "One compact list example; show filtering and pagination through parameter documentation.",
										"value": [
											{
												"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"
												}
											}
										]
									}
								},
								"schema": {
									"items": {
										"$ref": "#/components/schemas/CustomerResponse"
									},
									"type": "array"
								}
							}
						},
						"description": "Return all the customers satisfies the filters."
					},
					"400": {
						"content": {
							"application/json": {
								"schema": {
									"type": "object"
								}
							}
						},
						"description": "Invalid get request."
					},
					"404": {
						"content": {
							"application/json": {
								"schema": {
									"type": "object"
								}
							}
						},
						"description": "Unable to find the customers by the filters provided."
					},
					"500": {
						"content": {
							"application/json": {
								"schema": {
									"type": "object"
								}
							}
						},
						"description": "Something went wrong. Please try again."
					}
				},
				"security": [
					{
						"Api-Key": [],
						"BasicAuth": []
					}
				],
				"tags": [
					"Customers"
				],
				"summary": "List customers",
				"description": "Returns customers that match the supplied filter criteria."
			},
			"post": {
				"operationId": "Customers_Create",
				"requestBody": {
					"content": {
						"application/json": {
							"examples": {
								"AutoPay customer": {
									"description": "A clearer AutoPay example: the response retains the requested option. One frequency is enough.",
									"value": {
										"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"
									}
								},
								"Customer with a bank account": {
									"description": "Baseline bank-account creation; optional profile fields do not earn additional examples.",
									"value": {
										"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"
									}
								},
								"Customer with a payment account proxy": {
									"description": "Distinct account input using the general payment-account proxy.",
									"value": {
										"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
									}
								},
								"Customer with a stored card": {
									"description": "Distinct account input using the card field.",
									"value": {
										"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
									}
								},
								"PayID customer": {
									"description": "Keep the request as well: choosing PayID is a meaningful use even when field names are unchanged.",
									"value": {
										"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"
									}
								}
							},
							"schema": {
								"$ref": "#/components/schemas/NewCustomer"
							}
						},
						"application/x-www-form-urlencoded": {
							"schema": {
								"$ref": "#/components/schemas/NewCustomer"
							}
						}
					},
					"required": true,
					"description": "Customer details required to create a customer."
				},
				"responses": {
					"201": {
						"content": {
							"application/json": {
								"examples": {
									"AutoPay customer": {
										"description": "A clearer AutoPay example: the response retains the requested option. One frequency is enough.",
										"value": {
											"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"
										}
									},
									"Customer with a bank account": {
										"description": "Baseline bank-account creation; optional profile fields do not earn additional examples.",
										"value": {
											"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"
										}
									},
									"Customer with a payment account proxy": {
										"description": "Distinct account input using the general payment-account proxy.",
										"value": {
											"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
										}
									},
									"Customer with a stored card": {
										"description": "Distinct account input using the card field.",
										"value": {
											"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
										}
									},
									"PayID customer": {
										"description": "Keep the request as well: choosing PayID is a meaningful use even when field names are unchanged.",
										"value": {
											"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"
										}
									}
								},
								"schema": {
									"$ref": "#/components/schemas/NewCustomer"
								}
							}
						},
						"links": {
							"GetCustomer": {
								"description": "The whole customer as three nested sections — profile, account and payment option. The four reads below return those sections individually; only this one returns all three at once. Its profile section carries two fields the standalone profile read does not: customerCode and customerReference.",
								"operationId": "Customers_Get",
								"parameters": {
									"customerReference": "$response.body#/customerReference"
								}
							},
							"GetCustomerAccount": {
								"description": "The payment instrument attached to the customer — a bank account, a card, or both.",
								"operationId": "Customers_GetAccount",
								"parameters": {
									"customerReference": "$response.body#/customerReference"
								}
							},
							"GetCustomerPaymentOption": {
								"description": "The payment option, amount, frequency and notification method. Payment option 26 is what makes a customer eligible to appear in a batch payment.",
								"operationId": "Customers_GetPaymentOption",
								"parameters": {
									"customerReference": "$response.body#/customerReference"
								}
							},
							"GetCustomerProfile": {
								"description": "Name, company, address and contact details on their own.",
								"operationId": "Customers_GetProfile",
								"parameters": {
									"customerReference": "$response.body#/customerReference"
								}
							},
							"GetCustomerStatus": {
								"description": "The customer's status. This response is a bare JSON string, not an object.",
								"operationId": "Customers_GetStatus",
								"parameters": {
									"customerReference": "$response.body#/customerReference"
								}
							},
							"UpdateCustomerAccount": {
								"description": "Updates the payment instrument.",
								"operationId": "Customers_UpdateAccount",
								"parameters": {
									"customerReference": "$response.body#/customerReference"
								}
							},
							"UpdateCustomerPaymentOption": {
								"description": "Updates the payment option, amount, frequency and notification method.",
								"operationId": "Customers_UpdatePaymentOption",
								"parameters": {
									"customerReference": "$response.body#/customerReference"
								}
							},
							"UpdateCustomerProfile": {
								"description": "Updates the profile. Send mobile even though the request schema marks it optional — omitting it fails the write with a 500.",
								"operationId": "Customers_UpdateProfile",
								"parameters": {
									"customerReference": "$response.body#/customerReference"
								}
							},
							"UpdateCustomerReference": {
								"description": "Renames the customer. This consumes the reference: it stops resolving once the call succeeds, and the replacement value exists only in the request body, so the chain ends here. Following this link twice returns 404 on the second call.",
								"operationId": "Customers_UpdateReference",
								"parameters": {
									"customerReference": "$response.body#/customerReference"
								}
							},
							"UpdateCustomerStatus": {
								"description": "Opens or closes the customer. Closing is irreversible: afterwards this operation and all five reads answer 404 for that reference, and no request can reach the customer by it again.",
								"operationId": "Customers_UpdateStatus",
								"parameters": {
									"customerReference": "$response.body#/customerReference"
								}
							}
						},
						"description": "Customer created successfully."
					},
					"300": {
						"content": {
							"application/json": {
								"examples": {
									"Customer reference already exists": {
										"description": "Shows the operation-specific duplicate-reference response.",
										"value": {
											"message": "The customer reference already exists."
										}
									}
								},
								"schema": {
									"type": "object"
								}
							}
						},
						"description": "Duplicate customer reference."
					},
					"400": {
						"content": {
							"application/json": {
								"schema": {
									"additionalProperties": {
										"$ref": "#/components/schemas/ModelState"
									},
									"type": "object"
								}
							}
						},
						"description": "Invalid input detail."
					},
					"403": {
						"content": {
							"application/json": {
								"schema": {
									"type": "object"
								}
							}
						},
						"description": "Merchant is forbidden to perform this operation."
					},
					"500": {
						"content": {
							"application/json": {
								"schema": {
									"type": "object"
								}
							}
						},
						"description": "Something went wrong. Customer may or may not be created."
					}
				},
				"security": [
					{
						"Api-Key": [],
						"BasicAuth": []
					}
				],
				"tags": [
					"Customers"
				],
				"summary": "Create a customer",
				"description": "Creates a customer from the supplied request payload."
			}
		},
		"/v2/customers/{customerReference}": {
			"get": {
				"operationId": "Customers_Get",
				"parameters": [
					{
						"in": "path",
						"name": "customerReference",
						"required": true,
						"schema": {
							"type": "string"
						},
						"description": "The merchant's unique reference for the customer."
					}
				],
				"responses": {
					"200": {
						"content": {
							"application/json": {
								"examples": {
									"Customer details": {
										"description": "One full customer read; account and payment-option endpoints below demonstrate their variants.",
										"value": {
											"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"
											}
										}
									}
								},
								"schema": {
									"$ref": "#/components/schemas/CustomerResponse"
								}
							}
						},
						"description": "Found the customer."
					},
					"400": {
						"content": {
							"application/json": {
								"schema": {
									"type": "object"
								}
							}
						},
						"description": "Invalid customer reference."
					},
					"404": {
						"content": {
							"application/json": {
								"schema": {
									"type": "object"
								}
							}
						},
						"description": "Unable to find the customer by the reference provided."
					}
				},
				"security": [
					{
						"Api-Key": [],
						"BasicAuth": []
					}
				],
				"tags": [
					"Customers"
				],
				"summary": "Get a customer",
				"description": "Returns the customer for the specified customer reference."
			}
		},
		"/v2/customers/{customerReference}/account": {
			"get": {
				"operationId": "Customers_GetAccount",
				"parameters": [
					{
						"in": "path",
						"name": "customerReference",
						"required": true,
						"schema": {
							"type": "string"
						},
						"description": "The merchant's unique reference for the customer."
					}
				],
				"responses": {
					"200": {
						"content": {
							"application/json": {
								"examples": {
									"Bank account": {
										"description": "The bank-account variant of this account lookup.",
										"value": {
											"bankAccount": {
												"accountName": "Test Customer",
												"accountNumber": "12345678",
												"bsb": "062000",
												"isPayTo": false,
												"label": "Sweep test account",
												"payToStatus": 0
											}
										}
									},
									"Stored card": {
										"description": "The card variant of this account lookup.",
										"value": {
											"creditCard": {
												"cardNumber": "555555XXXXXX4444",
												"cardType": "MasterCard",
												"expiry": "1229",
												"label": "example card"
											}
										}
									}
								},
								"schema": {
									"$ref": "#/components/schemas/CustomerAccountResponse"
								}
							}
						},
						"description": "Found the customer account."
					},
					"400": {
						"content": {
							"application/json": {
								"schema": {
									"type": "object"
								}
							}
						},
						"description": "Invalid customer reference."
					},
					"404": {
						"content": {
							"application/json": {
								"schema": {
									"type": "object"
								}
							}
						},
						"description": "Unable to find the customer by the reference provided."
					}
				},
				"security": [
					{
						"Api-Key": [],
						"BasicAuth": []
					}
				],
				"tags": [
					"Customers"
				],
				"summary": "Get a customer account",
				"description": "Returns the account details for the specified customer."
			},
			"put": {
				"operationId": "Customers_UpdateAccount",
				"parameters": [
					{
						"in": "path",
						"name": "customerReference",
						"required": true,
						"schema": {
							"type": "string"
						},
						"description": "The merchant's unique reference for the customer."
					}
				],
				"requestBody": {
					"content": {
						"application/json": {
							"examples": {
								"Bank account replaced": {
									"description": "Prefer this ordinary bank-account update over a PayTo-status-focused variant.",
									"value": {
										"bankAccount": {
											"accountName": "Test Customer",
											"accountNumber": "12345678",
											"bankBranch": "Sydney",
											"bankName": "Commonwealth Bank",
											"bsb": "062000",
											"isPayTo": false,
											"label": "test account"
										}
									}
								},
								"Switch to a payment account proxy": {
									"description": "Distinct account replacement body; preserve the captured field spelling.",
									"value": {
										"addtionalPaymentAccountProxies": [
											{
												"label": "additional",
												"proxy": "e4602844c10945c49286d5987bf9eda2"
											}
										],
										"paymentAccountProxy": {
											"label": "updated pap",
											"proxy": "3836c3b2acea449688c24b6c179f0523"
										}
									}
								},
								"Switch to a stored card": {
									"description": "Distinct account replacement body; successful response has no body.",
									"value": {
										"creditCardProxy": {
											"cardProxy": "8c8fb346b9c24f13b3b7be78c093d8cc",
											"label": "updated card"
										}
									}
								}
							},
							"schema": {
								"$ref": "#/components/schemas/CustomerAccountRequest"
							}
						},
						"application/x-www-form-urlencoded": {
							"schema": {
								"$ref": "#/components/schemas/CustomerAccountRequest"
							}
						}
					},
					"required": true,
					"description": "Account details required to update the customer account."
				},
				"responses": {
					"204": {
						"description": "Updated the customer account."
					},
					"400": {
						"content": {
							"application/json": {
								"schema": {
									"additionalProperties": {
										"$ref": "#/components/schemas/ModelState"
									},
									"type": "object"
								}
							}
						},
						"description": "Invalid input detail."
					},
					"403": {
						"content": {
							"application/json": {
								"schema": {
									"type": "object"
								}
							}
						},
						"description": "Merchant is forbidden to perform this operation."
					},
					"500": {
						"content": {
							"application/json": {
								"schema": {
									"type": "object"
								}
							}
						},
						"description": "Something went wrong. Customer account may or may not be updated."
					}
				},
				"security": [
					{
						"Api-Key": [],
						"BasicAuth": []
					}
				],
				"tags": [
					"Customers"
				],
				"summary": "Update a customer account",
				"description": "Updates the account details for the specified customer."
			}
		},
		"/v2/customers/{customerReference}/customerReference": {
			"put": {
				"operationId": "Customers_UpdateReference",
				"parameters": [
					{
						"in": "path",
						"name": "customerReference",
						"required": true,
						"schema": {
							"type": "string"
						},
						"description": "The existing customer reference."
					}
				],
				"requestBody": {
					"content": {
						"application/json": {
							"examples": {
								"Reference renamed": {
									"description": "Shows the plain JSON string body, not an object wrapper.",
									"value": "upd-a-8625433279667r"
								}
							},
							"schema": {
								"type": "string"
							}
						},
						"application/x-www-form-urlencoded": {
							"schema": {
								"type": "string"
							}
						}
					},
					"required": true,
					"description": "Customer reference details required to update the customer reference."
				},
				"responses": {
					"204": {
						"description": "Updated the customer reference."
					},
					"400": {
						"content": {
							"application/json": {
								"schema": {
									"additionalProperties": {
										"$ref": "#/components/schemas/ModelState"
									},
									"type": "object"
								}
							}
						},
						"description": "Invalid input detail."
					},
					"403": {
						"content": {
							"application/json": {
								"schema": {
									"type": "object"
								}
							}
						},
						"description": "Merchant is forbidden to perform this operation."
					},
					"500": {
						"content": {
							"application/json": {
								"schema": {
									"type": "object"
								}
							}
						},
						"description": "Something went wrong. Customer reference may or may not be updated."
					}
				},
				"security": [
					{
						"Api-Key": [],
						"BasicAuth": []
					}
				],
				"tags": [
					"Customers"
				],
				"summary": "Update a customer reference",
				"description": "Updates the customer reference for the specified customer."
			}
		},
		"/v2/customers/{customerReference}/paymentOption": {
			"get": {
				"operationId": "Customers_GetPaymentOption",
				"parameters": [
					{
						"in": "path",
						"name": "customerReference",
						"required": true,
						"schema": {
							"type": "string"
						},
						"description": "The merchant's unique reference for the customer."
					}
				],
				"responses": {
					"200": {
						"content": {
							"application/json": {
								"examples": {
									"Batch payment option": {
										"description": "Baseline option without BPAY or PayID details.",
										"value": {
											"notificationMethod": 0,
											"paymentAmount": 0,
											"paymentFrequency": 34,
											"paymentOption": 26
										}
									},
									"PayID payment option": {
										"description": "Shows the PayID details in this dedicated lookup.",
										"value": {
											"notificationMethod": 0,
											"payIdDetail": {
												"payId": "payiduat@b2bpay.com.au",
												"payIdName": "B2Bpay",
												"reference": "9205042477"
											},
											"paymentAmount": 0,
											"paymentFrequency": 34,
											"paymentOption": 148
										}
									}
								},
								"schema": {
									"$ref": "#/components/schemas/CustomerPaymentOption"
								}
							}
						},
						"description": "Found the customer payment option."
					},
					"400": {
						"content": {
							"application/json": {
								"schema": {
									"type": "object"
								}
							}
						},
						"description": "Invalid customer reference."
					},
					"404": {
						"content": {
							"application/json": {
								"schema": {
									"type": "object"
								}
							}
						},
						"description": "Unable to find the customer by the reference provided."
					}
				},
				"security": [
					{
						"Api-Key": [],
						"BasicAuth": []
					}
				],
				"tags": [
					"Customers"
				],
				"summary": "Get a customer payment option",
				"description": "Returns the payment option for the specified customer."
			},
			"put": {
				"operationId": "Customers_UpdatePaymentOption",
				"parameters": [
					{
						"in": "path",
						"name": "customerReference",
						"required": true,
						"schema": {
							"type": "string"
						},
						"description": "The merchant's unique reference for the customer."
					}
				],
				"requestBody": {
					"content": {
						"application/json": {
							"examples": {
								"AutoPay option updated": {
									"description": "One recurring-payment option update with a readily understood frequency.",
									"value": {
										"nextPaymentDate": "2026-11-02T14:21:17",
										"notificationMethod": 0,
										"paymentAmount": 1,
										"paymentFrequency": 33,
										"paymentOption": 22
									}
								},
								"PayID option update with details": {
									"description": "Shows the PayID-specific input. A bodiless acknowledgement alone does not prove supplied details persisted.",
									"value": {
										"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
									}
								}
							},
							"schema": {
								"$ref": "#/components/schemas/CustomerPaymentOption"
							}
						},
						"application/x-www-form-urlencoded": {
							"schema": {
								"$ref": "#/components/schemas/CustomerPaymentOption"
							}
						}
					},
					"required": true,
					"description": "Payment option details required to update the customer payment option."
				},
				"responses": {
					"204": {
						"description": "Updated the customer payment option."
					},
					"400": {
						"content": {
							"application/json": {
								"schema": {
									"additionalProperties": {
										"$ref": "#/components/schemas/ModelState"
									},
									"type": "object"
								}
							}
						},
						"description": "Invalid input detail."
					},
					"403": {
						"content": {
							"application/json": {
								"schema": {
									"type": "object"
								}
							}
						},
						"description": "Merchant is forbidden to perform this operation."
					},
					"500": {
						"content": {
							"application/json": {
								"schema": {
									"type": "object"
								}
							}
						},
						"description": "Something went wrong. Customer payment option may or may not be updated."
					}
				},
				"security": [
					{
						"Api-Key": [],
						"BasicAuth": []
					}
				],
				"tags": [
					"Customers"
				],
				"summary": "Update a customer payment option",
				"description": "Updates the payment option for the specified customer."
			}
		},
		"/v2/customers/{customerReference}/profile": {
			"get": {
				"operationId": "Customers_GetProfile",
				"parameters": [
					{
						"in": "path",
						"name": "customerReference",
						"required": true,
						"schema": {
							"type": "string"
						},
						"description": "The merchant's unique reference for the customer."
					}
				],
				"responses": {
					"200": {
						"content": {
							"application/json": {
								"examples": {
									"Customer profile": {
										"description": "One representative profile read.",
										"value": {
											"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"
										}
									}
								},
								"schema": {
									"$ref": "#/components/schemas/ICustomerProfie"
								}
							}
						},
						"description": "Found the customer profile."
					},
					"400": {
						"content": {
							"application/json": {
								"schema": {
									"type": "object"
								}
							}
						},
						"description": "Invalid customer reference."
					},
					"404": {
						"content": {
							"application/json": {
								"schema": {
									"type": "object"
								}
							}
						},
						"description": "Unable to find the customer by the reference provided."
					}
				},
				"security": [
					{
						"Api-Key": [],
						"BasicAuth": []
					}
				],
				"tags": [
					"Customers"
				],
				"summary": "Get a customer profile",
				"description": "Returns the profile for the specified customer."
			},
			"put": {
				"operationId": "Customers_UpdateProfile",
				"parameters": [
					{
						"in": "path",
						"name": "customerReference",
						"required": true,
						"schema": {
							"type": "string"
						},
						"description": "The merchant's unique reference for the customer."
					}
				],
				"requestBody": {
					"content": {
						"application/json": {
							"examples": {
								"Profile updated": {
									"description": "Baseline profile replacement, including the mobile field in the captured request.",
									"value": {
										"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"
									}
								}
							},
							"schema": {
								"$ref": "#/components/schemas/CustomerProfileRequest"
							}
						},
						"application/x-www-form-urlencoded": {
							"schema": {
								"$ref": "#/components/schemas/CustomerProfileRequest"
							}
						}
					},
					"required": true,
					"description": "Profile details required to update the customer profile."
				},
				"responses": {
					"204": {
						"description": "Updated the customer profile."
					},
					"400": {
						"content": {
							"application/json": {
								"schema": {
									"additionalProperties": {
										"$ref": "#/components/schemas/ModelState"
									},
									"type": "object"
								}
							}
						},
						"description": "Invalid input detail."
					},
					"403": {
						"content": {
							"application/json": {
								"schema": {
									"type": "object"
								}
							}
						},
						"description": "Merchant is forbidden to perform this operation."
					},
					"500": {
						"content": {
							"application/json": {
								"schema": {
									"type": "object"
								}
							}
						},
						"description": "Something went wrong. Customer may or may not be updated."
					}
				},
				"security": [
					{
						"Api-Key": [],
						"BasicAuth": []
					}
				],
				"tags": [
					"Customers"
				],
				"summary": "Update a customer profile",
				"description": "Updates the profile for the specified customer."
			}
		},
		"/v2/customers/{customerReference}/status": {
			"get": {
				"operationId": "Customers_GetStatus",
				"parameters": [
					{
						"in": "path",
						"name": "customerReference",
						"required": true,
						"schema": {
							"type": "string"
						},
						"description": "The merchant's unique reference for the customer."
					}
				],
				"responses": {
					"200": {
						"content": {
							"application/json": {
								"examples": {
									"Customer status": {
										"description": "Shows that this endpoint returns a scalar rather than a customer object.",
										"value": "Open"
									}
								},
								"schema": {
									"type": "string"
								}
							}
						},
						"description": "Found the customer status."
					},
					"400": {
						"content": {
							"application/json": {
								"schema": {
									"type": "object"
								}
							}
						},
						"description": "Invalid customer reference."
					},
					"404": {
						"content": {
							"application/json": {
								"schema": {
									"type": "object"
								}
							}
						},
						"description": "Unable to find the customer by the reference provided."
					}
				},
				"security": [
					{
						"Api-Key": [],
						"BasicAuth": []
					}
				],
				"tags": [
					"Customers"
				],
				"summary": "Get customer status",
				"description": "Returns the status for the specified customer."
			},
			"put": {
				"operationId": "Customers_UpdateStatus",
				"parameters": [
					{
						"in": "path",
						"name": "customerReference",
						"required": true,
						"schema": {
							"type": "string"
						},
						"description": "The merchant's unique reference for the customer."
					}
				],
				"requestBody": {
					"content": {
						"application/json": {
							"examples": {
								"Customer closed": {
									"description": "Shows the close request and reason. Do not infer a working reopen flow from this capture.",
									"value": {
										"closeCustomer": true,
										"reason": "example capture"
									}
								}
							},
							"schema": {
								"$ref": "#/components/schemas/CustomerStatusRequest"
							}
						},
						"application/x-www-form-urlencoded": {
							"schema": {
								"$ref": "#/components/schemas/CustomerStatusRequest"
							}
						}
					},
					"required": true,
					"description": "Status details required to update the customer status."
				},
				"responses": {
					"204": {
						"description": "Updated the customer status."
					},
					"400": {
						"content": {
							"application/json": {
								"schema": {
									"additionalProperties": {
										"$ref": "#/components/schemas/ModelState"
									},
									"type": "object"
								}
							}
						},
						"description": "Invalid input detail."
					},
					"403": {
						"content": {
							"application/json": {
								"schema": {
									"type": "object"
								}
							}
						},
						"description": "Merchant is forbidden to perform this operation."
					},
					"500": {
						"content": {
							"application/json": {
								"schema": {
									"type": "object"
								}
							}
						},
						"description": "Something went wrong. Customer payment option may or may not be updated."
					}
				},
				"security": [
					{
						"Api-Key": [],
						"BasicAuth": []
					}
				],
				"tags": [
					"Customers"
				],
				"summary": "Update customer status",
				"description": "Updates the status for the specified customer."
			}
		},
		"/v2/diagnostics/ping": {
			"get": {
				"operationId": "Diagnostics_Ping",
				"responses": {
					"200": {
						"content": {
							"application/json": {
								"examples": {
									"Ping": {
										"description": "One health-check response.",
										"value": {
											"buildVersion": "1.137.1.19365",
											"serverDateTime": "2026-09-24T00:36:40.2830196",
											"timeZoneInfo": "Australian Eastern Standard Time",
											"version": "v2.0"
										}
									}
								},
								"schema": {
									"$ref": "#/components/schemas/PingResponse"
								}
							}
						},
						"description": "Ping response including server date time and version information."
					}
				},
				"security": [
					{
						"Api-Key": [],
						"BasicAuth": []
					}
				],
				"tags": [
					"Diagnostics"
				],
				"summary": "Ping the API",
				"description": "Returns the server date time and version information."
			}
		},
		"/v2/payments": {
			"get": {
				"operationId": "Payments_List",
				"parameters": [
					{
						"in": "query",
						"name": "customerReference",
						"required": false,
						"schema": {
							"type": "string"
						},
						"description": "Filter by the merchant's unique reference for the customer."
					},
					{
						"in": "query",
						"name": "fromProcessedDate",
						"required": false,
						"schema": {
							"format": "date-time",
							"type": "string"
						},
						"description": "Return payments processed on or after this date and time. Format: ISO 8601 date-time."
					},
					{
						"in": "query",
						"name": "toProcessedDate",
						"required": false,
						"schema": {
							"format": "date-time",
							"type": "string"
						},
						"description": "Return payments processed on or before this date and time. Format: ISO 8601 date-time."
					},
					{
						"in": "query",
						"name": "settlementDate",
						"required": false,
						"schema": {
							"format": "date-time",
							"type": "string"
						},
						"description": "Filter by settlement date. Format: ISO 8601 date-time."
					},
					{
						"in": "query",
						"name": "paymentSettlement",
						"required": false,
						"schema": {
							"default": 0,
							"enum": [
								0,
								1,
								2
							],
							"format": "int32",
							"type": "integer",
							"x-enumDescriptions": {
								"0": "All",
								"1": "Settled",
								"2": "NotSettled"
							}
						},
						"description": "Filter by payment settlement status. Values: 0=All, 1=Settled, 2=NotSettled."
					},
					{
						"explode": true,
						"in": "query",
						"name": "transactionTypes",
						"required": false,
						"schema": {
							"items": {
								"enum": [
									1,
									2,
									3,
									4,
									5,
									6,
									7,
									8,
									9,
									10
								],
								"format": "int32",
								"type": "integer",
								"x-enumDescriptions": {
									"1": "Charge",
									"2": "InvoicePayment",
									"3": "Refund",
									"4": "Chargeback",
									"5": "Recall",
									"6": "FixedTermSettlement",
									"7": "SponsorInvoicePayment",
									"8": "MerchantSettlementAdjustmentPayment",
									"9": "Preauthorization",
									"10": "Credit"
								}
							},
							"type": "array"
						},
						"style": "form",
						"description": "Filter by transaction type."
					},
					{
						"in": "query",
						"name": "settlementReference",
						"required": false,
						"schema": {
							"type": "string"
						},
						"description": "Filter by the reference for the settlement the payment was paid out in."
					},
					{
						"in": "query",
						"name": "merchantSettlementReference",
						"required": false,
						"schema": {
							"type": "string"
						},
						"description": "Filter by the reference for the merchant settlement the payment was paid out in."
					},
					{
						"in": "query",
						"name": "isRecalled",
						"required": false,
						"schema": {
							"type": "boolean"
						},
						"description": "Filter by whether the payment has been recalled."
					},
					{
						"in": "query",
						"name": "isRefunded",
						"required": false,
						"schema": {
							"type": "boolean"
						},
						"description": "Filter by whether the payment has been refunded."
					},
					{
						"in": "query",
						"name": "isChargeBacked",
						"required": false,
						"schema": {
							"type": "boolean"
						},
						"description": "Filter by whether the payment has been chargebacked."
					},
					{
						"in": "query",
						"name": "offset",
						"required": false,
						"schema": {
							"default": 0,
							"format": "int32",
							"type": "integer"
						},
						"description": "The zero-based index of the first record to return. Default: 0."
					},
					{
						"in": "query",
						"name": "limit",
						"required": false,
						"schema": {
							"default": 20,
							"format": "int32",
							"type": "integer"
						},
						"description": "The maximum number of records to return."
					}
				],
				"responses": {
					"200": {
						"content": {
							"application/json": {
								"examples": {
									"No matching payments": {
										"description": "An empty result is different from an error. Name it by the result, not only the chosen filter.",
										"value": []
									},
									"Payments for one customer": {
										"description": "One populated collection; query variants belong in parameter documentation.",
										"value": [
											{
												"abn": "51824753556",
												"accountOrCardNo": "555555XXXXXX4444",
												"additionalData": {
													"authCode": "SAMPLE_AUTH_CODE",
													"rrn": "SAMPLE_RRN",
													"stan": "SAMPLE_STAN"
												},
												"additionalReference": "ex-add-ref",
												"baseAmount": 1,
												"cardCategory": "International Cards",
												"cardTypeString": "Mastercard",
												"cardTypeValue": 2,
												"customerFee": 0,
												"customerName": "Test Customer",
												"customerReference": "cust-pay-4645997731713",
												"fundsToMerchant": 1,
												"isPaymentChargeBacked": false,
												"isPaymentRecalled": false,
												"isPaymentRefunded": false,
												"isPaymentRetryScheduled": false,
												"isPaymentSettledToMerchant": false,
												"merchantCode": "1337",
												"merchantFee": 0,
												"merchantName": "Menethil",
												"merchantUniquePaymentId": "pay-4601276609115",
												"oneOffPaymentReference": "oneoff-3744147771503",
												"paymentAccount": "Card",
												"paymentAmount": 1,
												"paymentCard": "MasterCard",
												"paymentReference": "247439",
												"paymentSourceDisplay": "Api Tokenised Payment",
												"paymentStatus": "Successful",
												"processingDate": "2026-09-24T00:37:09.113",
												"processorReference": "3f4d6f4811031a99ec1b",
												"settlementDate": "2026-09-25T00:00:00",
												"settlementFrequencyString": "Monthly",
												"settlementFrequencyValue": 2,
												"settlementType": "Gross",
												"subCardTypeString": "",
												"transactionType": 1,
												"transactionTypeDisplay": "Charge"
											}
										]
									}
								},
								"schema": {
									"items": {
										"$ref": "#/components/schemas/PaymentResponse"
									},
									"type": "array"
								}
							}
						},
						"description": "Return all the payments satisfies the filters."
					},
					"400": {
						"content": {
							"application/json": {
								"schema": {
									"type": "object"
								}
							}
						},
						"description": "Invalid get request."
					},
					"500": {
						"content": {
							"application/json": {
								"schema": {
									"type": "object"
								}
							}
						},
						"description": "Something went wrong. Please try again."
					}
				},
				"security": [
					{
						"Api-Key": [],
						"BasicAuth": []
					}
				],
				"tags": [
					"Payments"
				],
				"summary": "List payments",
				"description": "Returns payments that match the supplied filter criteria."
			},
			"post": {
				"operationId": "Payments_Create",
				"requestBody": {
					"content": {
						"application/json": {
							"examples": {
								"Payment with a card proxy": {
									"description": "Tokenised-card input.",
									"value": {
										"cardProxy": "b8375f607e284aef8159c606900c9c6e",
										"customerName": "Test Customer",
										"customerReference": "capb-cp-8494949996937",
										"merchantUniquePaymentId": "capb-cp-8494949996937",
										"overrideFeePayer": 0,
										"paymentAmount": 1,
										"sendPaymentConfirmation": false
									}
								},
								"Payment with a payment account proxy": {
									"description": "General payment-account-proxy input; this capture demonstrates a card, not a bank-account payment.",
									"value": {
										"customerName": "Test Customer",
										"customerReference": "cust-pay-3968971989583",
										"merchantUniquePaymentId": "pay-pap-8951947991736",
										"overrideFeePayer": 0,
										"paymentAccountProxy": {
											"label": "example proxy",
											"proxy": "28af7a4d596e4acdbb639451461db5e2"
										},
										"paymentAmount": 1,
										"sendPaymentConfirmation": false
									}
								},
								"Payment with card details": {
									"description": "Direct card input.",
									"value": {
										"card": {
											"cardHolder": "Test Cardholder",
											"cardNumber": "5555555555554444",
											"cvv": "123",
											"expiryMonth": "12",
											"expiryYear": "2029"
										},
										"customerName": "Test Customer",
										"customerReference": "cust-pay-8622934799874",
										"merchantUniquePaymentId": "pay-card-4268747464520",
										"overrideFeePayer": 0,
										"paymentAmount": 1,
										"sendPaymentConfirmation": false,
										"threeDSecureData": {
											"browserData": {
												"acceptHeader": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
												"colorDepth": 24,
												"ipAddress": "203.0.113.10",
												"language": "en-AU",
												"screenHeight": 1080,
												"screenWidth": 1920,
												"timezone": "-600",
												"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36"
											},
											"callbackUrl": "https://httpbin.org/post?uniqueId=[uniqueId]&status=[status]",
											"redirectUrl": "https://httpbin.org/get",
											"useThreeDSecure": false
										}
									}
								},
								"Payment with the stored customer method": {
									"description": "Customer-reference-only funding input. The capture does not demonstrate a customer-paid fee.",
									"value": {
										"customerName": "Test Customer",
										"customerReference": "cust-pay-6420430319849",
										"merchantUniquePaymentId": "capb-cpf-8937151476740",
										"overrideFeePayer": 2,
										"paymentAmount": 1,
										"sendPaymentConfirmation": false
									}
								}
							},
							"schema": {
								"$ref": "#/components/schemas/PaymentRequest"
							}
						},
						"application/x-www-form-urlencoded": {
							"schema": {
								"$ref": "#/components/schemas/PaymentRequest"
							}
						}
					},
					"required": true,
					"description": "Payment request details. Use a customer reference and payment amount for customer-based payments, or provide the required card proxy-based payment details."
				},
				"responses": {
					"201": {
						"content": {
							"application/json": {
								"examples": {
									"Payment with a card proxy": {
										"description": "Tokenised-card input.",
										"value": {
											"accountOrCardNo": "555555XXXXXX4444",
											"additionalData": {
												"authCode": "SAMPLE_AUTH_CODE",
												"rrn": "SAMPLE_RRN",
												"stan": "SAMPLE_STAN"
											},
											"baseAmount": 1,
											"cardTypeString": "Mastercard",
											"cardTypeValue": 2,
											"customerFee": 0,
											"customerName": "Test Customer",
											"customerReference": "capb-cp-8494949996937",
											"fundsToMerchant": 1,
											"isPaymentChargeBacked": false,
											"isPaymentRecalled": false,
											"isPaymentRefunded": false,
											"isPaymentRetryScheduled": false,
											"isPaymentSettledToMerchant": false,
											"merchantCode": "1337",
											"merchantFee": 0,
											"merchantName": "Menethil",
											"merchantUniquePaymentId": "capb-cp-8494949996937",
											"paymentAccount": "Card",
											"paymentAmount": 1,
											"paymentCard": "MasterCard",
											"paymentReference": "247428",
											"paymentSourceDisplay": "Api Tokenised Payment",
											"paymentStatus": "Successful",
											"processingDate": "2026-09-24T00:36:53.8148717",
											"processorReference": "ea1f2045568efdac1f4b",
											"settlementDate": "2026-09-25T00:00:00",
											"settlementFrequencyString": "Monthly",
											"settlementFrequencyValue": 2,
											"settlementType": "Gross",
											"subCardTypeString": "",
											"transactionType": 1,
											"transactionTypeDisplay": "Charge"
										}
									},
									"Payment with a payment account proxy": {
										"description": "General payment-account-proxy input; this capture demonstrates a card, not a bank-account payment.",
										"value": {
											"accountOrCardNo": "555555XXXXXX4444",
											"additionalData": {
												"authCode": "SAMPLE_AUTH_CODE",
												"rrn": "SAMPLE_RRN",
												"stan": "SAMPLE_STAN"
											},
											"baseAmount": 1,
											"cardTypeString": "Mastercard",
											"cardTypeValue": 2,
											"customerFee": 0,
											"customerName": "Test Customer",
											"customerReference": "cust-pay-3968971989583",
											"fundsToMerchant": 1,
											"isPaymentChargeBacked": false,
											"isPaymentRecalled": false,
											"isPaymentRefunded": false,
											"isPaymentRetryScheduled": false,
											"isPaymentSettledToMerchant": false,
											"merchantCode": "1337",
											"merchantFee": 0,
											"merchantName": "Menethil",
											"merchantUniquePaymentId": "pay-pap-8951947991736",
											"paymentAccount": "Card",
											"paymentAmount": 1,
											"paymentCard": "MasterCard",
											"paymentReference": "247435",
											"paymentSourceDisplay": "Api Tokenised Payment",
											"paymentStatus": "Successful",
											"processingDate": "2026-09-24T00:37:05.4247203",
											"processorReference": "16ea56dbaa6de43a7a87",
											"settlementDate": "2026-09-25T00:00:00",
											"settlementFrequencyString": "Monthly",
											"settlementFrequencyValue": 2,
											"settlementType": "Gross",
											"subCardTypeString": "",
											"transactionType": 1,
											"transactionTypeDisplay": "Charge"
										}
									},
									"Payment with card details": {
										"description": "Direct card input.",
										"value": {
											"accountOrCardNo": "555555XXXXXX4444",
											"additionalData": {
												"authCode": "SAMPLE_AUTH_CODE",
												"rrn": "SAMPLE_RRN",
												"stan": "SAMPLE_STAN"
											},
											"baseAmount": 1,
											"cardTypeString": "Mastercard",
											"cardTypeValue": 2,
											"customerFee": 0,
											"customerName": "Test Customer",
											"customerReference": "cust-pay-8622934799874",
											"fundsToMerchant": 1,
											"isPaymentChargeBacked": false,
											"isPaymentRecalled": false,
											"isPaymentRefunded": false,
											"isPaymentRetryScheduled": false,
											"isPaymentSettledToMerchant": false,
											"merchantCode": "1337",
											"merchantFee": 0,
											"merchantName": "Menethil",
											"merchantUniquePaymentId": "pay-card-4268747464520",
											"paymentAccount": "Card",
											"paymentAmount": 1,
											"paymentCard": "MasterCard",
											"paymentReference": "247430",
											"paymentSourceDisplay": "Api Tokenised Payment",
											"paymentStatus": "Successful",
											"processingDate": "2026-09-24T00:36:56.7211858",
											"processorReference": "5b0017b6aa0d4ef9c4dd",
											"settlementDate": "2026-09-25T00:00:00",
											"settlementFrequencyString": "Monthly",
											"settlementFrequencyValue": 2,
											"settlementType": "Gross",
											"subCardTypeString": "",
											"transactionType": 1,
											"transactionTypeDisplay": "Charge"
										}
									},
									"Payment with the stored customer method": {
										"description": "Customer-reference-only funding input. The capture does not demonstrate a customer-paid fee.",
										"value": {
											"accountOrCardNo": "555555XXXXXX4444",
											"additionalData": {
												"authCode": "SAMPLE_AUTH_CODE",
												"rrn": "SAMPLE_RRN",
												"stan": "SAMPLE_STAN"
											},
											"baseAmount": 1,
											"cardTypeString": "Mastercard",
											"cardTypeValue": 2,
											"customerCode": "BB11226984",
											"customerFee": 0,
											"customerName": "Test Card",
											"customerReference": "cust-pay-6420430319849",
											"fundsToMerchant": 1,
											"isPaymentChargeBacked": false,
											"isPaymentRecalled": false,
											"isPaymentRefunded": false,
											"isPaymentRetryScheduled": false,
											"isPaymentSettledToMerchant": false,
											"merchantCode": "1337",
											"merchantFee": 0,
											"merchantName": "Menethil",
											"merchantUniquePaymentId": "capb-cpf-8937151476740",
											"paymentAccount": "Card",
											"paymentAmount": 1,
											"paymentCard": "MasterCard",
											"paymentReference": "247442",
											"paymentSourceDisplay": "Api Tokenised Payment",
											"paymentStatus": "Successful",
											"processingDate": "2026-09-24T00:37:14.9407496",
											"processorReference": "ffa254dcc3b855605d4a",
											"settlementDate": "2026-09-25T00:00:00",
											"settlementFrequencyString": "Monthly",
											"settlementFrequencyValue": 2,
											"settlementType": "Gross",
											"subCardTypeString": "",
											"transactionType": 1,
											"transactionTypeDisplay": "Charge"
										}
									}
								},
								"schema": {
									"$ref": "#/components/schemas/PaymentResponse"
								}
							}
						},
						"links": {
							"CreateRefundRequests": {
								"description": "Raises a refund against this payment. It is a request entering an approval workflow, not an immediate reversal, and it opens in a pending state.",
								"operationId": "Payments_CreateRefundRequest",
								"parameters": {
									"paymentReference": "$response.body#/paymentReference"
								}
							},
							"GetPayment": {
								"description": "Reads the payment back. Returns one field this response does not, cardCategory; everything else is identical.",
								"operationId": "Payments_Get",
								"parameters": {
									"paymentReference": "$response.body#/paymentReference"
								}
							},
							"GetPaymentByUniqueId": {
								"description": "The same payment reached by the id the merchant supplied, rather than the one the gateway assigned. Returns a field-for-field identical object to the read by reference.",
								"operationId": "Payments_GetByUniqueId",
								"parameters": {
									"merchantUniqueId": "$response.body#/merchantUniquePaymentId"
								}
							},
							"GetRefundRequest": {
								"description": "Every refund request raised against this payment, as an array.",
								"operationId": "Payments_ListRefundRequests",
								"parameters": {
									"paymentReference": "$response.body#/paymentReference"
								}
							}
						},
						"description": "Payment is processed."
					},
					"300": {
						"content": {
							"application/json": {
								"schema": {
									"type": "object"
								}
							}
						},
						"description": "Duplicate merchant unique id."
					},
					"400": {
						"content": {
							"application/json": {
								"examples": {
									"Payment id already used": {
										"description": "Duplicate submission handling; use the observed status.",
										"value": {
											"message": "The request is invalid.",
											"modelState": {
												"merchantUniquePaymentId": [
													"This request has already been processed. Please use a new MerchantUniquePaymentId for a new request."
												]
											}
										}
									}
								},
								"schema": {
									"additionalProperties": {
										"$ref": "#/components/schemas/ModelState"
									},
									"type": "object"
								}
							}
						},
						"description": "Invalid input detail."
					},
					"500": {
						"content": {
							"application/json": {
								"schema": {
									"type": "object"
								}
							}
						},
						"description": "Something went wrong. Payment may or may not be created."
					}
				},
				"security": [
					{
						"Api-Key": [],
						"BasicAuth": []
					}
				],
				"tags": [
					"Payments"
				],
				"summary": "Create a payment",
				"description": "Creates a payment from the supplied request payload."
			}
		},
		"/v2/payments/uniqueId/{merchantUniqueId}": {
			"get": {
				"operationId": "Payments_GetByUniqueId",
				"parameters": [
					{
						"in": "path",
						"name": "merchantUniqueId",
						"required": true,
						"schema": {
							"type": "string"
						},
						"description": "The merchant's unique identifier for the payment. Provided by the merchant when creating a payment."
					}
				],
				"responses": {
					"200": {
						"content": {
							"application/json": {
								"examples": {
									"Payment by unique id": {
										"description": "Baseline lookup through the merchant identifier route.",
										"value": {
											"abn": "51824753556",
											"accountOrCardNo": "555555XXXXXX4444",
											"additionalData": {
												"authCode": "SAMPLE_AUTH_CODE",
												"rrn": "SAMPLE_RRN",
												"stan": "SAMPLE_STAN"
											},
											"additionalReference": "ex-add-ref",
											"baseAmount": 1,
											"cardCategory": "International Cards",
											"cardTypeString": "Mastercard",
											"cardTypeValue": 2,
											"customerFee": 0,
											"customerName": "Test Customer",
											"customerReference": "cust-pay-4645997731713",
											"fundsToMerchant": 1,
											"isPaymentChargeBacked": false,
											"isPaymentRecalled": false,
											"isPaymentRefunded": false,
											"isPaymentRetryScheduled": false,
											"isPaymentSettledToMerchant": false,
											"merchantCode": "1337",
											"merchantFee": 0,
											"merchantName": "Menethil",
											"merchantUniquePaymentId": "pay-4601276609115",
											"oneOffPaymentReference": "oneoff-3744147771503",
											"paymentAccount": "Card",
											"paymentAmount": 1,
											"paymentCard": "MasterCard",
											"paymentReference": "247439",
											"paymentSourceDisplay": "Api Tokenised Payment",
											"paymentStatus": "Successful",
											"processingDate": "2026-09-24T00:37:09.113",
											"processorReference": "3f4d6f4811031a99ec1b",
											"settlementDate": "2026-09-25T00:00:00",
											"settlementFrequencyString": "Monthly",
											"settlementFrequencyValue": 2,
											"settlementType": "Gross",
											"subCardTypeString": "",
											"transactionType": 1,
											"transactionTypeDisplay": "Charge"
										}
									}
								},
								"schema": {
									"$ref": "#/components/schemas/PaymentResponse"
								}
							}
						},
						"description": "Found the payment."
					},
					"400": {
						"content": {
							"application/json": {
								"schema": {
									"type": "object"
								}
							}
						},
						"description": "Invalid payment reference."
					},
					"404": {
						"content": {
							"application/json": {
								"schema": {
									"type": "object"
								}
							}
						},
						"description": "Unable to find the payment by the reference provided."
					}
				},
				"security": [
					{
						"Api-Key": [],
						"BasicAuth": []
					}
				],
				"tags": [
					"Payments"
				],
				"summary": "Get a payment by merchant unique ID",
				"description": "Returns the payment for the specified merchant unique ID."
			}
		},
		"/v2/payments/uniqueId/{paymentReference}/refundrequests/{refundRequestUniqueId}": {
			"get": {
				"operationId": "Payments_GetRefundRequestByUniqueId",
				"parameters": [
					{
						"in": "path",
						"name": "paymentReference",
						"required": true,
						"schema": {
							"type": "string"
						},
						"description": "The unique reference for the payment."
					},
					{
						"in": "path",
						"name": "refundRequestUniqueId",
						"required": true,
						"schema": {
							"type": "string"
						},
						"description": "The merchant's unique identifier for the refund request."
					}
				],
				"responses": {
					"200": {
						"content": {
							"application/json": {
								"examples": {
									"One refund request": {
										"description": "Preserve the captured array even though this is a single-request lookup.",
										"value": [
											{
												"additionalReference": "ex-add-ref",
												"merchantCode": "1337",
												"merchantName": "Menethil",
												"paymentReference": "247439",
												"refundRequestUniqueId": "refund-5616244556149",
												"refundValue": 3,
												"refundValueString": "Processed Amount",
												"requestReason": "Example capture",
												"requestStatus": 0,
												"requestStatusString": "Pending"
											}
										]
									}
								},
								"schema": {
									"$ref": "#/components/schemas/RefundResponse"
								}
							}
						},
						"description": "Return refund request for the provided payment reference."
					},
					"400": {
						"content": {
							"application/json": {
								"schema": {
									"type": "object"
								}
							}
						},
						"description": "Invalid input detail."
					},
					"404": {
						"content": {
							"application/json": {
								"schema": {
									"type": "object"
								}
							}
						},
						"description": "Unable to find the refund request by the reference provided."
					},
					"500": {
						"content": {
							"application/json": {
								"schema": {
									"type": "object"
								}
							}
						},
						"description": "Something went wrong. Please try again."
					}
				},
				"security": [
					{
						"Api-Key": [],
						"BasicAuth": []
					}
				],
				"tags": [
					"Payments"
				],
				"summary": "Get a refund request",
				"description": "Returns the refund request for the specified payment and refund request unique ID."
			}
		},
		"/v2/payments/{paymentReference}": {
			"get": {
				"operationId": "Payments_Get",
				"parameters": [
					{
						"in": "path",
						"name": "paymentReference",
						"required": true,
						"schema": {
							"type": "string"
						},
						"description": "The unique reference for the payment."
					}
				],
				"responses": {
					"200": {
						"content": {
							"application/json": {
								"examples": {
									"Payment": {
										"description": "Baseline lookup by payment reference.",
										"value": {
											"abn": "51824753556",
											"accountOrCardNo": "555555XXXXXX4444",
											"additionalData": {
												"authCode": "SAMPLE_AUTH_CODE",
												"rrn": "SAMPLE_RRN",
												"stan": "SAMPLE_STAN"
											},
											"additionalReference": "ex-add-ref",
											"baseAmount": 1,
											"cardCategory": "International Cards",
											"cardTypeString": "Mastercard",
											"cardTypeValue": 2,
											"customerFee": 0,
											"customerName": "Test Customer",
											"customerReference": "cust-pay-4645997731713",
											"fundsToMerchant": 1,
											"isPaymentChargeBacked": false,
											"isPaymentRecalled": false,
											"isPaymentRefunded": false,
											"isPaymentRetryScheduled": false,
											"isPaymentSettledToMerchant": false,
											"merchantCode": "1337",
											"merchantFee": 0,
											"merchantName": "Menethil",
											"merchantUniquePaymentId": "pay-4601276609115",
											"oneOffPaymentReference": "oneoff-3744147771503",
											"paymentAccount": "Card",
											"paymentAmount": 1,
											"paymentCard": "MasterCard",
											"paymentReference": "247439",
											"paymentSourceDisplay": "Api Tokenised Payment",
											"paymentStatus": "Successful",
											"processingDate": "2026-09-24T00:37:09.113",
											"processorReference": "3f4d6f4811031a99ec1b",
											"settlementDate": "2026-09-25T00:00:00",
											"settlementFrequencyString": "Monthly",
											"settlementFrequencyValue": 2,
											"settlementType": "Gross",
											"subCardTypeString": "",
											"transactionType": 1,
											"transactionTypeDisplay": "Charge"
										}
									}
								},
								"schema": {
									"$ref": "#/components/schemas/PaymentResponse"
								}
							}
						},
						"description": "Found the payment."
					},
					"400": {
						"content": {
							"application/json": {
								"schema": {
									"type": "object"
								}
							}
						},
						"description": "Invalid payment reference."
					},
					"404": {
						"content": {
							"application/json": {
								"schema": {
									"type": "object"
								}
							}
						},
						"description": "Unable to find the payment by the reference provided."
					}
				},
				"security": [
					{
						"Api-Key": [],
						"BasicAuth": []
					}
				],
				"tags": [
					"Payments"
				],
				"summary": "Get a payment",
				"description": "Returns the payment for the specified payment reference."
			}
		},
		"/v2/payments/{paymentReference}/refundrequests": {
			"get": {
				"operationId": "Payments_ListRefundRequests",
				"parameters": [
					{
						"in": "path",
						"name": "paymentReference",
						"required": true,
						"schema": {
							"type": "string"
						},
						"description": "The unique reference for the payment."
					}
				],
				"responses": {
					"200": {
						"content": {
							"application/json": {
								"examples": {
									"Refund requests of a payment": {
										"description": "Shows refund requests separately from the payment record.",
										"value": [
											{
												"additionalReference": "ex-add-ref",
												"merchantCode": "1337",
												"merchantName": "Menethil",
												"paymentReference": "247439",
												"refundRequestUniqueId": "refund-5616244556149",
												"refundValue": 3,
												"refundValueString": "Processed Amount",
												"requestReason": "Example capture",
												"requestStatus": 0,
												"requestStatusString": "Pending"
											}
										]
									}
								},
								"schema": {
									"items": {
										"$ref": "#/components/schemas/RefundResponse"
									},
									"type": "array"
								}
							}
						},
						"description": "Return refund request for the provided payment reference."
					},
					"400": {
						"content": {
							"application/json": {
								"schema": {
									"additionalProperties": {
										"$ref": "#/components/schemas/ModelState"
									},
									"type": "object"
								}
							}
						},
						"description": "Invalid input detail."
					},
					"404": {
						"description": "Payment not found."
					},
					"500": {
						"content": {
							"application/json": {
								"schema": {
									"type": "object"
								}
							}
						},
						"description": "Something went wrong. Please try again."
					}
				},
				"security": [
					{
						"Api-Key": [],
						"BasicAuth": []
					}
				],
				"tags": [
					"Payments"
				],
				"summary": "List refund requests",
				"description": "Returns the refund requests for the specified payment."
			},
			"post": {
				"operationId": "Payments_CreateRefundRequest",
				"parameters": [
					{
						"in": "path",
						"name": "paymentReference",
						"required": true,
						"schema": {
							"type": "string"
						},
						"description": "The unique reference for the payment."
					}
				],
				"requestBody": {
					"content": {
						"application/json": {
							"examples": {
								"Base amount refund request": {
									"description": "Distinct refund basis; preserve the pending-request outcome.",
									"value": {
										"refundRequestReason": "Base amount refund",
										"refundRequestUniqueId": "capb-rb-8041694815270",
										"refundValue": 1
									}
								},
								"Full refund request": {
									"description": "Distinct refund basis; this is a request, not proof that money was refunded.",
									"value": {
										"refundRequestReason": "Full refund capture",
										"refundRequestUniqueId": "capb-rf-4911706428043",
										"refundValue": 3
									}
								},
								"Partial refund request": {
									"description": "Shows the explicit amount required for a partial refund request.",
									"value": {
										"refundAmount": 50,
										"refundRequestReason": "Partial refund capture",
										"refundRequestUniqueId": "capb-rp-3672802612651",
										"refundValue": 2
									}
								}
							},
							"schema": {
								"$ref": "#/components/schemas/RefundRequest"
							}
						},
						"application/x-www-form-urlencoded": {
							"schema": {
								"$ref": "#/components/schemas/RefundRequest"
							}
						}
					},
					"required": true,
					"description": "Refund request details required to create a refund request."
				},
				"responses": {
					"201": {
						"content": {
							"application/json": {
								"examples": {
									"Base amount refund request": {
										"description": "Distinct refund basis; preserve the pending-request outcome.",
										"value": [
											{
												"merchantCode": "1337",
												"merchantName": "Menethil",
												"paymentReference": "247424",
												"refundRequestUniqueId": "capb-rb-8041694815270",
												"refundValue": 1,
												"refundValueString": "Base Amount",
												"requestReason": "Base amount refund",
												"requestStatus": 0,
												"requestStatusString": "Pending"
											}
										]
									},
									"Full refund request": {
										"description": "Distinct refund basis; this is a request, not proof that money was refunded.",
										"value": [
											{
												"merchantCode": "1337",
												"merchantName": "Menethil",
												"paymentReference": "247442",
												"refundAmount": 1,
												"refundRequestUniqueId": "capb-rf-4911706428043",
												"refundValue": 3,
												"refundValueString": "Processed Amount",
												"requestReason": "Full refund capture",
												"requestStatus": 0,
												"requestStatusString": "Pending"
											}
										]
									},
									"Partial refund request": {
										"description": "Shows the explicit amount required for a partial refund request.",
										"value": [
											{
												"merchantCode": "1337",
												"merchantName": "Menethil",
												"paymentReference": "247433",
												"refundAmount": 50,
												"refundRequestUniqueId": "capb-rp-3672802612651",
												"refundValue": 2,
												"refundValueString": "Partial Amount",
												"requestReason": "Partial refund capture",
												"requestStatus": 0,
												"requestStatusString": "Pending"
											}
										]
									}
								},
								"schema": {
									"items": {
										"$ref": "#/components/schemas/RefundResponse"
									},
									"type": "array"
								}
							}
						},
						"links": {
							"GetOneRefundRequest": {
								"description": "One refund request on its own. Despite the uniqueId path segment, the first parameter is the payment reference — the merchant's own merchantUniquePaymentId returns 404 here. The response this link reads from is an array, so both expressions index element 0: a call that creates more than one refund request links only the first. The target returns an array of one, not a single object.",
								"operationId": "Payments_GetRefundRequestByUniqueId",
								"parameters": {
									"paymentReference": "$response.body#/0/paymentReference",
									"refundRequestUniqueId": "$response.body#/0/refundRequestUniqueId"
								}
							}
						},
						"description": "Refund request is successfully created for the payment."
					},
					"300": {
						"content": {
							"application/json": {
								"examples": {
									"Refund request already exists": {
										"description": "Operation-specific duplicate refund request.",
										"value": {
											"message": "This refund request unique id is already used to create a refund request for this merchant."
										}
									}
								},
								"schema": {
									"type": "object"
								}
							}
						},
						"description": "Duplicate refund request."
					},
					"400": {
						"content": {
							"application/json": {
								"schema": {
									"additionalProperties": {
										"$ref": "#/components/schemas/ModelState"
									},
									"type": "object"
								}
							}
						},
						"description": "Invalid input detail."
					},
					"403": {
						"content": {
							"application/json": {
								"schema": {
									"type": "object"
								}
							}
						},
						"description": "Merchant is forbidden to perform this operation."
					},
					"404": {
						"description": "Payment not found."
					},
					"500": {
						"content": {
							"application/json": {
								"schema": {
									"type": "object"
								}
							}
						},
						"description": "Something went wrong. Please try again."
					}
				},
				"security": [
					{
						"Api-Key": [],
						"BasicAuth": []
					}
				],
				"tags": [
					"Payments"
				],
				"summary": "Create a refund request",
				"description": "Creates a refund request for the specified payment."
			}
		},
		"/v2/preauths": {
			"get": {
				"operationId": "Preauths_List",
				"parameters": [
					{
						"in": "query",
						"name": "customerReference",
						"required": false,
						"schema": {
							"type": "string"
						},
						"description": "Filter by the merchant's unique reference for the customer."
					},
					{
						"in": "query",
						"name": "fromProcessedDate",
						"required": false,
						"schema": {
							"format": "date-time",
							"type": "string"
						},
						"description": "Return preauthorizations processed on or after this date and time. Format: ISO 8601 date-time."
					},
					{
						"in": "query",
						"name": "toProcessedDate",
						"required": false,
						"schema": {
							"format": "date-time",
							"type": "string"
						},
						"description": "Return preauthorizations processed on or before this date and time. Format: ISO 8601 date-time."
					},
					{
						"in": "query",
						"name": "offset",
						"required": false,
						"schema": {
							"default": 0,
							"format": "int32",
							"type": "integer"
						},
						"description": "The zero-based index of the first record to return. Default: 0."
					},
					{
						"in": "query",
						"name": "limit",
						"required": false,
						"schema": {
							"default": 20,
							"format": "int32",
							"type": "integer"
						},
						"description": "The maximum number of records to return."
					}
				],
				"responses": {
					"200": {
						"content": {
							"application/json": {
								"examples": {
									"Preauths for one customer": {
										"description": "A populated list containing different preauth outcomes; do not hard-code an old item count in the summary.",
										"value": [
											{
												"abn": "51824753556",
												"accountOrCardNo": "555555XXXXXX4444",
												"additionalReference": "ex-preauth",
												"baseAmount": 1,
												"cardCategory": "International Cards",
												"customerFee": 0,
												"customerName": "Test Customer",
												"customerReference": "cust-pre-8330623881192",
												"fundsToMerchant": 0,
												"isPaymentChargeBacked": false,
												"isPaymentRecalled": false,
												"isPaymentRefunded": false,
												"isPaymentRetryScheduled": false,
												"isPaymentSettledToMerchant": false,
												"merchantCode": "1337",
												"merchantFee": 0.05,
												"merchantName": "Menethil",
												"merchantUniquePaymentId": "pre-cap-1139152540592",
												"paymentAccount": "Card",
												"paymentCard": "MasterCard",
												"paymentSourceDisplay": "Api Tokenised Preauth",
												"preauthAmount": 1,
												"preauthExpiryAt": "2026-09-29T00:36:59.393",
												"preauthReference": "247432",
												"preauthStatus": "Successful",
												"processingDate": "2026-09-24T00:36:59.393",
												"processorReference": "fd93b022d15c098549ea",
												"remainingPreauthAmount": 0,
												"transactionType": 9,
												"transactionTypeDisplay": "Preauthorization"
											}
										]
									}
								},
								"schema": {
									"items": {
										"$ref": "#/components/schemas/PreauthResponse"
									},
									"type": "array"
								}
							}
						},
						"description": "Found preauths."
					}
				},
				"security": [
					{
						"Api-Key": [],
						"BasicAuth": []
					}
				],
				"tags": [
					"Preauths"
				],
				"summary": "List preauthorizations",
				"description": "Returns preauthorizations that match the supplied filter criteria."
			},
			"post": {
				"operationId": "Preauths_Create",
				"requestBody": {
					"content": {
						"application/json": {
							"examples": {
								"Preauth with a card proxy": {
									"description": "Tokenised-card input.",
									"value": {
										"cardProxy": "feb4e012caec4329976e437100a566b6",
										"customerReference": "cust-pre-1959173251176",
										"merchantUniquePaymentId": "pre-proxy-7501045558834",
										"preauthAmount": 1
									}
								},
								"Preauth with a payment account proxy": {
									"description": "General proxy input.",
									"value": {
										"customerReference": "cust-pre-8148794145090",
										"merchantUniquePaymentId": "pre-pap-2128434321377",
										"paymentAccountProxy": {
											"label": "preauth pap",
											"proxy": "f655a7cc495a4f29a976ccdf87724821"
										},
										"preauthAmount": 1
									}
								},
								"Preauth with card details": {
									"description": "Prefer the simpler direct-card request over the optional-field-heavy create.",
									"value": {
										"card": {
											"cardHolder": "Test Cardholder",
											"cardNumber": "5555555555554444",
											"cvv": "123",
											"expiryMonth": "10",
											"expiryYear": "2030"
										},
										"customerReference": "cust-pre-3089411743683",
										"merchantUniquePaymentId": "pre-void-1020706351846",
										"preauthAmount": 1
									}
								},
								"Preauth with the stored customer method": {
									"description": "Customer-reference-only funding input; do not label it as proof the customer paid the fee.",
									"value": {
										"customerReference": "cust-pre-4244871898321",
										"merchantUniquePaymentId": "pre-fee-customer-8386960408417",
										"overrideFeePayer": 2,
										"preauthAmount": 1
									}
								}
							},
							"schema": {
								"$ref": "#/components/schemas/PreauthRequest"
							}
						},
						"application/x-www-form-urlencoded": {
							"schema": {
								"$ref": "#/components/schemas/PreauthRequest"
							}
						}
					},
					"required": true,
					"description": "Preauthorization details required to create a preauthorization."
				},
				"responses": {
					"201": {
						"content": {
							"application/json": {
								"examples": {
									"Declined preauth": {
										"description": "Essential distinction: HTTP success can contain a failed preauth outcome.",
										"value": {
											"accountOrCardNo": "424242XXXXXX4242",
											"baseAmount": 1,
											"customerFee": 0,
											"customerReference": "cust-pre-2621060456847",
											"failureCode": "2003",
											"failureReason": "The transaction was declined (Test decline)",
											"fundsToMerchant": 0,
											"isPaymentChargeBacked": false,
											"isPaymentRecalled": false,
											"isPaymentRefunded": false,
											"isPaymentRetryScheduled": false,
											"isPaymentSettledToMerchant": false,
											"merchantCode": "1337",
											"merchantFee": 0.05,
											"merchantName": "Menethil",
											"merchantUniquePaymentId": "pre-decline-9232492623152",
											"paymentAccount": "Card",
											"paymentCard": "Visa",
											"paymentSourceDisplay": "Api Tokenised Preauth",
											"preauthAmount": 1,
											"preauthExpiryAt": "2026-09-29T00:37:17.5346242",
											"preauthReference": "247443",
											"preauthStatus": "Failed",
											"processingDate": "2026-09-24T00:37:17.5346242",
											"processorReference": "e51246d28d887dd86e98",
											"remainingPreauthAmount": 1,
											"transactionType": 9,
											"transactionTypeDisplay": "Preauthorization"
										}
									},
									"Preauth with a card proxy": {
										"description": "Tokenised-card input.",
										"value": {
											"accountOrCardNo": "555555XXXXXX4444",
											"baseAmount": 1,
											"customerFee": 0,
											"customerReference": "cust-pre-1959173251176",
											"fundsToMerchant": 0,
											"isPaymentChargeBacked": false,
											"isPaymentRecalled": false,
											"isPaymentRefunded": false,
											"isPaymentRetryScheduled": false,
											"isPaymentSettledToMerchant": false,
											"merchantCode": "1337",
											"merchantFee": 0.05,
											"merchantName": "Menethil",
											"merchantUniquePaymentId": "pre-proxy-7501045558834",
											"paymentAccount": "Card",
											"paymentCard": "MasterCard",
											"paymentSourceDisplay": "Api Tokenised Preauth",
											"preauthAmount": 1,
											"preauthExpiryAt": "2026-09-29T00:37:12.815603",
											"preauthReference": "247441",
											"preauthStatus": "Successful",
											"processingDate": "2026-09-24T00:37:12.815603",
											"processorReference": "5c46f7a9344a3b37c12c",
											"remainingPreauthAmount": 1,
											"transactionType": 9,
											"transactionTypeDisplay": "Preauthorization"
										}
									},
									"Preauth with a payment account proxy": {
										"description": "General proxy input.",
										"value": {
											"accountOrCardNo": "555555XXXXXX4444",
											"baseAmount": 1,
											"customerFee": 0,
											"customerReference": "cust-pre-8148794145090",
											"fundsToMerchant": 0,
											"isPaymentChargeBacked": false,
											"isPaymentRecalled": false,
											"isPaymentRefunded": false,
											"isPaymentRetryScheduled": false,
											"isPaymentSettledToMerchant": false,
											"merchantCode": "1337",
											"merchantFee": 0.05,
											"merchantName": "Menethil",
											"merchantUniquePaymentId": "pre-pap-2128434321377",
											"paymentAccount": "Card",
											"paymentCard": "MasterCard",
											"paymentSourceDisplay": "Api Tokenised Preauth",
											"preauthAmount": 1,
											"preauthExpiryAt": "2026-09-29T00:36:54.6585957",
											"preauthReference": "247429",
											"preauthStatus": "Successful",
											"processingDate": "2026-09-24T00:36:54.6585957",
											"processorReference": "38e04bec3280e3d7d668",
											"remainingPreauthAmount": 1,
											"transactionType": 9,
											"transactionTypeDisplay": "Preauthorization"
										}
									},
									"Preauth with card details": {
										"description": "Prefer the simpler direct-card request over the optional-field-heavy create.",
										"value": {
											"accountOrCardNo": "555555XXXXXX4444",
											"baseAmount": 1,
											"customerFee": 0,
											"customerReference": "cust-pre-3089411743683",
											"fundsToMerchant": 0,
											"isPaymentChargeBacked": false,
											"isPaymentRecalled": false,
											"isPaymentRefunded": false,
											"isPaymentRetryScheduled": false,
											"isPaymentSettledToMerchant": false,
											"merchantCode": "1337",
											"merchantFee": 0.05,
											"merchantName": "Menethil",
											"merchantUniquePaymentId": "pre-void-1020706351846",
											"paymentAccount": "Card",
											"paymentCard": "MasterCard",
											"paymentSourceDisplay": "Api Tokenised Preauth",
											"preauthAmount": 1,
											"preauthExpiryAt": "2026-09-29T00:37:25.9255714",
											"preauthReference": "247445",
											"preauthStatus": "Successful",
											"processingDate": "2026-09-24T00:37:25.9255714",
											"processorReference": "4455ff2855e49fed48ba",
											"remainingPreauthAmount": 1,
											"transactionType": 9,
											"transactionTypeDisplay": "Preauthorization"
										}
									},
									"Preauth with the stored customer method": {
										"description": "Customer-reference-only funding input; do not label it as proof the customer paid the fee.",
										"value": {
											"accountOrCardNo": "555555XXXXXX4444",
											"baseAmount": 1,
											"customerFee": 0,
											"customerReference": "cust-pre-4244871898321",
											"fundsToMerchant": 0,
											"isPaymentChargeBacked": false,
											"isPaymentRecalled": false,
											"isPaymentRefunded": false,
											"isPaymentRetryScheduled": false,
											"isPaymentSettledToMerchant": false,
											"merchantCode": "1337",
											"merchantFee": 0.05,
											"merchantName": "Menethil",
											"merchantUniquePaymentId": "pre-fee-customer-8386960408417",
											"paymentAccount": "Card",
											"paymentCard": "MasterCard",
											"paymentSourceDisplay": "Api Tokenised Preauth",
											"preauthAmount": 1,
											"preauthExpiryAt": "2026-09-29T00:37:20.6441068",
											"preauthReference": "247444",
											"preauthStatus": "Successful",
											"processingDate": "2026-09-24T00:37:20.6441068",
											"processorReference": "514b16db3417d8735c0d",
											"remainingPreauthAmount": 1,
											"transactionType": 9,
											"transactionTypeDisplay": "Preauthorization"
										}
									}
								},
								"schema": {
									"$ref": "#/components/schemas/PreauthResponse"
								}
							}
						},
						"links": {
							"CapturePreauth": {
								"description": "Takes money held by this preauth. A capture creates a separate payment and reduces remainingPreauthAmount; asking for more than remains is refused with 400 naming the remaining amount as the ceiling.",
								"operationId": "Preauths_CreateCapture",
								"parameters": {
									"preauthReference": "$response.body#/preauthReference"
								}
							},
							"Get": {
								"description": "Reads the preauth back, in the same shape as this response. Its remainingPreauthAmount is what later captures are measured against.",
								"operationId": "Preauths_Get",
								"parameters": {
									"preauthReference": "$response.body#/preauthReference"
								}
							},
							"VoidPreauth": {
								"description": "Releases the hold without taking the money. It succeeds once — voiding a preauth that is already voided is refused with 400 naming its current status.",
								"operationId": "Preauths_UpdateVoid",
								"parameters": {
									"preauthReference": "$response.body#/preauthReference"
								}
							}
						},
						"description": "Preauth is created."
					},
					"300": {
						"content": {
							"application/json": {
								"schema": {
									"type": "object"
								}
							}
						},
						"description": "Duplicate merchant unique id."
					},
					"400": {
						"content": {
							"application/json": {
								"schema": {
									"additionalProperties": {
										"$ref": "#/components/schemas/ModelState"
									},
									"type": "object"
								}
							}
						},
						"description": "Invalid input detail."
					},
					"403": {
						"content": {
							"application/json": {
								"schema": {
									"additionalProperties": {
										"$ref": "#/components/schemas/ModelState"
									},
									"type": "object"
								}
							}
						},
						"description": "Invalid permission."
					},
					"500": {
						"content": {
							"application/json": {
								"schema": {
									"type": "object"
								}
							}
						},
						"description": "Something went wrong. Preauth may or may not be created."
					}
				},
				"security": [
					{
						"Api-Key": [],
						"BasicAuth": []
					}
				],
				"tags": [
					"Preauths"
				],
				"summary": "Create a preauthorization",
				"description": "Creates a preauthorization from the supplied request payload."
			}
		},
		"/v2/preauths/{preauthReference}": {
			"get": {
				"operationId": "Preauths_Get",
				"parameters": [
					{
						"in": "path",
						"name": "preauthReference",
						"required": true,
						"schema": {
							"type": "string"
						},
						"description": "The unique reference for the preauthorization."
					}
				],
				"responses": {
					"200": {
						"content": {
							"application/json": {
								"examples": {
									"Preauth": {
										"description": "Baseline lookup of a hold.",
										"value": {
											"abn": "51824753556",
											"accountOrCardNo": "555555XXXXXX4444",
											"additionalReference": "ex-preauth",
											"baseAmount": 1,
											"cardCategory": "International Cards",
											"customerFee": 0,
											"customerName": "Test Customer",
											"customerReference": "cust-pre-8330623881192",
											"fundsToMerchant": 0,
											"isPaymentChargeBacked": false,
											"isPaymentRecalled": false,
											"isPaymentRefunded": false,
											"isPaymentRetryScheduled": false,
											"isPaymentSettledToMerchant": false,
											"merchantCode": "1337",
											"merchantFee": 0.05,
											"merchantName": "Menethil",
											"merchantUniquePaymentId": "pre-cap-1139152540592",
											"paymentAccount": "Card",
											"paymentCard": "MasterCard",
											"preauthAmount": 1,
											"preauthExpiryAt": "2026-09-29T00:36:59.393",
											"preauthReference": "247432",
											"preauthStatus": "Successful",
											"processingDate": "2026-09-24T00:36:59.393",
											"processorReference": "fd93b022d15c098549ea",
											"remainingPreauthAmount": 1,
											"transactionType": 9,
											"transactionTypeDisplay": "Preauthorization"
										}
									}
								},
								"schema": {
									"$ref": "#/components/schemas/PreauthResponse"
								}
							}
						},
						"description": "Found the preauth."
					},
					"404": {
						"content": {
							"application/json": {
								"schema": {
									"type": "object"
								}
							}
						},
						"description": "Unable to find the preauth by the reference provided."
					}
				},
				"security": [
					{
						"Api-Key": [],
						"BasicAuth": []
					}
				],
				"tags": [
					"Preauths"
				],
				"summary": "Get a preauthorization by reference",
				"description": "Returns preauthorization details for the specified preauthorization reference."
			}
		},
		"/v2/preauths/{preauthReference}/captures": {
			"post": {
				"operationId": "Preauths_CreateCapture",
				"parameters": [
					{
						"in": "path",
						"name": "preauthReference",
						"required": true,
						"schema": {
							"type": "string"
						},
						"description": "The unique reference for the preauthorization."
					}
				],
				"requestBody": {
					"content": {
						"application/json": {
							"examples": {
								"Capture exceeds the remaining hold": {
									"description": "Keep the amount-bearing request alongside the refusal; the error scenario teaches a constraint.",
									"value": {
										"merchantUniquePaymentId": "capture-over-4505624413024",
										"paymentAmount": 100,
										"sendPaymentConfirmation": false
									}
								},
								"Preauth captured": {
									"description": "Shows conversion of a hold into a separate payment.",
									"value": {
										"additionalReference": "ex-capture",
										"merchantUniquePaymentId": "capture-2931752970907",
										"oneOffPaymentReference": "cap-oneoff-8077238399302",
										"paymentAmount": 1,
										"sendPaymentConfirmation": false
									}
								}
							},
							"schema": {
								"$ref": "#/components/schemas/CaptureCardRequest"
							}
						},
						"application/x-www-form-urlencoded": {
							"schema": {
								"$ref": "#/components/schemas/CaptureCardRequest"
							}
						}
					},
					"required": true,
					"description": "Capture details required to capture the specified preauthorization."
				},
				"responses": {
					"201": {
						"content": {
							"application/json": {
								"examples": {
									"Preauth captured": {
										"description": "Shows conversion of a hold into a separate payment.",
										"value": {
											"abn": "51824753556",
											"accountOrCardNo": "555555XXXXXX4444",
											"baseAmount": 1,
											"customerFee": 0,
											"customerName": "Test Customer",
											"customerReference": "cust-pre-8330623881192",
											"fundsToMerchant": 1,
											"isPaymentChargeBacked": false,
											"isPaymentRecalled": false,
											"isPaymentRefunded": false,
											"isPaymentRetryScheduled": false,
											"isPaymentSettledToMerchant": false,
											"merchantCode": "1337",
											"merchantFee": 0.05,
											"merchantName": "Menethil",
											"merchantUniquePaymentId": "capture-2931752970907",
											"paymentAccount": "Card",
											"paymentAmount": 1,
											"paymentCard": "MasterCard",
											"paymentReference": "247434",
											"paymentSourceDisplay": "Api Tokenised Payment",
											"paymentStatus": "Successful",
											"preauthExpiryAt": "2026-09-29T00:36:59.393",
											"processingDate": "2026-09-24T00:37:00.9245589",
											"processorReference": "31802b20b72daee39421",
											"remainingPreauthAmount": 0,
											"settlementDate": "2026-09-24T00:00:00",
											"transactionType": 1,
											"transactionTypeDisplay": "Charge"
										}
									}
								},
								"schema": {
									"$ref": "#/components/schemas/CaptureCardResponse"
								}
							}
						},
						"links": {
							"GetPayment": {
								"description": "A capture produces a separate payment record; this link reads it. The reverse direction does not exist — that payment's preauthReference and originalTransactionReference are both null, so it does not point back at the hold it came from.",
								"operationId": "Payments_Get",
								"parameters": {
									"paymentReference": "$response.body#/paymentReference"
								}
							},
							"VoidPreauth": {
								"description": "Voids the preauth this capture was taken against. The reference comes from this request's own path rather than from this response, which names the payment the capture created and not the hold behind it.",
								"operationId": "Preauths_UpdateVoid",
								"parameters": {
									"preauthReference": "$request.path.preauthReference"
								}
							}
						},
						"description": "Preauth has been captured."
					},
					"300": {
						"content": {
							"application/json": {
								"examples": {
									"Capture payment id already used": {
										"description": "Duplicate capture identifier handling.",
										"value": {
											"message": "The merchant unique id already exists."
										}
									}
								},
								"schema": {
									"type": "object"
								}
							}
						},
						"description": "The merchant unique id already exists."
					},
					"400": {
						"content": {
							"application/json": {
								"examples": {
									"Capture exceeds the remaining hold": {
										"description": "Keep the amount-bearing request alongside the refusal; the error scenario teaches a constraint.",
										"value": {
											"message": "Invalid payment amount. Cannot capture payment more than the preauth remaining amount."
										}
									}
								},
								"schema": {
									"type": "object"
								}
							}
						},
						"description": "Invalid preauth reference."
					},
					"403": {
						"content": {
							"application/json": {
								"schema": {
									"additionalProperties": {
										"$ref": "#/components/schemas/ModelState"
									},
									"type": "object"
								}
							}
						},
						"description": "Invalid permission."
					},
					"404": {
						"content": {
							"application/json": {
								"schema": {
									"type": "object"
								}
							}
						},
						"description": "Unable to find the preauth by the preauth reference provided."
					},
					"500": {
						"content": {
							"application/json": {
								"schema": {
									"type": "object"
								}
							}
						},
						"description": "Something went wrong. Preauth may or may not be captured."
					}
				},
				"security": [
					{
						"Api-Key": [],
						"BasicAuth": []
					}
				],
				"tags": [
					"Preauths"
				],
				"summary": "Capture a preauthorization",
				"description": "Captures the specified preauthorization."
			}
		},
		"/v2/preauths/{preauthReference}/voids": {
			"put": {
				"operationId": "Preauths_UpdateVoid",
				"parameters": [
					{
						"in": "path",
						"name": "preauthReference",
						"required": true,
						"schema": {
							"type": "string"
						},
						"description": "The unique reference for the preauthorization."
					}
				],
				"responses": {
					"200": {
						"content": {
							"application/json": {
								"examples": {
									"Preauth voided": {
										"description": "Shows the successful release operation; no request body is sent.",
										"value": {
											"preauthReference": "247445",
											"status": "Successful"
										}
									}
								},
								"schema": {
									"$ref": "#/components/schemas/VoidCardResponse"
								}
							}
						},
						"description": "Preauth has been voided."
					},
					"400": {
						"content": {
							"application/json": {
								"examples": {
									"Preauth already voided": {
										"description": "Shows a state-dependent refusal when repeating the action.",
										"value": {
											"message": "Incorrect preauth status: Cancelled."
										}
									}
								},
								"schema": {
									"type": "object"
								}
							}
						},
						"description": "Invalid preauth reference."
					},
					"403": {
						"content": {
							"application/json": {
								"schema": {
									"additionalProperties": {
										"$ref": "#/components/schemas/ModelState"
									},
									"type": "object"
								}
							}
						},
						"description": "Invalid permission."
					},
					"404": {
						"content": {
							"application/json": {
								"schema": {
									"type": "object"
								}
							}
						},
						"description": "Unable to find the preauth by the preauth reference provided."
					},
					"500": {
						"content": {
							"application/json": {
								"schema": {
									"type": "object"
								}
							}
						},
						"description": "Something went wrong. Preauth may or may not be voided."
					}
				},
				"security": [
					{
						"Api-Key": [],
						"BasicAuth": []
					}
				],
				"tags": [
					"Preauths"
				],
				"summary": "Void a preauthorization",
				"description": "Voids the specified preauthorization."
			}
		},
		"/v2/proxies/{proxy}": {
			"get": {
				"operationId": "Proxies_Get",
				"parameters": [
					{
						"in": "path",
						"name": "proxy",
						"required": true,
						"schema": {
							"type": "string"
						},
						"description": "The payment account proxy value."
					}
				],
				"responses": {
					"200": {
						"content": {
							"application/json": {
								"examples": {
									"Payment account proxy": {
										"description": "Baseline card-backed proxy read.",
										"value": {
											"accountType": "Card",
											"cardExpiry": "1229",
											"cardHolderName": "Test Cardholder",
											"cardNumber": "555555XXXXXX4444",
											"cardType": "MasterCard"
										}
									}
								},
								"schema": {
									"$ref": "#/components/schemas/PaymentAccountProxyResponse"
								}
							}
						},
						"description": "Payment account proxy provided."
					},
					"400": {
						"content": {
							"application/json": {
								"schema": {
									"additionalProperties": {
										"$ref": "#/components/schemas/ModelState"
									},
									"type": "object"
								}
							}
						},
						"description": "Invalid input detail."
					},
					"404": {
						"description": "Unable to find the payment account proxy."
					}
				},
				"security": [
					{
						"Api-Key": [],
						"BasicAuth": []
					}
				],
				"tags": [
					"Proxies"
				],
				"summary": "Get a proxy",
				"description": "Returns the payment account proxy for the specified proxy value."
			}
		},
		"/v2/proxies/{proxy}/pricing": {
			"get": {
				"operationId": "Proxies_GetPricing",
				"parameters": [
					{
						"in": "path",
						"name": "proxy",
						"required": true,
						"schema": {
							"type": "string"
						},
						"description": "The payment account proxy value."
					},
					{
						"in": "query",
						"name": "paymentAmount",
						"required": true,
						"schema": {
							"format": "double",
							"type": "number"
						},
						"description": "The payment amount used to calculate pricing."
					}
				],
				"responses": {
					"200": {
						"content": {
							"application/json": {
								"examples": {
									"Proxy pricing": {
										"description": "Baseline pricing response; the amount is a query parameter.",
										"value": {
											"pricing": {
												"customerFee": 0,
												"merchantFee": 0,
												"paymentAmount": 1,
												"processingAmount": 1
											}
										}
									}
								},
								"schema": {
									"$ref": "#/components/schemas/PricingResponse"
								}
							}
						},
						"description": "Pricing response for proxy and payment amount provided."
					},
					"400": {
						"content": {
							"application/json": {
								"schema": {
									"additionalProperties": {
										"$ref": "#/components/schemas/ModelState"
									},
									"type": "object"
								}
							}
						},
						"description": "Invalid input detail."
					},
					"404": {
						"description": "Unable to find the pricing response for the provided proxy."
					}
				},
				"security": [
					{
						"Api-Key": [],
						"BasicAuth": []
					}
				],
				"tags": [
					"Proxies"
				],
				"summary": "Get proxy pricing",
				"description": "Returns pricing for the specified proxy and payment amount."
			}
		},
		"/v2/requestpays": {
			"post": {
				"operationId": "RequestPays_Create",
				"requestBody": {
					"content": {
						"application/json": {
							"examples": {
								"Request-pay batch created": {
									"description": "Baseline request submission; creating the batch does not demonstrate delivery or payment.",
									"value": {
										"merchantUniqueRequestBatchId": "reqpay-batch-7432704337872",
										"requestPaymentEntries": [
											{
												"customerReference": "cust-reqpay-8090506970882",
												"email": "test@zenpay.com.au",
												"firstName": "Test",
												"lastName": "Customer",
												"merchantUniquePaymentId": "reqpay-entry-2152089338749",
												"mobile": "0400000000",
												"paymentAmount": 1
											}
										]
									}
								}
							},
							"schema": {
								"$ref": "#/components/schemas/RequestPayRequest"
							}
						},
						"application/x-www-form-urlencoded": {
							"schema": {
								"$ref": "#/components/schemas/RequestPayRequest"
							}
						}
					},
					"required": true,
					"description": "Collection of request pay entries inside a container required to create a request pay."
				},
				"responses": {
					"201": {
						"content": {
							"application/json": {
								"examples": {
									"Request-pay batch created": {
										"description": "Baseline request submission; creating the batch does not demonstrate delivery or payment.",
										"value": {
											"merchantCode": "1337",
											"merchantName": "Menethil",
											"merchantUniqueRequestBatchId": "reqpay-batch-7432704337872",
											"requestPayId": 551,
											"warningMessages": ""
										}
									}
								},
								"schema": {
									"$ref": "#/components/schemas/RequestPayResponse"
								}
							}
						},
						"links": {
							"GetRequestPay": {
								"description": "The batch summary — submitted and processing dates, total entries, total amount and a status. That status settles the same way whether an entry was paid or refused, so it is not where an outcome can be read.",
								"operationId": "RequestPays_Get",
								"parameters": {
									"requestPayId": "$response.body#/requestPayId"
								}
							},
							"GetRequestPayEntries": {
								"description": "The individual entries, each with its own entry status, payment status and server-assigned reference. This is where an entry's outcome shows.",
								"operationId": "RequestPays_ListEntries",
								"parameters": {
									"requestPayId": "$response.body#/requestPayId"
								}
							}
						},
						"description": "Request to pay created successfully."
					},
					"300": {
						"content": {
							"application/json": {
								"examples": {
									"Request-pay batch id already used": {
										"description": "Duplicate submission response.",
										"value": {
											"message": "The merchant unique id already exists."
										}
									}
								},
								"schema": {
									"$ref": "#/components/schemas/AmbiguousResult"
								}
							}
						},
						"description": "Duplicate merchant unique id."
					},
					"400": {
						"content": {
							"application/json": {
								"schema": {
									"additionalProperties": {
										"$ref": "#/components/schemas/ModelState"
									},
									"type": "object"
								}
							}
						},
						"description": "Invalid request pay details."
					},
					"500": {
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/InternalServerErrorResult"
								}
							}
						},
						"description": "Something went wrong. Request to pay may or may not be created."
					}
				},
				"security": [
					{
						"Api-Key": [],
						"BasicAuth": []
					}
				],
				"tags": [
					"RequestPays"
				],
				"summary": "Create a request pay",
				"description": "Creates a request pay from the supplied request payload."
			}
		},
		"/v2/requestpays/{requestPayId}": {
			"get": {
				"operationId": "RequestPays_Get",
				"parameters": [
					{
						"in": "path",
						"name": "requestPayId",
						"required": true,
						"schema": {
							"format": "int32",
							"type": "integer"
						},
						"description": "The unique request pay identifier."
					}
				],
				"responses": {
					"200": {
						"content": {
							"application/json": {
								"examples": {
									"Request-pay batch awaiting processing": {
										"description": "Shows the state before processing completes.",
										"value": {
											"merchantCode": "1337",
											"merchantName": "Menethil",
											"merchantUniqueRequestBatchId": "reqpay-batch-5901777124032",
											"processingDate": "2026-09-24T00:36:48.05",
											"status": "ReadyForPaymentProcessing",
											"submittedDate": "2026-09-24T00:36:48.08",
											"totalAmount": 1,
											"totalEntries": 1
										}
									},
									"Request-pay batch processing completed": {
										"description": "Shows processing completion, which must not be described as customer payment completion.",
										"value": {
											"merchantCode": "1337",
											"merchantName": "Menethil",
											"merchantUniqueRequestBatchId": "reqpay-batch-5901777124032",
											"processingDate": "2026-09-24T00:36:48.05",
											"status": "Completed",
											"submittedDate": "2026-09-24T00:36:48.08",
											"totalAmount": 1,
											"totalEntries": 1
										}
									}
								},
								"schema": {
									"$ref": "#/components/schemas/ApiRequestPaySummary"
								}
							}
						},
						"description": "Request Pay summary."
					},
					"404": {
						"content": {
							"application/json": {
								"schema": {
									"type": "object"
								}
							}
						},
						"description": "Request to pay not found."
					},
					"500": {
						"content": {
							"application/json": {
								"schema": {
									"type": "object"
								}
							}
						},
						"description": "Unable to get the request payment."
					}
				},
				"security": [
					{
						"Api-Key": [],
						"BasicAuth": []
					}
				],
				"tags": [
					"RequestPays"
				],
				"summary": "Get a request pay",
				"description": "Returns the request pay for the specified request pay ID."
			}
		},
		"/v2/requestpays/{requestPayId}/entries": {
			"get": {
				"operationId": "RequestPays_ListEntries",
				"parameters": [
					{
						"in": "path",
						"name": "requestPayId",
						"required": true,
						"schema": {
							"format": "int32",
							"type": "integer"
						},
						"description": "The unique request pay identifier."
					}
				],
				"responses": {
					"200": {
						"content": {
							"application/json": {
								"examples": {
									"Entry refused for its payment option": {
										"description": "One representative entry rejection; describe other rejection reasons in the status documentation.",
										"value": [
											{
												"companyName": "Test Company Pty Ltd",
												"customerName": "Test Customer",
												"customerReference": "cust-403probe-8471919173",
												"email": "test@zenpay.com.au",
												"entryStatus": "Payment option is not RequestPay",
												"isPaymentRecalled": false,
												"isPaymentRefunded": false,
												"isPaymentRetryScheduled": false,
												"merchantCode": "1337",
												"merchantName": "Menethil",
												"mobile": "0400000000",
												"paymentAmount": 1,
												"paymentStatus": "",
												"requestReference": "9ece7b85-6776-4bfe-93d6-e79a2dff036e"
											}
										]
									},
									"Entry with a payment request sent": {
										"description": "Shows the delivery-stage entry outcome without claiming payment.",
										"value": [
											{
												"customerName": "Test Customer",
												"customerReference": "cust-reqpay-3008281808812",
												"email": "test@zenpay.com.au",
												"entryStatus": "Request Sent to Customer",
												"isPaymentRecalled": false,
												"isPaymentRefunded": false,
												"isPaymentRetryScheduled": false,
												"merchantCode": "1337",
												"merchantName": "Menethil",
												"mobile": "0400000000",
												"paymentAmount": 1,
												"paymentStatus": "",
												"requestReference": "311bc01c-1aef-486e-99e3-ab51d6b0878f"
											}
										]
									},
									"Pending request-pay entry": {
										"description": "Shows the initial entry state.",
										"value": [
											{
												"customerName": "Test Customer",
												"customerReference": "cust-reqpay-3008281808812",
												"email": "test@zenpay.com.au",
												"entryStatus": "Request Pending",
												"isPaymentRecalled": false,
												"isPaymentRefunded": false,
												"isPaymentRetryScheduled": false,
												"merchantCode": "1337",
												"merchantName": "Menethil",
												"mobile": "0400000000",
												"paymentAmount": 1,
												"paymentStatus": "",
												"requestReference": "311bc01c-1aef-486e-99e3-ab51d6b0878f"
											}
										]
									}
								},
								"schema": {
									"items": {
										"$ref": "#/components/schemas/ApiRequestPayEntry"
									},
									"type": "array"
								}
							}
						},
						"description": "List of request pay entries."
					},
					"404": {
						"content": {
							"application/json": {
								"schema": {
									"type": "object"
								}
							}
						},
						"description": "Request pay not found."
					},
					"500": {
						"content": {
							"application/json": {
								"schema": {
									"type": "object"
								}
							}
						},
						"description": "Unable to get the request to pay."
					}
				},
				"security": [
					{
						"Api-Key": [],
						"BasicAuth": []
					}
				],
				"tags": [
					"RequestPays"
				],
				"summary": "List request pay entries",
				"description": "Returns the entries for the specified request pay."
			}
		},
		"/v2/sessions": {
			"post": {
				"operationId": "Sessions_Create",
				"requestBody": {
					"content": {
						"application/json": {
							"examples": {
								"Payment session created": {
									"description": "Baseline session response and request. It proves session creation, not a completed hosted payment.",
									"value": {
										"additionalReference": "sweep-row-2",
										"allowSaveCardInformation": true,
										"allowedPaymentMethods": {
											"aliPayPlus": true,
											"applePay": true,
											"bankAccount": true,
											"googlePay": true,
											"latitudePay": false,
											"payId": true,
											"payTo": true,
											"slicePay": false,
											"unionPay": true,
											"weChat": true
										},
										"businessNumber": "51824753556",
										"callbackUrl": "https://httpbin.org/post",
										"companyName": "Test Company Pty Ltd",
										"contactNumber": "0400000000",
										"customerEmail": "test@zenpay.com.au",
										"customerName": "Test Customer",
										"customerReference": "cr-sweep-0912",
										"customization": {
											"customerNameLabel": "Customer Name",
											"customerReferenceLabel": "Customer Reference",
											"hideHeader": false,
											"hideMerchantLogo": false,
											"paymentAmountLabel": "Amount",
											"title": "Sweep Test Payment"
										},
										"departureDate": "2026-12-22T14:36:40",
										"displayMode": 0,
										"endpointUrl": "https://pay.sandbox.b2bpay.com.au",
										"hideTermsAndConditions": false,
										"isJsPlugin": true,
										"merchantCode": "1337",
										"merchantUniquePaymentId": "cli-session-5670038468670",
										"mode": 0,
										"overrideFeePayer": 0,
										"paymentAmount": 1,
										"redirectOnError": false,
										"redirectUrl": "https://httpbin.org/get",
										"sendConfirmationEmailToCustomer": false,
										"sendConfirmationEmailToMerchant": false,
										"showFailedPaymentFeeOnTokenising": true,
										"showFeeOnTokenising": true,
										"sku1": "SKU-TEST-001",
										"sku2": "SKU-TEST-002",
										"timestamp": "2026-09-23T14:36:40",
										"userMode": 0,
										"version": 5
									}
								},
								"Preauth session created": {
									"description": "Promote this distinct session purpose. Drop the unproven fee claim from its name; session creation proves no fee allocation.",
									"value": {
										"additionalReference": "sweep-row-2",
										"allowSaveCardInformation": true,
										"allowedPaymentMethods": {
											"aliPayPlus": true,
											"applePay": true,
											"bankAccount": true,
											"googlePay": true,
											"latitudePay": false,
											"payId": true,
											"payTo": true,
											"slicePay": false,
											"unionPay": true,
											"weChat": true
										},
										"businessNumber": "51824753556",
										"callbackUrl": "https://httpbin.org/post",
										"companyName": "Test Company Pty Ltd",
										"contactNumber": "0400000000",
										"customerEmail": "test@zenpay.com.au",
										"customerName": "Test Customer",
										"customerReference": "cr-sweep-0912",
										"customization": {
											"customerNameLabel": "Customer Name",
											"customerReferenceLabel": "Customer Reference",
											"hideHeader": false,
											"hideMerchantLogo": false,
											"paymentAmountLabel": "Amount",
											"title": "Sweep Test Payment"
										},
										"departureDate": "2026-12-22T14:36:40",
										"displayMode": 0,
										"endpointUrl": "https://pay.sandbox.b2bpay.com.au",
										"hideTermsAndConditions": false,
										"isJsPlugin": true,
										"merchantCode": "1337",
										"merchantUniquePaymentId": "cli-session-8617774627869",
										"mode": 3,
										"overrideFeePayer": 2,
										"paymentAmount": 1,
										"redirectOnError": false,
										"redirectUrl": "https://httpbin.org/get",
										"sendConfirmationEmailToCustomer": false,
										"sendConfirmationEmailToMerchant": false,
										"showFailedPaymentFeeOnTokenising": true,
										"showFeeOnTokenising": true,
										"sku1": "SKU-TEST-001",
										"sku2": "SKU-TEST-002",
										"timestamp": "2026-09-23T14:36:40",
										"userMode": 0,
										"version": 5
									}
								},
								"Tokenisation session created": {
									"description": "Distinct session purpose. Current capture is broad; replace it with the focused capture identified below, not an edited payload.",
									"value": {
										"additionalReference": "sweep-row-2",
										"allowSaveCardInformation": true,
										"allowedPaymentMethods": {
											"aliPayPlus": true,
											"applePay": true,
											"bankAccount": true,
											"googlePay": true,
											"latitudePay": false,
											"payId": true,
											"payTo": true,
											"slicePay": false,
											"unionPay": true,
											"weChat": true
										},
										"businessNumber": "51824753556",
										"callbackUrl": "https://httpbin.org/post",
										"companyName": "Test Company Pty Ltd",
										"contactNumber": "0400000000",
										"customerEmail": "test@zenpay.com.au",
										"customerName": "Test Customer",
										"customerReference": "cr-sweep-0912",
										"customization": {
											"customerNameLabel": "Customer Name",
											"customerReferenceLabel": "Customer Reference",
											"hideHeader": false,
											"hideMerchantLogo": false,
											"paymentAmountLabel": "Amount",
											"title": "Sweep Test Payment"
										},
										"departureDate": "2026-12-22T14:36:40",
										"displayMode": 0,
										"endpointUrl": "https://pay.sandbox.b2bpay.com.au",
										"hideTermsAndConditions": false,
										"isJsPlugin": true,
										"merchantCode": "1337",
										"merchantUniquePaymentId": "cli-session-3049030055990",
										"mode": 1,
										"overrideFeePayer": 0,
										"paymentAmount": 1,
										"redirectOnError": false,
										"redirectUrl": "https://httpbin.org/get",
										"sendConfirmationEmailToCustomer": false,
										"sendConfirmationEmailToMerchant": false,
										"showFailedPaymentFeeOnTokenising": true,
										"showFeeOnTokenising": true,
										"sku1": "SKU-TEST-001",
										"sku2": "SKU-TEST-002",
										"timestamp": "2026-09-23T14:36:40",
										"userMode": 0,
										"version": 5
									}
								}
							},
							"schema": {
								"$ref": "#/components/schemas/SessionRequest"
							}
						},
						"application/x-www-form-urlencoded": {
							"schema": {
								"$ref": "#/components/schemas/SessionRequest"
							}
						}
					},
					"required": true,
					"description": "Session details required to create a session."
				},
				"responses": {
					"201": {
						"content": {
							"application/json": {
								"examples": {
									"Payment session created": {
										"description": "Baseline session response and request. It proves session creation, not a completed hosted payment.",
										"value": {
											"endpointUrl": "https://pay.sandbox.b2bpay.com.au/online/v5/1337/yCo-3w4eOku7yWHb9XxQUA/auth",
											"expiresAt": "2026-09-23T15:06:40.9081026+00:00",
											"secureToken": "yCo-3w4eOku7yWHb9XxQUA"
										}
									},
									"Preauth session created": {
										"description": "Promote this distinct session purpose. Drop the unproven fee claim from its name; session creation proves no fee allocation.",
										"value": {
											"endpointUrl": "https://pay.sandbox.b2bpay.com.au/online/v5/1337/Q2OCFRkxik6vdu1J-Etyig/auth",
											"expiresAt": "2026-09-23T15:06:41.2675143+00:00",
											"secureToken": "Q2OCFRkxik6vdu1J-Etyig"
										}
									},
									"Tokenisation session created": {
										"description": "Distinct session purpose. Current capture is broad; replace it with the focused capture identified below, not an edited payload.",
										"value": {
											"endpointUrl": "https://pay.sandbox.b2bpay.com.au/online/v5/1337/jAsRrvN4U0ykNt46ol4Q9w/auth",
											"expiresAt": "2026-09-23T15:06:41.0487372+00:00",
											"secureToken": "jAsRrvN4U0ykNt46ol4Q9w"
										}
									}
								},
								"schema": {
									"$ref": "#/components/schemas/SessionResponse"
								}
							}
						},
						"description": "Session created."
					},
					"400": {
						"content": {
							"application/json": {
								"schema": {
									"additionalProperties": {
										"$ref": "#/components/schemas/ModelState"
									},
									"type": "object"
								}
							}
						},
						"description": "Invalid input detail."
					},
					"500": {
						"description": "Unable create session. Read the response content for more information."
					}
				},
				"security": [
					{
						"Api-Key": [],
						"BasicAuth": []
					}
				],
				"tags": [
					"Sessions"
				],
				"summary": "Create a session",
				"description": "Creates a session for the payment plugin. The session created will have an expiry."
			}
		}
	},
	"servers": [
		{
			"description": "Merchant APIs — choose an environment prefix and brand domain",
			"url": "https://{subdomain}.{baseDomain}",
			"variables": {
				"baseDomain": {
					"default": "travelpay.com.au",
					"description": "Brand domain",
					"enum": [
						"travelpay.com.au",
						"b2bpay.com.au",
						"childcareeasypay.com.au",
						"schooleasypay.com.au",
						"rentalrewards.com.au",
						"zenpay.com.au",
						"thoroughbredpayments.com.au"
					]
				},
				"subdomain": {
					"default": "api.sandbox",
					"description": "Environment prefix",
					"enum": [
						"api",
						"apiuat",
						"api.sandbox"
					]
				}
			}
		}
	],
	"tags": [
		{
			"name": "BatchPayments",
			"description": "A batch payment is a collection of payment entries submitted together for processing. Each entry settles asynchronously against a registered customer."
		},
		{
			"name": "CardProxies",
			"description": "A card proxy is a secure tokenized reference to a credit or debit card. Card proxies allow PCI-compliant payment processing without handling raw card numbers."
		},
		{
			"name": "CreditRequests",
			"description": "A credit request is a disbursement of funds to a customer bank account. Credits are submitted with a customer reference, amount, and destination account proxy."
		},
		{
			"name": "Customers",
			"description": "A customer represents a payer enrolled with a merchant. Each customer holds a profile, payment account details, payment options, and subscription status."
		},
		{
			"name": "Diagnostics",
			"description": "API health and connectivity endpoints for verifying the service is operational."
		},
		{
			"name": "Payments",
			"description": "A payment is a one-off charge against a customer's card or bank account. Payments support card proxies, customer references, refunds, and 3D Secure authentication."
		},
		{
			"name": "Preauths",
			"description": "A preauthorization places a hold on a customer's card for a specified amount. Preauthorizations can later be captured (converted to a payment) or voided (released)."
		},
		{
			"name": "Proxies",
			"description": "A proxy is a reference to a stored payment account (card, bank account, PayID, or PayTo). Proxies can be queried for details and applicable transaction pricing."
		},
		{
			"name": "RequestPays",
			"description": "A request-to-pay sends a payment request to a customer via email or SMS. Customers receive a link to complete payment through the hosted payment page."
		},
		{
			"name": "Sessions",
			"description": "A session is a secure, time-limited token used to initialize the hosted payment plugin. Sessions configure payment methods, amounts, customization, and callback URLs."
		}
	]
}
