> ## Documentation Index
> Fetch the complete documentation index at: https://docs2.finverse.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get payment

> Retrieve a Payment object (using a specific `payment_id`).

**Authorization**: `customer_token`

## Response fields

Single `Payment` object, containing information on the Payment.

### fees (array)

Details on the fee(s) to be charged. Returns an empty array if no fees will be charged.

### payment_details (object)

Details describing the Payment.

### processor_details (object, optional)

Additional details on how the payment was processed.

### result (object, optional)

Additional details on the payment processing result.

### references (object, optional)

Additional references for the Payment (e.g. transaction IDs generated by Finverse or the payment gateway).

### payment_method (object, optional)

Details on the payment method authorized by the end-user. Refer to the Payment Method data model in `GET /payment_users/{user_id}/payment_methods` for details on the Payment Method object.

**Limitations**:

- **Payment Method object is not returned for one-time manual bank transfers** (`payment.type` = `MANUAL`, e.g. FPS/PayNow bank transfers).
    
    - These are payments initiated by Payment Links where end-users "push" funds to the recipient bank account. No payment method is created or stored in Finverse systems.
        
- **Payment Method object is returned, but without a** **`payment_method_id`****, for some card payments with Future Payments disabled**.
    
    - These are one-time card payments initiated by Payment Links. In some cases (depending on the external payment gateway through which the payment is processed), no payment method is created or stored in Finverse systems, so no `payment_method_id` is available.
        
    - However, some card details may still be returned in the `payment_method.card.card_details` object, for informational purposes (if available from the external payment gateway).
        

### recipient (object), sender (object)

The recipient and sender objects include a Payment User object for each of the counterparties of a payment. Refer to the Payment User data model in `GET /payment_users/{payment_user_id}` for details on the Payment User object.

Note: Some Payment User metadata fields are omitted for clarity (e.g. `created_at`, `metadata`, `updated_at`).

### recipient_account (object), sender_account (object)

The recipient_account and sender_account objects include a Payment Account object for each of the counterparties of a payment. Refer to the Payment Account object data model in `GET /payment_users/{user_id}/payment_accounts` for details on the Payment Account object.

Note: Some Payment Account metadata fields are omitted for clarity (e.g. `created_at`, `metadata`, `updated_at`).



## OpenAPI

````yaml /api-reference/openapi.json get /payments/{paymentId}
openapi: 3.0.0
info:
  description: Documentation of the early finverse services
  title: Finverse Public
  termsOfService: https://example.com
  contact:
    name: Maintainers
    email: info@finverse.com
  license:
    name: unknown license
  version: 0.0.1
servers:
  - url: https://api.prod.finverse.net
security:
  - Oauth2:
      - test
tags:
  - name: public
    description: Publicly accessible endpoints
    x-group: Public
  - name: customer
    description: Customer app and institution endpoints
    x-group: Customer
  - name: link
    description: Finverse Link flows
    x-group: Link
  - name: login_identity
    description: Login identity lifecycle and metadata
    x-group: Login identity
  - name: accounts
    description: Accounts, balances, and account numbers
    x-group: Accounts
  - name: statements
    description: Statements and composite statements
    x-group: Statements
  - name: transactions
    description: Transaction history
    x-group: Transactions
  - name: identity_income
    description: Identity and income insights
    x-group: Identity & income
  - name: payment_links
    description: Payment link creation and checkout
    x-group: Payment links
  - name: mandates
    description: Direct debit mandates
    x-group: Mandates
  - name: payments
    description: Payment initiation and status
    x-group: Payment operations
  - name: payouts
    description: Payouts and scheduled payouts
    x-group: Payouts
  - name: payment_users
    description: Payment user profiles
    x-group: Payment users
  - name: payment_accounts
    description: Payment accounts for users
    x-group: Payment accounts
  - name: payment_methods
    description: Stored payment methods
    x-group: Payment methods
  - name: bills
    description: Bill presentment
    x-group: Bills
  - name: disputes
    description: Payment disputes
    x-group: Disputes
  - name: ledger
    description: Ledger and statements
    x-group: Ledger
