Azupay Payment Initiation API

This API allows you to initiate Payments using mandates.

Operations 4

GET /paymentInitiation Get a Payment Initiation #
POST /paymentInitiation Initiate a Payment #
POST /paymentInitiation/refund Refund for Payment Initiation #
POST /paymentInitiation/search Search for Payment Initiation #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/azupay-payment-initiation-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

azupay-payment-initiation-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Azupay Payment Agreement Payment Initiation API
  description: API Reference
  version: v1
  contact:
    email: contactus@azupay.com.au
servers:
- url: https://api-uat.azupay.com.au/v1
  description: UAT environment
- url: https://api.azupay.com.au/v1
  description: Production environment
tags:
- name: Payment Initiation
  x-displayName: Payment Initiation
  description: 'This API allows you to initiate Payments using mandates.

    '
paths:
  /paymentInitiation:
    get:
      operationId: getPaymentInitiation
      security:
      - SecretKey: []
      tags:
      - Payment Initiation
      summary: Get a Payment Initiation
      description: 'Retrieves an existing Payment Initiation (PayTo Transaction).

        '
      parameters:
      - in: query
        name: id
        description: 'ID of Payment Initiation to retrieve.  This is the `paymentInitiationId` returned by the **Initiate a Payment** API

          '
        required: true
        schema:
          type: string
      responses:
        '200':
          description: The Payment Initiation object
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/PaymentInitiationObj'
                - $ref: '#/components/schemas/PaymentInitiationStatusObj'
                - $ref: '#/components/schemas/PaymentAgreementObj'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ErrorModel'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ErrorModel'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ErrorModel'
    post:
      security:
      - SecretKey: []
      tags:
      - Payment Initiation
      summary: Initiate a Payment
      description: Initiate a Payment
      operationId: makePaymentInitiation
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentInitiationObj'
      responses:
        '201':
          description: Payment Initiated
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/PaymentInitiationObj'
                - $ref: '#/components/schemas/PaymentInitiationStatusObj'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PayToErrorModel'
              examples:
                contentTypeError:
                  value:
                    message: Content-Type request header must be application/json
                paymentAgreementNotFoundError:
                  value:
                    message: Could not find Payment Agreement
                fixedAgreementFirstPaymentAmountError:
                  value:
                    message: The amount specified does not match the First Payment Amount
                fixedAgreementExceedOutstandingBalanceError:
                  value:
                    message: The amount specified exceeds the Outstanding Balance of this Agreement
                validityNotStartedError:
                  value:
                    message: This Payment Agreement's Validity has not started
                validityPassedError:
                  value:
                    message: This Payment Agreement's Validity End Date has passed
                clientIdMismatchError:
                  value:
                    message: 'ClientId mismatch: Expecting ...'
                invalidStateError:
                  value:
                    message: Invalid Payment Agreement status. Should be ACTIVE
                invalidRequestBodyError:
                  value:
                    message: An invalid request body was supplied
                ddrMigrationInProgressError:
                  value:
                    message: "This payment agreement is still being migrated and payments cannot be initiated in the first 5 \ncalendar days\n"
        '401':
          description: Invalid Authorization header
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ErrorModel'
                - properties:
                    message:
                      example: Unauthorized
      callbacks:
        PaymentInitiationStatusEvent:
          '{$request.body#/PaymentInitiation/paymentInitiationNotification/endpointURL}':
            post:
              summary: PaymentInitiationStatus.status Event
              description: 'If the merchant specifies values for the

                `PaymentInitiation/paymentInitiationNotification` object during the **Initiate a Payment**

                invocation, then a notification will be sent to the merchant system when it''s status has changed.


                The event will use `paymentInitiationNotification.endpointURL` as endpoint and

                `paymentInitiationNotification.authorizationHeader` as `Authorization` header.

                We **strongly** recommend to use a different value for `authorizationHeader`

                on each payment request to increase the level of security.


                This call is made by Azupay on a best effort basis. Azupay will implement retry mechanisms to ensure

                transient network failures do not affect the

                ability to call this endpoint. Azupay may call this endpoint

                more than once with the same payload so the merchant must ensure that the endpoint is implemented with

                idempotent behaviour always returning a `200 OK` response even after subsequent calls.


                If the target endpoint does not return HTTP `200`, azupay will retry the webhook call 45 times with a 20 second delay.


                The merchant system can correlate the event message using either the

                `PaymentInitiation.clientTransactionId` provided on the original request or the

                `PaymentInitiationStatus.paymentInitiationId` provided in the response of the original request.

                '
              parameters:
              - in: header
                name: Authorization
                description: 'The value will be what was specified in

                  {$request.body#/PaymentInitiation/paymentInitiationNotification/authorizationHeader}

                  '
                schema:
                  type: string
                required: true
              requestBody:
                required: true
                content:
                  application/json:
                    schema:
                      allOf:
                      - $ref: '#/components/schemas/PaymentInitiationObj'
                      - $ref: '#/components/schemas/PaymentInitiationStatusObj'
              responses:
                '200':
                  description: The merchant's server should return this code
  /paymentInitiation/refund:
    post:
      security:
      - SecretKey: []
      tags:
      - Payment Initiation
      summary: Refund for Payment Initiation
      description: 'Refund for Payment Initiation (PayTo Transactions)

        '
      operationId: refundPaymentInitation
      parameters:
      - in: query
        name: id
        description: The ID for the Payment Initiation
        required: true
        schema:
          type: string
      - in: query
        name: refundAmount
        description: The refund amount
        required: false
        schema:
          type: number
      - in: query
        name: refundBatchId
        description: The batch Id if the refund is done through batch
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Payment refunded
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/PaymentInitiationObj'
                - $ref: '#/components/schemas/PaymentInitiationStatusObj'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ErrorModel'
        '401':
          description: Invalid Authorization header
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ErrorModel'
        '404':
          description: Payment Request Not Found
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ErrorModel'
  /paymentInitiation/search:
    post:
      security:
      - SecretKey: []
      tags:
      - Payment Initiation
      summary: Search for Payment Initiation
      description: 'Search for Payment Initiation (PayTo Transactions)

        '
      operationId: searchPaymentInitiation
      parameters:
      - in: query
        name: nextPageId
        description: The next page ID that was obtained on a previous search result. Used to obtain the next set of results
        required: false
        schema:
          type: string
      - in: query
        name: numberOfRecords
        description: Number of records to retrieve. Defaults to 100 if not provided
        required: false
        schema:
          type: number
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentInitiationSearchObj'
      responses:
        '200':
          description: The requested page of payment agreements
          content:
            application/json:
              schema:
                type: object
                required:
                - nextPageId
                - recordCount
                - records
                properties:
                  nextPageId:
                    $ref: '#/components/schemas/nextPageIdResponse'
                  recordCount:
                    $ref: '#/components/schemas/recordCount'
                  records:
                    type: array
                    description: The result from the search
                    items:
                      $ref: '#/components/schemas/PaymentInitiationSearchResponseObj'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorModel'
              examples:
                invalidRequestBody:
                  value:
                    message: An invalid request body was supplied
        '401':
          description: Invalid Authorization header
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorModel'
components:
  schemas:
    endDate:
      type: string
      description: A date in the calendar year expressed in this format YYYY-MM-DD. This date would be in Australia/Sydney timezone
      pattern: ^(?:[1-9]\d{3}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)-02-29)$
      example: '2022-12-01'
    paymentAgreementIdForSearch:
      type: string
      minLength: 1
      maxLength: 40
      description: ID of the payment agreement being searched.
      example: K+9p4EE0rJnMtomRfWKWE2BnAboHP2KwgIPyEIA=
    PaymentInitiationObj:
      type: object
      required:
      - PaymentInitiation
      additionalProperties: false
      properties:
        PaymentInitiation:
          type: object
          additionalProperties: false
          required:
          - clientId
          - paymentAgreementId
          - paymentAmount
          - clientTransactionId
          properties:
            paymentAgreementId:
              type: string
              description: ID of the payment agreement to initiate payment
              example: K+9p4EE0rJnMtomRfWKWEDRh82BnAboHP2KwgIPyEIA=
            paymentRequestId:
              type: string
              minLength: 32
              maxLength: 32
              pattern: ^[A-Z|a-z|0-9]*$
            metaData:
              type: object
              additionalProperties: true
              description: An object containing no more than 10 string fields. Where the field name is limited to 40 ASCII characters and the field value is limited to 255 ASCII characters
            clientTransactionId:
              $ref: '#/components/schemas/ClientTransactionIdObj'
            clientId:
              $ref: '#/components/schemas/ClientIdObj'
            paymentAmount:
              $ref: '#/components/schemas/PayToAmountObj'
            reference:
              type: string
              minLength: 1
              maxLength: 35
              pattern: ^[ -~]*$
              description: "Unique identification to unambiguously identify the transaction. \nThis identification is passed on, unchanged, throughout the entire end-to-end payment message, \nand will appear on payers statements.\n"
              example: INVOICE-34434
            description:
              type: string
              minLength: 5
              maxLength: 280
              description: Optional remittance information used to unambiguously refer to the payment transaction.
              example: Top-up for wallet 23432
            paymentInitiationNotification:
              $ref: '#/components/schemas/NotificationObj'
            additionalDetails:
              $ref: '#/components/schemas/AdditionalDetailsObj'
    agreementDescription:
      type: string
      minLength: 5
      maxLength: 140
      pattern: ^[ -~]*$
      description: Description of the Payment Agreement visible to the payer.
    PayerDetailsObj:
      type: object
      description: 'Provide either `payIDDetails` or `bankAccountDetails`

        '
      additionalProperties: false
      properties:
        name:
          type: string
          description: The payer's name
          minLength: 1
          maxLength: 100
          example: Jane Smith
          pattern: ^[!-~]+( [!-~]+)*$
        type:
          type: string
          description: Whether payer is a person or organisation. Defaults to 'Person'.
          enum:
          - Person
          - Organisation
        payIDDetails:
          description: PayID Details
          type: object
          required:
          - payID
          - payIDType
          properties:
            payID:
              $ref: '#/components/schemas/PayIDObj'
            payIDType:
              type: string
              example: EMAIL
              description: 'PayID Type. Valid Values:

                - ''PHONE’ Can be a mobile phone number or landline with area code

                - ‘EMAIL’ Email address

                - ‘ABN’ Australian Business Number

                - ‘ORG’ Organisation Name'
              enum:
              - PHONE
              - EMAIL
              - ABN
              - ORG
        bankAccountDetails:
          description: Bank Account Details
          type: object
          additionalProperties: false
          required:
          - bsb
          - accountNumber
          properties:
            bsb:
              $ref: '#/components/schemas/BsbObj'
            accountNumber:
              $ref: '#/components/schemas/AccountNumberObj'
    recordCount:
      type: number
      description: The number of records that were retrieved.
    authorizationHeader:
      type: string
      description: 'The string that Azupay will put into the Authorization request header when calling the Callback url.


        Will be obfuscated (shown as ****) in API responses.

        '
      example: SECRET
    PayToErrorModel:
      type: object
      required:
      - message
      properties:
        message:
          type: string
        details:
          type: object
          description: 'An object containing details of the error

            '
          properties:
            failureCode:
              type: string
              example: AZP5.1
              description: 'A failure code for the error response.

                For the full list, please refer to the

                [Failure Codes and Failure Reasons](/guide/receiving-recurring-payments.html#failure-codes-and-failure-reasons) page

                '
            failureReason:
              type: string
              example: PayID format is incorrect
              description: 'A reason message for the error response

                For the full list, please refer to the

                [Failure Codes and Failure Reasons ](/guide/receiving-recurring-payments.html#failure-codes-and-failure-reasons) page

                '
    countPerPeriod:
      type: string
      description: Number of payments within a specified period based on the frequency
      pattern: ^[1-9][0-9]{0,2}$
      example: '5'
    ContractIdObj:
      type: string
      minLength: 1
      maxLength: 50
      description: "Unique Id for the merchant side contract.\nThis field is used to prevent the creation of duplicated payment agreements in CREATED, SUSPENDED, ACTIVE status. \nPayment agreements in statuses such as CANCELLED, FAILED are not considered duplicates.\n"
      example: 30597959-a853-44d4-bdab-54332bf7a98e
    amount:
      type: string
      description: Amount in AUD
      pattern: ^[0-9]+(\.[0-9]{2})$
      example: '1001.95'
    lastPaymentDate:
      type: string
      description: A date in the calendar year expressed in this format YYYY-MM-DD. This date would be in Australia/Sydney timezone
      pattern: ^(?:[1-9]\d{3}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)-02-29)$
      example: '2022-06-01'
    BsbObj:
      type: string
      description: The BSB of the account number
      minLength: 6
      maxLength: 6
      pattern: ^\d*$
      example: '123456'
    PayIDObj:
      type: string
      minLength: 1
      maxLength: 140
      example: jane.smith@example.com
      description: "The payer's PayID. Valid examples are `+61-432123321` (mobile), `+61-312344321` (landline), \n`0432123321` (mobile), `0312344321` (landline), `jane.smith@example.com`\n"
    maximumAmount:
      type: string
      description: Amount in AUD
      pattern: ^[0-9]+(\.[0-9]{2})$
      example: '1001.95'
    lastPaymentAmount:
      type: string
      description: Amount in AUD
      pattern: ^[0-9]+(\.[0-9]{2})$
      example: '1001.95'
    AccountNumberObj:
      type: string
      description: The Account Number (without the BSB)
      minLength: 4
      maxLength: 9
      pattern: ^\d*$
      example: '123555555'
    azupayId:
      type: string
      description: An identifier generated by Azupay. Used to reference the object in subsequent operations
      example: K+9p4EE0rJnMtomRfWKWEDRh82BnAboHP2KwgIPyEIA=
    endpointURL:
      type: string
      format: url
      description: "An internet accessible url which Azupay will invoke when the status of the transaction has \nchanged. The call will be done using the HTTP POST method. The endpoint exposed by the client \nmust be TLS 1.2 and the server certificate must be issued by a well known commercial certificate \nauthority and that self-signed or internally signed certs are not acceptable.\n"
      example: https://example.org
    PaymentInitiationSearchResponseObj:
      type: object
      allOf:
      - $ref: '#/components/schemas/PaymentInitiationObj'
      - $ref: '#/components/schemas/PaymentInitiationStatusObj'
      - $ref: '#/components/schemas/PaymentAgreementObj'
    NotificationObj:
      type: object
      description: Merchant Callback Details
      required:
      - endpointURL
      - authorizationHeader
      properties:
        endpointURL:
          $ref: '#/components/schemas/endpointURL'
        authorizationHeader:
          $ref: '#/components/schemas/authorizationHeader'
    frequency:
      type: string
      description: Payment Frequency
      enum:
      - ADHOC
      - DAILY
      - FORTNIGHTLY
      - INTRADAY
      - SEMIANNUAL
      - MONTHLY
      - QUARTERLY
      - WEEKLY
      - ANNUAL
    agreementPayeeName:
      type: string
      maxLength: 140
      minLength: 1
      pattern: ^[ -~]*$
      description: 'Lets you control the Payee description (visible to they payer) on the payment agreement:

        * If not populated, then your business name will appear i.e. "My business name".

        * If populated, then your business appears as a facilitator so the description will read something like "My business name on behalf of `payeeName`".

        '
    PaymentInitiationStatusObj:
      type: object
      required:
      - PaymentInitiationStatus
      additionalProperties: false
      properties:
        PaymentInitiationStatus:
          additionalProperties: false
          required:
          - paymentInitiationId
          - status
          - createdDatetime
          type: object
          properties:
            paymentInitiationId:
              $ref: '#/components/schemas/azupayId'
            status:
              type: string
              description: Status of the requested payment initiation.
              enum:
              - CREATED
              - SETTLED
              - FAILED
              - PENDING
              - RETURN_IN_PROGRESS
              - RETURN_FAILED
              - RETURN_COMPLETE
            createdDatetime:
              type: string
              format: date-time
              description: Timestamp when the payment initiation was created.
            completedDatetime:
              type: string
              format: date-time
              description: 'Timestamp when the payment initiation was completed. Only for `status` different than `CREATED`.

                '
            statusCode:
              type: string
              description: "A transaction status reason code returned by the destination institution. \n\nStandardized among NPP network participants.\n"
              example: AC02
            statusReason:
              type: string
              description: 'A description corresponds to the value of the `statusCode` field.


                For the full list, please refer to the

                [Status Code and Status Reason](/guide/receiving-recurring-payments.html#status-code-and-status-reason) page

                '
              example: The Debtor Account Number is invalid or missing.
            nppTransactionId:
              type: string
              description: "An identifier used to reference a payment pulled from a bank account between banks, businesses and \npayment facilitators such as Azupay.\n"
            payerInformation:
              description: This object is present when the payment is completed and your client is configured to expose payer information.
              type: object
              additionalProperties: false
              properties:
                bsb:
                  type: string
                  description: The bsb
                accountNumber:
                  type: string
                  description: The account number
                fullLegalAccountName:
                  type: string
                  description: The full legal account name
            refundInformation:
              description: This object is present when a refund is requested.
              type: object
              additionalProperties: false
              properties:
                availableBalance:
                  type: string
                  description: The remaining balance after completion of all the refunds.
                requests:
                  type: array
                  description: An array of objects capturing log of completed refund requests
                  items:
                    type: object
                    description: Refund information
                    properties:
                      createdDateTime:
                        type: string
                        format: date-time
                        description: Timestamp when refund request was initiated
                      completedDateTime:
                        type: string
                        format: date-time
                        description: Timestamp when refund request was completed.
                      amount:
                        type: string
                        description: The refund amount
                      nppTransactionId:
                        description: The identifier of the transaction in the NPP network. This is an identifier known by the initiating bank and serves as unique identifier for the refund.
                        type: string
                      status:
                        description: The status of the refund
                        type: string
                        enum:
                        - IN_PROGRESS
                        - COMPLETE
                        - FAILED
    AdditionalDetailsObj:
      type: object
      required:
      - customerNumber
      - userID
      - authMethod
      - channelType
      description: Additional details for auditing purposes
      properties:
        customerNumber:
          type: string
          description: 'Uniquely identifies the Customer for whom the request has been initiated for. i.e. the Customer  that owns the account. This field should contain the Member Number or Customer Number from the  Client''s banking system.

            '
          maxLength: 25
        userID:
          type: string
          description: 'Uniquely identifies the User that has initiated the request. This could be the Customer or someone  authorised to act on behalf of the Customer.

            '
          maxLength: 25
        authMethod:
          type: string
          description: 'This field allows us to understand how the user has logged in. Over a period we can determine if  there is a deviation from normal usage patterns. e.g. Moving from biometric to PIN and linking that  with payments we can detect fraud happening but also apply other rules to understand if PayIds are  being from a device for malicious intent.

            '
          enum:
          - 2FACTOR
          - OTP
          - BIOMETRIC
          - PASSWORD
          - PIN
          - NONE
        channelType:
          type: string
          description: 'This field allows us to understand, similar to authenticationMethod, which channels are being used  to initiate a request. If `BROWSER` or `MOBILE` is selected. `ipAddress` and `deviceFingerprint`  will be required fields.

            '
          enum:
          - BROWSER
          - MOBILE
          - BRANCH
          - IVR
          - OTHER
        ipAddress:
          type: string
          description: 'IP address of the device or computer from which the user request originated. Required if request  originated from a browser or mobile, else do not send.

            '
        fraudScore:
          type: string
          description: This is a fraud score you may have calculated. if not, do not send.
        deviceFingerprint:
          type: string
          description: 'The device fingerprint or browser fingerprint. A change in device is a possible indicator of  fraud/ID takeover/phone number porting. The device fingerprint, machine fingerprint or browser  fingerprint. Required if the request originated from a web browser or mobile device, else do not  send.

            '
        notes:
          type: string
          description: Free text field up to 2048 characters.
          maxLength: 2048
        geoLocation:
          type: string
          description: 'Latitude and Longitude from which the user request originated. For example  -33.8708464,151.20732999999998 Only to be provided if GPS is enabled on the device, else do not  send.

            '
          maxLength: 50
    PayToAmountObj:
      type: string
      pattern: ^[0-9]+(\.[0-9]{2})$
      description: Amount in AUD to be requested from the Payee
      example: '2101.95'
    AgreementExpiryMinutesObj:
      type: integer
      description: An integer value representing the total number of minutes before a payment agreement expires. This field has a minimum value of 5 and a max of 7199
      minimum: 5
      maximum: 7199
      example: 5
    toDateUTC:
      type: string
      pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$
      description: The report date in ISO date/time string format in UTC
      example: '2021-10-18T02:32:30.693Z'
    ClientTransactionIdObj:
      description: 'Unique Id for the transaction created by the merchant system


        This field is used to prevent the creation of duplicated clients in case of a message retry. It is

        recommended that a unique id (like uuid) is used for each client. If the same value is used a second time

        the client will be replaced.

        '
      minLength: 5
      maxLength: 100
      type: string
      example: TX5346423452345345
    fromDateUTC:
      type: string
      pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$
      description: The report date in ISO date/time string format in UTC
      example: '2021-10-18T02:32:30.693Z'
    PaymentInitiationSearchObj:
      type: object
      additionalProperties: false
      properties:
        PaymentInitiationSearch:
          type: object
          additionalProperties: false
          properties:
            clientTransactionId:
              type: string
              minLength: 5
              maxLength: 100
              description: 'Unique Id for the transaction created by the merchant system.


                Please note `clientTransactionId` and date fields can''t be included in the same request.

                '
              example: 30597959-a853-44d4-bdab-54332bf7a98e
            fromDate:
              $ref: '#/components/schemas/fromDateUTC'
            toDate:
              $ref: '#/components/schemas/toDateUTC'
            paymentAgreementId:
              $ref: '#/components/schemas/paymentAgreementIdForSearch'
    ClientIdObj:
      type: string
      description: 'Id of the client initiating the transaction. This is supplied by Azupay and only changes between environments.

        For example, you might be allocated CLIENT1TEST for the UAT environment and CLIENT1 for production.

        '
      minLength: 5
      maxLength: 50
      example: CLIENT1
    firstPaymentAmount:
      type: string
      description: Amount in AUD
      pattern: ^[0-9]+(\.[0-9]{2})$
      example: '1001.95'
    PayeeDetailsObj:
      type: object
      description: Payee Details
      properties:
        becsUserId:
          type: string
          description: 'The BECS user ID related to the migrating Direct Debit Authority (DDR) over to a Payment Agreement. Only populate this field if it is for a migration request.

            '
          minLength: 1
          maxLength: 6
          pattern: ^[a-zA-Z0-9]*$
          example: 123456
        payeeName:
          $ref: '#/components/schemas/agreementPayeeName'
    PaymentAgreementObj:
      type: object
      required:
      - PaymentAgreement
      properties:
        PaymentAgreement:
          type: object
          required:
          - clientId
          - clientTransactionId
          - payerDetails
          - paymentAgreementType
          - description
          - agreementDetails
          properties:
            clientId:
              $ref: '#/components/schemas/ClientIdObj'
            additionalDetails:
              $ref: '#/components/schemas/AdditionalDetailsObj'
            contractId:
              $ref: '#/components/schemas/ContractIdObj'
            clientTransactionId:
              $ref: '#/components/schemas/ClientTransactionIdObj'
            paymentAgreementNotification:
              $ref: '#/components/schemas/NotificationObj'
            conditionsOfPayment:
              type: string
              pattern: ^[ -~]{1,140}$
              minLength: 1
              maxLength: 140
            agreementExpiryMinutes:
              $ref: '#/components/schemas/Agr

# --- truncated at 32 KB (38 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/azupay/refs/heads/main/openapi/azupay-payment-initiation-api-openapi.yml