{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/azupay/main/json-schema/azupay-payment-obj-schema.json", "title": "PaymentObj", "x-generated": "2026-10-12", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/azupay-payment-api-openapi.yml#/components/schemas/PaymentObj", "type": "object", "additionalProperties": false, "required": [ "Payment" ], "properties": { "Payment": { "type": "object", "additionalProperties": false, "required": [ "payeeName", "clientPaymentId", "paymentAmount", "paymentDescription" ], "properties": { "clientPaymentId": { "description": "Unique Id for the payment created by the merchant system", "type": "string", "minLength": 5, "maxLength": 100, "pattern": "^[a-zA-Z0-9\\-_]*$" }, "payeeName": { "description": "The name of the Payee this payment is being sent to.", "type": "string", "pattern": "^[ -~]{1,140}$" }, "payID": { "type": "string", "minLength": 1, "maxLength": 140, "description": "The PayID for this payment. Payer can supply either a PayID or BSB/Account Number combination but not both.\n" }, "payIDType": { "type": "string", "description": "PayID Type. Only used when payment is addressed to a PayID. Valid Values:\n- 'PHONE’ Can be a mobile phone number or landline with area code. For example `+61-400000000\n- ‘EMAIL’ Email address\n- ‘ABN’ Australian Business Number\n- ‘ORG’ Organisation Name", "enum": [ "PHONE", "EMAIL", "ABN", "ORG" ] }, "bsb": { "description": "The BSB of the recipients bank. When using a BSB/Account number payments you should verify that the bsb is valid.\n", "type": "string", "pattern": "^[0-9]*$", "minLength": 6, "maxLength": 6 }, "accountNumber": { "description": "The payee's account number at the receiving financial institution.", "type": "string", "pattern": "^[0-9]*$", "minLength": 4, "maxLength": 12 }, "paymentAmount": { "type": "string", "pattern": "^[0-9]+(\\.[0-9]{2})$", "description": "Amount in AUD to be paid to the Payee" }, "paymentDescription": { "description": "Description of this payment. Will appear as the payment description in the Payee's online banking and bank statement.", "type": "string", "minLength": 5, "maxLength": 280 }, "paymentReference": { "type": "string", "maxLength": 35, "description": "A reference to the payee so that they can easily identify the payer or purpose of the transaction\n" }, "ultimatePayerName": { "description": "The name of the ultimate payer. Lets you control the Payer description (visible to the payee) on the \npayment:\n- If not populated, then your business name will appear i.e. \"My business name\".\n- If populated, then the ultimate payer name will appear instead.\n", "type": "string", "pattern": "^[a-zA-Z0-9\\-_ ]*$", "minLength": 1, "maxLength": 140 }, "paymentNotification": { "description": "Definition of the endpoint used to notify about payment updates.", "type": "object", "additionalProperties": false, "required": [ "paymentNotificationAuthorizationHeaderValue", "paymentNotificationEndpointUrl" ], "properties": { "paymentNotificationEndpointUrl": { "description": "An internet accessible url which Azupay will invoke when the status of a Payment has reached \"COMPLETE\" status. The call will be done using the HTTP POST method. The endpoint exposed by the client must be TLS 1.2 and the server certificate must be issued by a well known commercial certificate authority and that self-signed or internally signed certs are not acceptable.\n", "type": "string", "format": "url" }, "paymentNotificationAuthorizationHeaderValue": { "description": "The string that Azupay will put into the Authorization request header when making the payment notification call.", "type": "string" } } }, "metaData": { "type": "object", "additionalProperties": true, "description": "An object containing metaData field about the payment" } } } } }