paths:
  /payments/{paymentId}:
    get:
      tags:
        - payments
      summary: Get payment
      description: >-
        Retrieve a Payment object (using a specific `payment_id`).


        **Authorization**: `customer_token`


        ## Response fields


        Single `Payment` object, containing information on the Payment.


        ### fees (array)


        Details on the fee(s) to be charged. Returns an empty array if no fees
        will be charged.


        ### payment_details (object)


        Details describing the Payment.


        ### processor_details (object, optional)


        Additional details on how the payment was processed.


        ### result (object, optional)


        Additional details on the payment processing result.


        ### references (object, optional)


        Additional references for the Payment (e.g. transaction IDs generated by
        Finverse or the payment gateway).


        ### payment_method (object, optional)


        Details on the payment method authorized by the end-user. Refer to the
        Payment Method data model in `GET
        /payment_users/{user_id}/payment_methods` for details on the Payment
        Method object.


        **Limitations**:


        - **Payment Method object is not returned for one-time manual bank
        transfers** (`payment.type` = `MANUAL`, e.g. FPS/PayNow bank transfers).
            
            - These are payments initiated by Payment Links where end-users "push" funds to the recipient bank account. No payment method is created or stored in Finverse systems.
                
        - **Payment Method object is returned, but without a**
        **`payment_method_id`****, for some card payments with Future Payments
        disabled**.
            
            - These are one-time card payments initiated by Payment Links. In some cases (depending on the external payment gateway through which the payment is processed), no payment method is created or stored in Finverse systems, so no `payment_method_id` is available.
                
            - However, some card details may still be returned in the `payment_method.card.card_details` object, for informational purposes (if available from the external payment gateway).
                

        ### recipient (object), sender (object)


        The recipient and sender objects include a Payment User object for each
        of the counterparties of a payment. Refer to the Payment User data model
        in `GET /payment_users/{payment_user_id}` for details on the Payment
        User object.


        Note: Some Payment User metadata fields are omitted for clarity (e.g.
        `created_at`, `metadata`, `updated_at`).


        ### recipient_account (object), sender_account (object)


        The recipient_account and sender_account objects include a Payment
        Account object for each of the counterparties of a payment. Refer to the
        Payment Account object data model in `GET
        /payment_users/{user_id}/payment_accounts` for details on the Payment
        Account object.


        Note: Some Payment Account metadata fields are omitted for clarity (e.g.
        `created_at`, `metadata`, `updated_at`).
      operationId: getPayment
      parameters:
        - description: payment id
          name: paymentId
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentResponse'
              examples:
                executed_mandate_payment:
                  summary: Success (Executed mandate payment)
                  value:
                    amount: 500
                    amount_total_with_surcharge: 500
                    created_at: '2025-06-21T06:30:26.839Z'
                    currency: HKD
                    fees:
                      - amount: 500
                        currency: HKD
                        paid_by: RECIPIENT
                        paid_by_account_id: 01JY8AKPBC32AZ5TPD99R27JZP
                    metadata:
                      branch: branch1
                      key: updated_value
                      new_key: new_value
                    payment_details:
                      collection_entity_name: Finverse Technologies Limited
                      description: Test payment
                      external_transaction_reference: '1750487427'
                      mandate_id: 01JY8JWDY51SYHP006XZBAMVGN
                      processor_entity_name: Finverse Technologies Limited
                      references:
                        bank_transaction_reference: DBS_BANK_REF_01JY8JWTJ92E3RX2TF5F1RA2KK
                        finverse_transaction_reference: FV250101AABB
                        dda_reference: FINVERSE T-62F2-FINV
                      transaction_reference_id: '1750487427'
                    payment_id: 01JY8JWSHVR9SNZWYFYX2C9CTV
                    payment_method_id: 01JY8JWE50618D9RGH44AR884F
                    recipient:
                      name: Finverse Test
                    recipient_account:
                      account_id: 01JY8AKPBC32AZ5TPD99R27JZP
                      account_type: SETTLEMENT_ACCOUNT
                    sender:
                      external_user_id: user_id_1_1750487415
                      name: John Doe
                      user_details: []
                      user_id: 01JY8JWE3NG8CJ7DVJZJC3HMJT
                      user_type: INDIVIDUAL
                    sender_account:
                      account_id: 01JY8JWKX2HSZJ500DNEJ3JGHQ
                      account_number:
                        number: 01JY8JWM06NV1VNCPM6D5JJ9Y9
                        type: LOCAL
                      account_number_masked: XXX45
                      account_type: EXTERNAL_ACCOUNT
                      accountholder_name: 01JY8JWKZRZ32FFE4G0FPM19H1
                      bank_code: '420'
                      institution_id: testbank-dbs-hk
                      institution_name: Testbank (HK) Payments - Personal
                      user_id: 01JY8JWE3NG8CJ7DVJZJC3HMJT
                    status: EXECUTED
                    surcharge_amount: 0
                    type: MANDATE
                    updated_at: '2025-06-21T06:30:28.482Z'
                executed_stored_card_payment:
                  summary: Success (Executed stored card payment)
                  value:
                    amount: 10000
                    amount_total_with_surcharge: 10575
                    created_at: '2025-06-21T05:02:42.165Z'
                    currency: HKD
                    fees:
                      - amount: 575
                        currency: HKD
                        paid_by: SENDER
                        paid_by_account_id: 01JY8AKPF2CBDBQ6F66N78NA47
                      - amount: 595
                        currency: HKD
                        paid_by: RECIPIENT
                        paid_by_account_id: 01JY8AKPF2CBDBQ6F66N78NA47
                    metadata:
                      adyen_balance_account_id: BA3299Q223229Z5NHCM3R4HKQ
                      adyen_payment_psp_reference: Q3LPXXS84P99HPV5
                      adyen_transaction_id: EVJN42CL6225223W5NQBTJ62975JWWHKD
                      adyen_transaction_net_amount: HKD 975.00
                      adyen_value_date: '2026-01-09T07:45:00Z'
                      contract_id: '1234'
                      key: value
                      storeganise_invoice_ids: ABCD
                      user_address: 1 Admiralty Drive
                      user_city: Hong Kong
                      user_country: HK
                      user_first_name: John
                      user_last_name: Doe
                    payment_details:
                      collection_entity_name: Finverse Test
                      description: TEST Payment
                      external_transaction_reference: INV12345
                      processor_details:
                        auth_code: '014085'
                        processor_id: adyen
                        processor_reference: CJRXVH53WM4GBQ65
                        result:
                          result_code: Authorised
                      references:
                        finverse_transaction_reference: FV250101AABB
                    payment_id: 01JY8DW4CGB3Z0WTBHZFSZTJZ4
                    payment_method:
                      card:
                        card_details:
                          brand: Visa
                          last4: '4242'
                    payment_method_id: 01JY8DW4DAQY5STF25AE22W5C7
                    recipient:
                      name: Finverse Test
                    recipient_account:
                      account_id: 01JY8AKPF2CBDBQ6F66N78NA47
                      account_type: SETTLEMENT_ACCOUNT
                    sender:
                      external_user_id: user_id_1||1750482147
                      name: John Doe
                      user_details: []
                      user_id: 01JY8DVPA28N4TB11N9H57J5CX
                      user_type: UNKNOWN
                    status: EXECUTED
                    surcharge_amount: 575
                    type: CARD
                    updated_at: '2025-06-21T05:03:09.340Z'
                one_time_card_payment_executed_by_payment_link:
                  summary: Success (One-time card payment executed by payment link)
                  value:
                    amount: 10000
                    created_at: '2024-08-16T15:12:26.675Z'
                    currency: HKD
                    fees:
                      - amount: 575
                        currency: HKD
                        paid_by: SENDER
                        paid_by_account_id: 01H5VEQWDZGWMY6D9EFFX7GXJQ
                      - amount: 595
                        currency: HKD
                        paid_by: RECIPIENT
                        paid_by_account_id: 01H5VEQWDZGWMY6D9EFFX7GXJQ
                    metadata:
                      contract_id: '1234'
                      external_contact_id: user_id_1||1723821113
                      external_invoice_number: INV12345
                      key: value
                      stripe_charge_id: ch_3PoRpCJXxo5qMAzS0iQdRfXq
                      stripe_payment_intent_id: pi_3PoRpCJXxo5qMAzS0j6Bwens
                    payment_details:
                      colleciton_entity_name: Demo Company Ltd
                      description: TEST Payment
                      external_transaction_reference: INV12345
                      processor_details:
                        auth_code: '014085'
                        processor_id: adyen
                        processor_reference: CJRXVH53WM4GBQ65
                        result:
                          result_code: Authorised
                      references:
                        finverse_transaction_reference: FV250101AABB
                    payment_id: 01J5DVXVE4BCXMRDKGTQ0FJRHK
                    payment_method:
                      card:
                        card_details:
                          brand: Visa
                          last4: '4242'
                    recipient:
                      name: Demo App
                    recipient_account:
                      account_id: 01H5VEQWDZGWMY6D9EFFX7GXJQ
                      account_type: SETTLEMENT_ACCOUNT
                    sender:
                      external_user_id: user_id_1||1723821113
                      name: John Doe
                      user_details: []
                      user_id: 01J5DVXHCDW75ZQN2TKANEQQZ7
                      user_type: UNKNOWN
                    status: EXECUTED
                    type: CARD
                    updated_at: '2024-08-16T15:12:26.676Z'
                manual_payment_executed_by_payment_link:
                  summary: Success (Manual payment executed by payment link)
                  value:
                    amount: 10000
                    amount_total_with_surcharge: 10000
                    created_at: '2025-02-25T09:12:29.453Z'
                    currency: HKD
                    fees:
                      - amount: 50
                        currency: HKD
                        paid_by: RECIPIENT
                        paid_by_account_id: 01H5VEQ9DZP46TB3ZM3WPNT74H
                    metadata:
                      contract_id: '1234'
                      external_contact_id: user_id_1||1740123925
                      external_invoice_number: INV12345
                      key: value
                      storeganise_invoice_ids: ABCD
                      user_address: 1 Admiralty Drive
                      user_city: Hong Kong
                      user_country: HK
                      user_first_name: John
                      user_last_name: Doe
                    payment_details:
                      collection_entity_name: Finverse Technologies Limited
                      description: TEST Payment
                      external_transaction_reference: INV12345
                      processor_entity_name: Finverse Technologies Limited
                      references:
                        finverse_transaction_reference: FV250101AABB
                    payment_id: 01JMY624F0X3SJMMJYM0W6X2BQ
                    recipient:
                      name: Demo App
                    recipient_account:
                      account_id: 01H5VEQ9DZP46TB3ZM3WPNT74H
                      account_type: SETTLEMENT_ACCOUNT
                    sender:
                      external_user_id: user_id_1||1740123925
                      name: John Doe
                      user_details: []
                      user_id: 01JMKQFX5MA3HXW3DTR71P0C81
                      user_type: BUSINESS
                    status: EXECUTED
                    surcharge_amount: 0
                    type: MANUAL
                    updated_at: '2025-02-25T09:14:50.354Z'
                payment_rejected_by_bank:
                  summary: Error (payment rejected by bank)
                  value:
                    amount: 500
                    created_at: '2024-05-20T09:56:24.845Z'
                    currency: HKD
                    error:
                      details: >-
                        Payment rejected by your institution. Please verify that
                        your account has sufficient funds and try again, or
                        contact your institution's customer support. (Error
                        details: NARR Additional reject reason from debtor bank
                        <Free Text>)
                      error_code: PAYMENT_REJECTED
                      message: Payment rejected
                      request_id: '1716198987'
                      type: PAYMENT_ERROR
                    fees:
                      - amount: 500
                        currency: HKD
                        paid_by: RECIPIENT
                        paid_by_account_id: 01H5VH5YCFDVH80YZ8D0TG3HET
                    metadata:
                      employer_name: Apple Inc
                      key: value
                    payment_details:
                      description: Test payment
                      external_transaction_reference: '1716198980'
                      mandate_id: 01HY9W7YP9EB217Z0SH9EDE7H7
                      transaction_reference_id: '1716198980'
                    payment_id: 01HYAPWF1TGGZW7330PS03HPW5
                    payment_method_id: 01HY9W7YV3R1MRRN2KVS4N3PPG
                    recipient:
                      name: Demo App
                    recipient_account:
                      account_id: 01H5VH5YCFDVH80YZ8D0TG3HET
                      account_type: SETTLEMENT_ACCOUNT
                    sender:
                      external_user_id: user_id_1||1716171036
                      name: John Doe
                      user_details: []
                      user_id: 01HY9W7NBTP0D5K8PVE6XQGF8Y
                      user_type: INDIVIDUAL
                    sender_account:
                      account_id: 01HY9W8N76G9FJ9S71M7YTY3WH
                      account_number:
                        number: 01HY9W8NCT6JZ7F4M60JYZBM4K
                        type: LOCAL
                      account_number_masked: 330XXXXX0303
                      account_type: EXTERNAL_ACCOUNT
                      accountholder_name: 01HY9W8NBWV837VDYZSN1FDMT9
                      bank_code: '420'
                      institution_id: testbank-dbs-hk
                      institution_name: Testbank (HK) Payments - Personal
                      user_id: 01HY9W7NBTP0D5K8PVE6XQGF8Y
                    status: FAILED
                    type: MANDATE
                    updated_at: '2024-05-20T09:56:24.845Z'
        '400':
          description: Invalid Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrBodyModelV2'
              examples:
                payment_not_found:
                  summary: Error (payment not found)
                  value:
                    error:
                      details: Payment_id not found
                      error_code: RESOURCE_NOT_FOUND
                      message: >-
                        Resource cannot be found. Resource does not exist, has
                        been deleted, or is not accessible.
                      request_id: '1705595208'
                      type: API_ERROR
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrBodyModelV2'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrBodyModelV2'
      security:
        - Oauth2:
            - payment:get
