Added

AUD Payin Field Requirements Update — Mandatory `accountNumber` and `bsb` fields for all AUD payin bank transfers to improve transaction accuracy for Australian customers.

We have implemented changes to capture accountNumber and bsb as mandatory fields for AUD payin transactions to improve transaction accuracy and reconciliation for Australian bank transfers.

Changes

  • New Mandatory Fields for AUD Payins: accountNumber and bsb are now required for all AUD payin bank transfers
  • Validation Checks:
    • accountNumber must be numeric and between 6–12 digits in length
    • bsb must be provided as a valid Bank-State-Branch code identifying the customer's Australian bank branch
  • Transaction Rule: AUD payin transactions will be blocked if accountNumber or bsb is missing or fails validation
  • Consistency Across Flows: Field structure for AUD payins is now aligned with AUD payouts, ensuring a uniform integration experience across both directions

Integration Details

  • Update your AUD payin transaction flow to capture and submit the customer's accountNumber and bsb
  • Ensure accountNumber is collected as digits only (6 to 12 characters)
  • Ensure bsb is collected as the customer's branch code
  • Implement proper error handling for missing or invalid field submissions
  • No changes required for existing AUD payout integrations
  • When using headless mode (headlessMode: true), all required AUD payin fields — including the new accountNumber and bsb — must be passed inside source.additionalPaymentDetails. Available paymentCode values for AUD can be fetched from the /v3/payment-methods endpoint.

Example: Create AUD Payin Order in Headless Mode

The following cURL example creates an AUD payin → USDT destination order using headlessMode: true, with accountNumber and bsb supplied in the request payload:

curl --request POST \
  --url https://sandbox-api.transfi.com/v3/orders \
  --header 'Authorization: Basic <BASE64_API_CREDENTIALS>' \
  --header 'MID: <YOUR_MID>' \
  --header 'Content-Type: application/json' \
  --header 'accept: application/json' \
  --data '{
    "userId": "UX-2123123123123",
    "orderType": "payin",
    "purposeCode": "company_expenses",
    "headlessMode": true,
    "partnerId": "your-internal-order-id",
    "successRedirectUrl": "https://yourapp.com/success",
    "failureRedirectUrl": "https://yourapp.com/failure",
    "sourceUrl": "https://yourapp.com/source",
    "source": {
      "currency": "AUD",
      "amount": 100,
      "paymentType": "bank_transfer",
      "paymentCode": "payid",
      "additionalPaymentDetails": {
        "accountNumber": "123456789",
        "bsb": "062000",
        "phoneCode": "+61",
        "phone": "412345678",
        "street": "123 George Street",
        "postalCode": "000000",
        "city": "Sydney",
        "state": "NSW",
        "gender": "male",
        "documentType": "PASSPORT",
        "documentNumber": "PA1234567",
        "expiry": "01-01-2030",
        "dob": "01-01-1990"
      }
    },
    "destination": {
      "currency": "USDT"
    }
  }'

Key things to note

  • headlessMode: true means no redirect to a TransFi-hosted payment page — the order is created with all required payment details in a single API call.
  • source.additionalPaymentDetails.accountNumber must match the pattern ^\d{6,12}$ (6–12 digits, numeric only).
  • source.additionalPaymentDetails.bsb is the Australian Bank-State-Branch code (string).
  • paymentCode and exact required fields can always be confirmed by calling /v3/payment-methods for currency=AUD and paymentType=bank_transfer.

Error Details

  • Account Number Check: The account number provided is missing or does not meet the required format (6–12 digits, numeric only).
  • BSB Check: The BSB code is missing or invalid for the provided Australian bank account.

Important Dates

  • Implementation Date: May 25th, 2026 (Sandbox)

Support

For technical assistance or integration questions, please contact our support team through established communication channels.