Every operation requires trans_func, merchant_id, amount, merchant_order_no and currency. Add the conditional fields below, including when using an existing customer.
bank_account.bsb, bank_account.account_no, bank_account.account_name; do not supply a non-empty card
is3ds=1 also requires return_url. process_date supports only operations 2, 3 and 5, must be strictly after today in the business timezone, and cannot be combined with is3ds=1. See each field for types, lengths and value limits.
Supports payment token creation, token payments, card payments, hosted checkout and bank account payments. Scheduling is not allowed when is3ds=1. Display the HTML to guide customer authentication only when response data.html is nonempty. If html is empty, handle the returned status; do not assume an authentication page is required. Do not submit a nonempty card when trans_func=5. The processing date must be strictly after today in the service business timezone. data.sign is the response signature; example signatures are calculated offline according to the signing rules for each payment scenario, using the public demo key bb_docs_demo_signing_key_2030. The html field is excluded for responses awaiting 3DS authentication. Example signatures are not valid for real transactions. A payment failure returns top-level code=1, and data contains no transaction details.
A declined payment or failed 3DS authentication returns top-level code=1 and data=[]. See message for the reason. Do not read data.status as if this were a success response.
All examples illustrate request and response formats. Replace customers, orders, cards and accounts with approved test data. BASE_URL is the service root domain without /api/v2. ACCESS_TOKEN is the access_token returned by /oauth/token. Example dates are in 2030; replace them with actual dates that satisfy the current date restrictions.
OAuth2 client_credentials authorization. Obtain a new access_token when it expires.
Body
application/json
Payment request. Omitting both customer identifiers selects no-customer mode. If both customer_id and external_customer_id are provided, customer_id takes precedence. Only Visa/Mastercard/Amex cards are supported. Amount, name and card field requirements still apply to existing customers. Only operations 2/3/5 can be scheduled.
Payment amount in major currency units, for example 10.50 means AUD 10.50. At most two decimal places. Numbers and numeric strings are accepted, with a minimum of 0.01 and maximum of 999999.99; the same range applies to both types.
Required range: 0.01 <= x <= 999999.99Must be a multiple of 0.01
Whether to use 3DS: 0 disabled, 1 enabled; omission means 0. Bank account payments do not perform 3DS. Whether to display an authentication page depends on response data.html.
Return URL after 3DS authentication or checkout completion. Required when is3ds=1 or trans_func=4. Provide a valid return URL; see the schema for its length limit.
Customer reference in the merchant system. Used to find the customer when customer_id is omitted. If both identifiers are provided, customer_id takes precedence.
Whether to allow email notifications for this transaction or subscription. false prohibits them; true allows them. Omission or null uses the business's API email notification setting, which defaults to off. Actual delivery depends on notification preferences and applicable rules. Also accepts 0/1 and the strings "0"/"1".
Whether to allow SMS notifications for this transaction or subscription. false prohibits them; true allows them. Omission or null uses the business's API SMS notification setting, which defaults to off. Actual delivery depends on notification preferences and applicable rules. Also accepts 0/1 and the strings "0"/"1".
Scheduled processing date in YYYY-MM-DD format. Must be strictly after today in the service business timezone. Supported only for trans_func=2/3/5 and cannot be combined with is3ds=1. YYYY-MM-DD is recommended. Must be later than today in the service business timezone.
Response
HTTP 200. Distinguish success, business errors, validation errors and business authentication errors using the response body code.
0 means the API request was processed successfully. Token creation, checkout, 3DS and Pending results do not indicate a completed charge; assess data as well.