components:
  schemas:
    PaymentResponse:
      required:
        - amount
        - surcharge_amount
        - amount_total_with_surcharge
      properties:
        amount:
          description: Amount of the payment (in minor currency unit)
          type: integer
          example: 100
        amount_total_with_surcharge:
          description: >-
            Total amount of the payment including any transaction fee
            `surcharge_amount` paid by the sender (in minor currency unit). See
            `surcharge_amount` on transaction fee surcharges.
          type: integer
          example: 100
        created_at:
          description: Timestamp when the payment was first created
          type: string
          format: date-time
        currency:
          type: string
          example: HKD
          description: Currency of the payment (e.g. HKD)
        error:
          $ref: '#/components/schemas/FvEmbeddedErrorModel'
          description: >-
            Details on why the payment failed (returned when `status` =
            `FAILED`). Note: this is used to detail any asynchronous e errors
            occuring after payment creation; any synchronous errors (e.g. API
            validation errors, real-time payment errors) will instead be
            returned directly during `POST /payments`.
        fees:
          type: array
          items:
            $ref: '#/components/schemas/Fee'
          description: Details on the fee(s) to be charged
        metadata:
          description: >-
            Customer-supplied attributes in key:value format. E.g.
            `employer_name`: `Apple Inc`
          type: object
          additionalProperties:
            type: string
        payment_details:
          $ref: '#/components/schemas/PaymentDetails2'
          description: Details on the payment
        payment_id:
          description: >-
            Finverse Payment ID for this payment. Always unique. Creating a
            payment with different idempotency keys will result in two payments
            with different IDs.
          type: string
        payment_method:
          $ref: '#/components/schemas/PaymentSnapshotPaymentMethod'
          description: Details on the payment method
        payment_method_id:
          description: (TO BE DEPRECATED) Finverse unique ID for the payment method
          type: string
        recipient:
          $ref: '#/components/schemas/MandateRecipient'
          description: Details on the recipient of the payment
        recipient_account:
          $ref: '#/components/schemas/MandateRecipientAccount'
          description: >-
            Details on the recipient's account for the payment (i.e. the
            Customer App's settlement account at Finverse)
        sender:
          $ref: '#/components/schemas/GetMandateSender'
          description: Details on the sender of the payment
        sender_account:
          $ref: '#/components/schemas/MandateSenderAccount'
          description: >-
            (IN DEVELOPMENT) Details on the Sender's source institution and
            account, which is funding the payment
        status:
          description: >-
            Current status of the payment. Possible values: `CREATED`,
            `AUTHORIZATION_REQUIRED`, `PROCESSING`, `SUBMITTED, EXECUTED`,
            `CANCELLED`, `FAILED`
          type: string
          enum:
            - AUTHORIZATION_REQUIRED
            - AUTHORIZING
            - PROCESSING
            - SUBMITTED
            - EXECUTED
            - FAILED
            - REVOKED
            - CANCELLED
            - CREATED
        surcharge_amount:
          description: >-
            Transaction fee surcharge_amount paid by the sender, if any
            surcharge has been configured (in minor currency unit). Transaction
            fee surcharges are off by default, but can be set for specific
            payment methods, or for custom scenarios (e.g. based on transaction
            amount, payment flow, etc). Contact
            [support@Finverse.com](mailto:support@Finverse.com) to configure
            surcharges.
          type: integer
          example: 100
        type:
          description: >-
            Specified payment type. Possible values: - `CARD`: payment via card
            gateway (e.g. Stripe) \- `MANDATE`: direct debit bank payment \-
            `MANUAL`: manual bank transfer (e.g. FPS, PayNow) \- `SINGLE`: not
            used (reserved for future use)
          type: string
          enum:
            - MANDATE
            - SINGLE
            - CARD
            - MANUAL
            - WALLET
        updated_at:
          description: Timestamp of the last update to the payment's record
          type: string
          format: date-time
    ErrBodyModelV2:
      properties:
        error:
          $ref: '#/components/schemas/FvErrorModelV2'
    FvEmbeddedErrorModel:
      required:
        - type
        - error_code
        - message
        - details
      properties:
        details:
          type: string
        error_code:
          type: string
          example: CREDENTIALS_INVALID
        message:
          type: string
        type:
          description: The error type
          type: string
          enum:
            - LINK_ERROR
            - API_ERROR
          example: LINKING_ERROR
    Fee:
      required:
        - amount
      properties:
        amount:
          description: Amount of the fee (in minor currency unit)
          type: integer
          example: 100
        currency:
          type: string
          example: HKD
          description: Currency of the fee (e.g. HKD)
        paid_by:
          type: string
          enum:
            - RECIPIENT
            - SENDER
          example: RECIPIENT
          description: >-
            Party who will be charged the fee. Possible values: `RECIPIENT`,
            `SENDER`
        paid_by_account_id:
          description: >-
            Finverse Payment Account ID of the party who will be charged the
            fee. This references the `account_id` of either the
            `recipient_account` or the `sender_account`.
          type: string
          example: The payment account ID
    PaymentDetails2:
      properties:
        collection_entity_name:
          type: string
          description: >-
            Name of the legal entity directly collecting the payment. This name
            may be displayed to users in the Finverse UI and in email
            notifications and in the sender's bank statements. For payments
            directly collected by the merchant (e.g. SG eGIRO payments),
            `collection_entity_name` is typically the merchant's legal entity
            name, configured by Finverse during customer onboarding. Contact
            [support@finverse.com](mailto:support@finverse.com) to configure
            your merchant details. For payments collected through Finverse (e.g.
            HK eDDA payments), `collection_entity_name` will be the same as
            `processor_entity_name`
        description:
          description: >-
            User-facing description for the payment transaction. SWIFT character
            set includes the following characters: alphanumeric, space, and
            symbols `/ - ? : ( ) . , ' +`
          type: string
          maxLength: 100
        external_transaction_reference:
          description: >-
            User-facing transaction reference for the payment transaction. SWIFT
            character set includes the following characters: alphanumeric,
            space, and symbols / - ? : ( ) . , ' +
          type: string
          maxLength: 35
        mandate_id:
          description: >-
            `mandate_id` from Mandates object. Only returned if `type` =
            `MANDATE`.
          type: string
        processor_details:
          $ref: '#/components/schemas/PaymentProcessorDetails'
          description: Additional details on how the payment was processed
        processor_entity_name:
          type: string
          description: >-
            Name of the payment processor (if any) through which payments are
            collected. This name may be displayed to users in the Finverse UI,
            in email notifications and in the sender's bank/card statements. For
            payments directly collected by the merchant (e.g. SG eGIRO payments,
            most card payments), no `processor_entity_name` is returned. For
            payments collected through Finverse (e.g. HK eDDA payments),
            `processor_entity_name` will be Finverse's legal entity name.
        recurring_payment_mode:
          description: >-
            Flag used to identify recurring payment use cases (for which some
            payment methods can be eligible for discounted pricing). Possible
            values: - `FIXED_SCHEDULE`: used for subscriptions (fixed schedule,
            fixed or variable amount) \- `NON_RECURRING`: used for one-off,
            user-initiated payments (like an Uber ride or Amazon shopping order)
            \- `VARIABLE_RECURRING`: used for variable schedule + amount
            recurring contracts (e.g. usage based contracts like Cloud / SaaS
            services, or property rentals with additional adhoc charges for
            value-added services)
          type: string
        references:
          $ref: '#/components/schemas/PaymentDetailsReferences'
          description: >-
            Additional references for the Payment (e.g. transaction IDs
            generated by Finverse or the payment gateway)
        transaction_reference_id:
          description: >-
            (DEPRECATED - replaced by `external_transaction_reference`)
            User-facing transaction reference ID for the payment transaction.
            SWIFT character set includes the following characters: alphanumeric,
            space, and symbols `/ - ? : ( ) . , ' +`
          type: string
    PaymentSnapshotPaymentMethod:
      properties:
        bank_transfer:
          properties:
            bank_transfer_details:
              $ref: '#/components/schemas/BankTransferDetails'
            risk_data:
              $ref: '#/components/schemas/RiskData'
        card:
          properties:
            card_details:
              $ref: '#/components/schemas/FVCardDetails'
        wallet:
          properties:
            risk_data:
              $ref: '#/components/schemas/RiskData'
            wallet_details:
              $ref: '#/components/schemas/FVWalletDetails'
    MandateRecipient:
      required:
        - name
      properties:
        name:
          description: Merchant account name
          type: string
    MandateRecipientAccount:
      required:
        - account_id
        - account_type
      properties:
        account_id:
          description: Merchant account ID assigned by Finverse
          type: string
        account_type:
          description: Type of recipient account.
          type: string
          enum:
            - EXTERNAL_ACCOUNT
            - SETTLEMENT_ACCOUNT
          example: SETTLEMENT_ACCOUNT
    GetMandateSender:
      required:
        - user_id
        - external_user_id
        - user_type
      properties:
        external_user_id:
          description: >-
            Customer App's user ID, representing the end-user making the
            payment.
          type: string
        name:
          type: string
        user_details:
          description: Sender details which will be used for fraud checking.
          type: array
          items:
            $ref: '#/components/schemas/SenderDetail'
        user_id:
          description: A unique identifier generated after creating sender
          type: string
        user_type:
          description: >-
            Type of account held by the Sender at the Institution. Possible
            values are INDIVIDUAL, BUSINESS
          type: string
          enum:
            - INDIVIDUAL
            - BUSINESS
    MandateSenderAccount:
      type: object
      properties:
        account_id:
          description: A unique identifier generated after creating sender account
          type: string
          example: sender_account_id
        account_number:
          $ref: '#/components/schemas/RecipientAccountNumber'
          description: Bank account number details, including account number in plaintext
        account_number_masked:
          description: Masked Account number of the sender’s account
          type: string
        account_type:
          description: Type of sender account.
          type: string
          enum:
            - EXTERNAL_ACCOUNT
          example: EXTERNAL_ACCOUNT
        accountholder_name:
          description: Tokenized accountholder name of the sender's account
          type: string
          example: 01EP4A1MZDHKETZFRPF0K62S6S
        accountholder_name_plaintext:
          description: Accountholder name in plaintext.
          type: string
          example: Chan Li Pak
          nullable: true
        bank_code:
          type: string
        institution_id:
          description: Finverse Institution ID for the sender’s institution.
          type: string
          example: hsbc-hk
        institution_name:
          description: Institution Name for the sender’s institution.
          type: string
          example: HSBC
        metadata:
          description: >-
            Additional attributes of the sender account in key:value format
            (e.g. sender_id: 1234). It supports up to 10 key:value pairs,
            whereas the key and value supports up to 50 and 1000 characters
            respectively.
          type: object
          additionalProperties:
            type: string
        user_id:
          description: >-
            A unique identifier generated after creating sender (Finverse
            Payment User ID)
          type: string
          example: 01GY6H0JA7BS8EVGY56NSHFX2E
    FvErrorModelV2:
      required:
        - type
        - error_code
        - message
        - details
        - request_id
      properties:
        details:
          type: string
        error_code:
          type: string
          example: CREDENTIALS_INVALID
        message:
          type: string
        request_id:
          description: The request_id provided in the request header
          type: string
        type:
          description: The error type
          type: string
          enum:
            - LINK_ERROR
            - API_ERROR
          example: LINKING_ERROR
    PaymentProcessorDetails:
      properties:
        auth_code:
          type: string
          description: Authorization code returned by the payment gateway
        processor_id:
          type: string
          description: >-
            ID of the payment gateway which processed the payment. Possible
            values: - `ADYEN`
        processor_reference:
          type: string
          description: Transaction reference returned by the payment gateway
        result:
          $ref: '#/components/schemas/PaymentProcessorResult'
          description: Additional details on the payment processing result
        scheme:
          description: Scheme like becs, bacs, ach, etc. (applicable to Gocardless for now)
          type: string
        virtual_account_bank_code:
          description: >-
            Bank code for the virtual account without a BK prefix (e.g. KCP
            manual virtual account payments).
          type: string
        virtual_account_number:
          description: >-
            Virtual account number issued by the processor (e.g. KCP manual
            virtual account payments).
          type: string
    PaymentDetailsReferences:
      properties:
        bank_transaction_reference:
          type: string
          description: Unique bank reference ID for the payment.
        dda_reference:
          type: string
          description: >-
            (Direct debit mandate payments only) Unique reference ID for the
            Direct Debit Authorization registered with the user's bank, used to
            authorized the payment. The user's bank may quote this reference in
            notifications to the user, and in the user's bank statements.
        finverse_transaction_reference:
          type: string
          description: >-
            Finverse-generated unique transaction ID for the payment. This value
            may be generated and passed to 3rd party payment gateways when using
            the Finverse `payment_id` is not possible or desirable (e.g. when
            the transaction reference is user-facing, making a more
            user-friendly transaction reference preferable).
    BankTransferDetails:
      properties:
        transfer_type:
          description: The transfer type
          type: string
          example: PayNow
    RiskData:
      properties:
        processor_risk_data:
          $ref: '#/components/schemas/ProcessorRiskData'
    FVCardDetails:
      properties:
        acquirer_authorization_reference:
          description: The acquirer authorization reference
          type: string
          example: '524506894419'
        brand:
          description: >-
            Card brand. Common values: American Express, Diners Club, JCB,
            Mastercard, UnionPay, Visa.
          type: string
          example: VISA
        brand_product_name:
          description: The brand product name
          type: string
          example: visacommercialpremiumcredit
        card_number_alias:
          description: >-
            Unique fingerprint for the card number, if provided by the card
            payment gateway. The card number alias can be used to check whether
            the card number is the same (for example across multiple users).
            Unlike the card `fingerprint`, the card number alias will change if
            the card is reissued with a new number (e.g. upon card expiry). See
            also: `fingerprint` field.
          type: string
          example: F046886807590403
        collection_entity_name:
          type: string
          description: >-
            Name of the legal entity directly collecting the payment. This name
            may be displayed to users in the Finverse UI and in email
            notifications and in the sender's card statements. For card
            payments, `collection_entity_name` is typically the merchant's legal
            entity name, configured by Finverse during customer onboarding.
            Contact [support@finverse.com](mailto:support@finverse.com) to
            configure your merchant details.
        country:
          description: Card country of issuance (e.g. "SG")
          type: string
          example: HK
        expiry_month:
          description: Card expiry month (e.g. 3 = March)
          type: integer
          example: 7
        expiry_year:
          description: 4-digit card expiry year (e.g. 2025)
          type: integer
          example: 2028
        fingerprint:
          type: string
          example: V0010013822052427221044754993
          description: >-
            Unique fingerprint for the card account, if provided by the card
            payment gateway. The card fingerprint remains the same even when a
            card expires and a new card is issued with a new card number. The
            fingerprint can be used to check whether the card is the same (for
            example across multiple users). See also: `card_number_alias` field.
        finverse_authorization_reference:
          type: string
          description: >-
            Finverse-generated unique ID for the payment method authorization
            setup. This value may be generated and passed to 3rd party payment
            gateways when using the Finverse `payment_id` is not possible or
            desirable (e.g. when the reference is user-facing, making a more
            user-friendly reference preferable).
        funding:
          description: >-
            Card funding type. Possible values: `CREDIT`, `DEBIT`, `PREPAID`,
            `UNKNOWN`
          type: string
          enum:
            - UNKNOWN
            - CREDIT
            - DEBIT
            - PREPAID
        is_commercial:
          description: Whether the card is a commercial card
          type: boolean
          example: true
          nullable: true
        last4:
          description: Last 4 digits of the card number
          type: string
          example: '1234'
        processor_details:
          $ref: '#/components/schemas/FVCardProcessorDetails'
          description: >-
            Additional details on how the payment method authorization was
            processed
        processor_entity_name:
          type: string
          description: >-
            Name of the payment processor (if any) through which payments are
            collected. This name may be displayed to users in the Finverse UI,
            in email notifications and in the sender's bank/card statements. For
            payments directly collected by the merchant (e.g. SG eGIRO payments,
            most card payments), no `processor_entity_name` is returned. For
            payments collected through Finverse (e.g. HK eDDA payments),
            `processor_entity_name` will be Finverse's legal entity name.
        recurring_payment_mode:
          description: >-
            Flag used to identify whether the payment method specifically has
            been setup for recurring payment use cases (for which some payment
            methods can be eligible for discounted pricing). Possible values: -
            `FIXED_SCHEDULE`: used for subscriptions (fixed schedule, fixed or
            variable amount) \- `NON_RECURRING`: used for one-off,
            user-initiated payments (like an Uber ride or Amazon shopping order)
            \- `VARIABLE_RECURRING`: used for variable schedule + amount
            recurring contracts (e.g. usage based contracts like Cloud / SaaS
            services, or property rentals with additional adhoc charges for
            value-added services)
          type: string
    FVWalletDetails:
      properties:
        brand:
          description: The wallet brand
          type: string
          example: Alipay
        brand_product_name:
          description: The brand product name
          type: string
          example: alipay_hk
        country:
          description: The issuer country
          type: string
          example: HK
    SenderDetail:
      properties:
        details_type:
          description: >-
            Type of the user identity information submitted. Possible values:
            `HK_ID`, `PASSPORT`, `HK_BUSINESS_REGISTRATION`,
            `HK_CERTIFICATE_OF_INCORPORATION`, `ACCOUNTHOLDER_NAME`
          type: string
          enum:
            - HK_ID
            - PASSPORT
            - HK_BUSINESS_REGISTRATION
            - HK_CERTIFICATE_OF_INCORPORATION
        values:
          description: >-
            Value(s) of the user identity information submitted. Min 1 value
            required, max 10 values. Values in responses are tokenized by
            Finverse.
          type: array
          maxItems: 10
          items:
            type: string
    RecipientAccountNumber:
      type: object
      required:
        - type
        - number
      properties:
        number:
          description: >-
            Account number. Account numbers in responses are tokenized by
            Finverse.
          type: string
          maxLength: 100
          minLength: 1
        number_plaintext:
          description: Account number in plaintext
          type: string
          maxLength: 100
          minLength: 1
          nullable: true
        type:
          description: 'Type of account number format. Possible values: `IBAN`, `LOCAL`'
          type: string
          enum:
            - LOCAL
            - IBAN
    PaymentProcessorResult:
      properties:
        decline_code:
          description: Payment processor's decline code (e.g. "2")
          type: string
        decline_reason:
          description: >-
            Decline reason returned by the payment gateway (if payment was
            declined)
          type: string
        last_action:
          description: >-
            Last action taken by the payment processor (e.g. "created",
            "captured", "failed", etc.)
          type: string
        result_code:
          description: Payment result code returned by the payment gateway
          type: string
        status:
          description: >-
            Status of the payment reported by processor (e.g. "authorized",
            "captured", "failed", etc.)
          type: string
    ProcessorRiskData:
      properties:
        browser_type:
          description: The browser type
          type: string
          example: Chrome
        device_type:
          description: The device type
          type: string
          example: Desktop
        shopper_country:
          description: The shopper country
          type: string
          example: HK
        shopper_ip:
          description: The shopper IP address
          type: string
          example: 127.0.0.1
        shopper_locale:
          description: The shopper locale
          type: string
          example: en-HK
    FVCardProcessorDetails:
      properties:
        auth_code:
          type: string
          description: Authorization code returned by the payment gateway
        network_transaction_reference:
          description: The network transaction reference
          type: string
        processor_id:
          type: string
          description: >-
            ID of the payment gateway which processed the payment method
            authorization. Possible values: - `ADYEN`
        processor_reference:
          type: string
          description: Transaction reference returned by the payment gateway
        token_id:
          type: string
          description: >-
            Token ID returned by the payment gateway (for tokenized payment
            methods)
  securitySchemes:
    Oauth2:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://finverse-dev.us.auth0.com/oauth/token
          scopes:
            account: Account
            balance: Balance
            credit: Credit
            institution: Institution
            investment: Investment
            link: Link
            test: Test
            transaction: Transaction

````