> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rc.cleverhub.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Create BSB/Account Number Payment

> Initiate a payment request to a BSB and account number by specifying the amount, customer details, and additional attributes. This endpoint supports only Australian Dollar (AUD) payments. Transactions will be rejected if any of the required fields, such as Account Name, BSB Number, Account Number, Description, or Amount, are incorrect or missing.

This payment method provides flexibility in sending funds directly to Australian bank accounts, ideal for merchants needing BSB and account number transfers.




## OpenAPI

````yaml /api/openapi/v1-reference.yaml post /v1/merchants/create_bank_payment
openapi: 3.0.3
info:
  title: Payment APIs (AUD only)
  description: >-
    ## Introduction

    The Payment API Solution (AUD) offers developers a comprehensive suite of
    API services to build innovative AUD payment solutions efficiently. These
    APIs enable seamless transactions using various payment methods and
    functionalities, ensuring a robust, reliable, and scalable payment
    infrastructure tailored for the Australian market.

    ### Key Features

    - **Payment Methods**:
      - **Payment Link**: Supports payments via card and PayID.
      - **PayID**: Provides instant payments using a unique identifier.
      - **PayTo**: Enables scheduled or recurring payments.
      - **BSB/Account Number**: Allows direct bank transfers.
      - **Payout**: Manage payouts to designated accounts.

    - **Additional Functionalities**:
      - **Balance Management**: Real-time balance inquiries and updates.
      - **Reporting Services**: Generate detailed transaction and payment reports.

    This documentation provides detailed guidance for integrating these
    capabilities into your application.
  termsOfService: https://helloclever.co/terms
  contact:
    email: support@helloclever.co
  version: 1.0.11
servers:
  - url: https://api.cleverhub.co/api
    description: Sandbox Environment
  - url: https://api-merchant.helloclever.co/api
    description: Production Environment
security: []
paths:
  /v1/merchants/create_bank_payment:
    post:
      tags:
        - AUD BSB/Account Number
      summary: Create BSB/Account Number Payment
      description: >
        Initiate a payment request to a BSB and account number by specifying the
        amount, customer details, and additional attributes. This endpoint
        supports only Australian Dollar (AUD) payments. Transactions will be
        rejected if any of the required fields, such as Account Name, BSB
        Number, Account Number, Description, or Amount, are incorrect or
        missing.


        This payment method provides flexibility in sending funds directly to
        Australian bank accounts, ideal for merchants needing BSB and account
        number transfers.
      operationId: createBankPayment
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - name
                - gst
                - amount
                - description
                - emails
                - payment_request_notification
              properties:
                name:
                  type: string
                  description: >-
                    The full name of the customer for whom the payment is being
                    created.
                  pattern: ^(?![! ](?![!]*$))[a-zA-Z0-9 ]*(?![ ])$
                  example: Jane Doe
                gst:
                  type: boolean
                  description: >-
                    Indicates whether Goods and Services Tax (GST) applies to
                    the payment (for Australian merchants).
                  example: true
                amount:
                  type: number
                  description: >-
                    The total amount to be charged, specified in Australian
                    Dollars (AUD).
                  example: 1000
                description:
                  type: string
                  description: A brief description of the purpose of the payment.
                  pattern: ^(?![! ](?![!]*$))[a-zA-Z0-9 _-]*(?![ ])$
                  example: 'Payment for invoice #1234'
                emails:
                  type: string
                  description: >-
                    Comma-separated list of email addresses for notifications.
                    Only lowercase letters are allowed.
                  pattern: >-
                    ^([a-z0-9_\-\.]+)@([a-z]+)\.([a-z]+)(,[a-z0-9_\-\.]+@[a-z]+\.([a-z]+))*$
                  example: customer@example.com
                expired_at:
                  type: string
                  format: date-time
                  description: >-
                    Expiration date and time of the payment, in UTC. Must be at
                    least 15 minutes from the current time.
                  example: '2024-12-31T23:59:59Z'
                external_id:
                  type: string
                  description: >-
                    A custom identifier provided by the merchant for tracking
                    purposes.
                  example: custom-id-12345
                payment_request_notification:
                  type: object
                  required:
                    - endpoint_url
                    - authorization_header
                  description: Callback configuration for receiving payment status updates.
                  properties:
                    endpoint_url:
                      type: string
                      format: uri
                      description: >-
                        The publicly accessible URL where Hello Clever will send
                        payment status updates.
                      example: https://example.com/payment_callback
                    authorization_header:
                      type: string
                      description: >-
                        The value of the Authorization header used in the
                        callback request for added security.
                      example: Bearer your_token
      responses:
        '200':
          description: Payment request created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BSBAccountObject'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '422':
          description: Unprocessable Entity
      callbacks:
        statusChange:
          '{$request.body#/payment_request_notification.endpoint_url}':
            post:
              summary: Callback when BSB payment status changes
              operationId: bankPaymentStatusCallback
              parameters:
                - name: Authorization
                  in: header
                  required: true
                  schema:
                    type: string
                  description: >-
                    The value of the Authorization header specified in
                    `{$request.body#/payment_request_notification/authorization_header}`
              requestBody:
                required: true
                content:
                  application/json:
                    schema:
                      $ref: '#/components/schemas/BSBAccountObject'
              responses:
                '200':
                  description: Callback received successfully.
                '400':
                  description: Bad request.
                '401':
                  description: Unauthorized access.
              method: post
              type: path
            path: '{$request.body#/payment_request_notification.endpoint_url}'
      security:
        - app-id: []
          secret-key: []
components:
  schemas:
    BSBAccountObject:
      type: object
      properties:
        id:
          type: integer
          description: |
            The unique identifier of the payment, used for tracking purposes.
          example: 12345
        payee_detail:
          type: object
          description: >
            Details of the payee's bank account, including BSB and account
            number, to facilitate the payment.
          properties:
            account_holder_name:
              type: string
              description: >
                The name of the account holder for the payment. This helps
                ensure the correct payee is identified.
              example: Jane Doe
            bsb:
              type: string
              description: >
                The BSB (Bank-State-Branch) number used to facilitate the
                payment, identifying the bank and branch.
              example: '654321'
            account_number:
              type: string
              description: >
                The account number used to make the payment, providing the
                unique identifier of the payee's account.
              example: '987654321'
          required:
            - account_holder_name
            - bsb
            - account_number
        name:
          type: string
          description: |
            The name of the customer associated with the payment request.
          example: Jane Doe
        merchant_name:
          type: string
          description: >
            The name of the merchant handling the payment request, allowing
            identification of the party being paid.
          example: Merchant Inc.
        gst:
          type: boolean
          description: >
            Indicates whether GST (Goods and Services Tax) is applicable to the
            payment. A value of `true` indicates GST is included.
          example: true
        amount:
          type: string
          description: >
            The amount for the payment, excluding GST. This represents the base
            transaction value.
          example: '1000.0'
        total:
          type: string
          description: >
            The total payment amount, including GST. This is the final amount to
            be paid by the customer.
          example: '1100.0'
        gst_amount:
          type: string
          description: >
            The portion of the total amount that represents GST. This helps
            break down the tax component.
          example: '100.0'
        expired_at:
          type: string
          format: date-time
          description: >
            The expiration date and time of the payment request, indicating the
            deadline for making the payment.
          example: '2024-12-31T23:59:59Z'
        external_id:
          type: string
          description: >
            A custom identifier used for tracking purposes, such as an invoice
            or reference number provided by the user.
          example: custom-id-12345
        cashback_amount:
          type: string
          description: >
            The cashback amount offered as part of the transaction, if
            applicable.
          example: '50.0'
        pay_by:
          type: string
          format: date-time
          description: >
            The deadline by which the payment must be completed, providing a
            clear due date.
          example: '2024-12-30T23:59:59Z'
        paid_at:
          type: string
          format: date-time
          description: >
            The date and time when the payment was successfully made, used for
            record-keeping.
          example: '2024-12-25T12:34:56Z'
        status:
          type: string
          enum:
            - pending
            - received
            - expired
            - return_pending
            - return_received
            - return_expired
            - return_rejected
          description: |
            The current status of the payment request. Possible values include:
            - `pending`: Awaiting payment.
            - `received`: Payment completed.
            - `expired`: Payment request expired.
            - `return_pending`: Refund process initiated.
            - `return_received`: Refund completed.
            - `return_expired`: Refund request expired.
            - `return_rejected`: Refund request rejected.
          example: received
        description:
          type: string
          description: >
            A description associated with the payment request, providing context
            or additional details about the transaction.
          example: 'Payment for invoice #1234'
        refund_information:
          type: object
          description: >
            Details of any refund associated with the payment, including bank
            details and refund amount.
          properties:
            refund_bsb:
              type: string
              description: >
                The BSB number used for the refund, identifying the bank
                involved.
              example: '654321'
            refund_account_number:
              type: string
              description: >
                The account number used for the refund, providing the
                destination for refunded funds.
              example: '987654321'
            refund_amount:
              type: string
              description: >
                The amount refunded to the payee, providing clarity on the value
                being returned.
              example: '10.99'
            request_date:
              type: string
              format: date-time
              description: |
                The date when the refund was requested, used for record-keeping.
              example: '2024-07-01T00:00:00Z'
            reason:
              type: string
              description: >
                The reason for the refund, providing context such as incorrect
                payment or product issues.
              example: Refund for incorrect payment
        payment_request_notification:
          type: object
          description: >
            Details of the merchant's callback settings, including the endpoint
            URL and authorization information for receiving payment status
            updates.
          properties:
            endpoint_url:
              type: string
              format: uri
              description: >
                The URL to which payment status updates will be sent by the
                system, allowing the merchant to receive notifications.
              example: https://merchant.com/payment_callback
            authorization_header:
              type: string
              description: >
                The authorization header value used in the callback request,
                helping to ensure the request is authenticated.
              example: Bearer your_token
        nonce:
          type: string
          description: >
            A nonce value used to validate the transaction, ensuring that it is
            unique and preventing replay attacks.
          example: unique_nonce_string
        stage:
          type: string
          enum:
            - overpaid
            - underpaid
            - unmatched_nonce
            - null
          description: >
            Represents the specific stage in a pending transaction. Default
            value is `null` unless the payment amount is incorrect or the nonce
            is unmatched.
          example: overpaid
        additional_property:
          type: string
          description: >
            A new property added to the BSBAccountObject for extended
            functionality or specific use cases.
          example: Additional value
  securitySchemes:
    app-id:
      type: apiKey
      in: header
      name: app-id
      description: |
        A unique identifier assigned to each application.
    secret-key:
      type: apiKey
      in: header
      name: secret-key
      description: |
        A secure token associated with the `app-id`.

````

## Related topics

- [Payment APIs for AUD (v1)](/api/v1/introduction.md)
- [Get Payment Request Status](/api/aud-bsbaccount-number/get-payment-request-status.md)
- [Get Payment Request List](/api/aud-bsbaccount-number/get-payment-request-list.md)
