Veem payment-controller API

Payment Controller

OpenAPI Specification

veem-payment-controller-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  description: Veem REST API
  title: Veem API v1.2 attachment-controller payment-controller API
  version: v1.2.1
servers:
- url: //sandbox-api.veem.com
tags:
- description: Payment Controller
  name: payment-controller
paths:
  /veem/v1.2/payments/{paymentId}/approve:
    post:
      deprecated: false
      description: approve a payment
      operationId: approvePaymentUsingPOST_2
      parameters:
      - description: paymentId
        in: path
        name: paymentId
        required: true
        schema:
          format: int64
          type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentResponse'
          description: Success, an approved payment object is returned
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized, the token is invalid or expired
        '401':
          description: Unauthorized, the token is invalid or expired
        '403':
          description: Forbidden, the token owner doesn't have permission to operate current API
        '404':
          description: Not Found, the resource not found
        '500':
          description: Internal Server Error, see the error code and API doc for reference
      summary: approvePayment
      tags:
      - payment-controller
  /veem/v1.0/payments/cryptowallet/payin:
    post:
      deprecated: false
      description: Creates deposit instructions for moving funds to a crypto wallet externally.
      operationId: createCryptoWalletPayin
      parameters:
      - description: Identifier of the account the pay-in is created on behalf of.
        in: query
        name: onBehalfAccountId
        required: false
        schema:
          format: int64
          type: integer
      requestBody:
        $ref: '#/components/requestBodies/PayinRequest'
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicInvoiceResponseCryptoWallet'
          description: Success, a crypto wallet pay-in is created in Veem
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized, the token is invalid or expired
        '401':
          description: Unauthorized, the token is invalid or expired
        '403':
          description: Forbidden, the token owner doesn't have permission to operate current API
        '404':
          description: Not Found, the resource not found
        '500':
          description: Internal Server Error, see the error code and API doc for reference
      summary: Create a Crypto Wallet pay-in
      tags:
      - payment-controller
  /veem/v1.0/payments/cryptowallet/payout:
    post:
      deprecated: false
      description: Withdraw Crypto Wallet funds to an external address, creating a payment.
      operationId: createCryptoWalletPayout
      parameters:
      - description: Identifier of the account the payout is created on behalf of.
        in: query
        name: onBehalfAccountId
        required: false
        schema:
          format: int64
          type: integer
      requestBody:
        $ref: '#/components/requestBodies/PayoutRequest'
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicInvoiceResponseCryptoWallet'
          description: Success, a crypto wallet payout is created in Veem
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized, the token is invalid or expired
        '401':
          description: Unauthorized, the token is invalid or expired
        '403':
          description: Forbidden, the token owner doesn't have permission to operate current API
        '404':
          description: Not Found, the resource not found
        '500':
          description: Internal Server Error, see the error code and API doc for reference
      summary: Create a Crypto Wallet payout
      tags:
      - payment-controller
  /veem/v1.2/payments:
    post:
      deprecated: false
      description: post a payment and sends to receiver
      operationId: createPaymentUsingPOST_2
      requestBody:
        $ref: '#/components/requestBodies/PaymentRequest'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentResponse'
          description: Success, a payment is created in Veem
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentResponse'
          description: Created
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized, the token is invalid or expired
        '401':
          description: Unauthorized, the token is invalid or expired
        '403':
          description: Forbidden, the token owner doesn't have permission to operate current API
        '404':
          description: Not Found, the resource not found
        '500':
          description: Internal Server Error, see the error code and API doc for reference
      summary: createPayment
      tags:
      - payment-controller
  /veem/v1.2/payments/{paymentId}:
    get:
      deprecated: false
      description: get payment details
      operationId: getPaymentUsingGET_2
      parameters:
      - description: paymentId
        in: path
        name: paymentId
        required: true
        schema:
          format: int64
          type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentResponse'
          description: Success, a payment object is returned
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized, the token is invalid or expired
        '401':
          description: Unauthorized, the token is invalid or expired
        '403':
          description: Forbidden, the token owner doesn't have permission to operate current API
        '404':
          description: Not Found, the resource not found
        '500':
          description: Internal Server Error, see the error code and API doc for reference
      summary: getPayment
      tags:
      - payment-controller
  /veem/v1.0/payments/wallet/addFunds:
    post:
      deprecated: false
      description: Wallet Add Funds
      operationId: walletAddFundsUsingPOST
      requestBody:
        $ref: '#/components/requestBodies/AddWalletFundsRequest'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentResponse'
          description: Success, a wallet deposit payment is created in Veem
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentResponse'
          description: Created
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized, the token is invalid or expired
        '401':
          description: Unauthorized, the token is invalid or expired
        '403':
          description: Forbidden, the token owner doesn't have permission to operate current API
        '404':
          description: Not Found, the resource not found
        '500':
          description: Internal Server Error, see the error code and API doc for reference
      summary: walletAddFunds
      tags:
      - payment-controller
  /veem/v1.0/payments/wallet/withdraw:
    post:
      deprecated: false
      description: Wallet Withdraw
      operationId: walletWithdrawUsingPOST
      requestBody:
        $ref: '#/components/requestBodies/WalletWithdrawRequest'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentResponse'
          description: Success, a wallet withdraw payment is created in Veem
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentResponse'
          description: Created
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized, the token is invalid or expired
        '401':
          description: Unauthorized, the token is invalid or expired
        '403':
          description: Forbidden, the token owner doesn't have permission to operate current API
        '404':
          description: Not Found, the resource not found
        '500':
          description: Internal Server Error, see the error code and API doc for reference
      summary: walletWithdraw
      tags:
      - payment-controller
components:
  schemas:
    PaymentResponse:
      properties:
        amount:
          $ref: '#/components/schemas/AlignMonetaryAmount'
        attachments:
          description: The list of external invoices to be attached with payment. The files can be uploaded usingfile upload apis
          items:
            $ref: '#/components/schemas/FileAttachment'
          type: array
        batchItemId:
          description: The payment's batchItemId, as specified in the payment creation batch
          format: int64
          type: integer
        bruid:
          description: FX rates BRUID
          type: string
        ccEmails:
          description: The list of emails who will be notified about the payment
          items:
            type: string
          type: array
        claimLink:
          description: The link that allows the recipient to claim the payment
          type: string
        clientId:
          type: string
        debitCreditTxn:
          $ref: '#/components/schemas/LatestCreditDebitResponse'
          description: Latest Debit and credit txn information
        dueDate:
          description: The due date of the payment or invoice request
          format: date-time
          type: string
        exchangeRate:
          $ref: '#/components/schemas/ExchangeRateResponse'
        exchangeRateQuoteId:
          description: The quote id that was received earlier for the payment
          type: string
        externalInvoiceRefId:
          description: The external invoice if for which payment is made, viewable by receiver
          type: string
        feeInformation:
          $ref: '#/components/schemas/FeeInformationResponse'
        fundingMethod:
          $ref: '#/components/schemas/FundingMethod'
        goodFundsPayment:
          type: boolean
        id:
          description: The payment id
          format: int64
          type: integer
        invoiceId:
          description: The invoice id this payment originated from
          format: int64
          type: integer
        notes:
          description: The memo/note associated with payment, viewable by receiver
          type: string
        payee:
          $ref: '#/components/schemas/SimpleAccount'
        payeeAmount:
          $ref: '#/components/schemas/AlignMonetaryAmount'
        payeeFundingMethod:
          $ref: '#/components/schemas/FundingMethod'
        paymentAction:
          enum:
          - SubmitForApproval
          - Approve
          type: string
        paymentApproval:
          $ref: '#/components/schemas/PaymentApprovalResponse'
        paymentApprovalRequest:
          $ref: '#/components/schemas/PaymentApprovalRequest'
        paymentAttributes:
          $ref: '#/components/schemas/PaymentAttributesRequest'
        paymentMethod:
          description: 'The payer''s funding method type. Can be one of: Bank, Card or Wallet. Deprecated please use amount instead'
          enum:
          - Bank
          - External
          - Cheque
          - Card
          - Wallet
          - VirtualCard
          type: string
        purposeOfPayment:
          description: The purpose of payment required by banks for certain countries, applicable for following countries.SG,AE,KR,BR,CN,HK,HR,IS,ID,IN,IL,KE,PK,SA,ZA,TW,UA,VN
          type: string
        purposeOfPaymentDescription:
          description: The purpose of payment description
          type: string
        pushPaymentInfo:
          $ref: '#/components/schemas/PushPaymentInfoResponse'
        status:
          description: The status of the payment
          enum:
          - Drafted
          - Sent
          - Claimed
          - PendingAuth
          - PendingApproval
          - Authorized
          - InProgress
          - Complete
          - Cancelled
          - Closed
          - Reversed
          - Scheduled
          - SchedulingInProgress
          type: string
        timeCreated:
          description: The creation time of the payment. The format is ISO-8601.
          type: string
        timeUpdated:
          description: The most recent update time of the payment. The format is ISO-8601.
          type: string
        validationErrorMessage:
          description: Error message to be returned when the request is not valid
          type: string
      required:
      - amount
      - batchItemId
      - exchangeRate
      - exchangeRateQuoteId
      - id
      - invoiceId
      - payee
      - status
      title: PaymentResponse
      type: object
    WalletWithdrawRequest:
      properties:
        amount:
          $ref: '#/components/schemas/AlignMonetaryAmount'
        requestId:
          type: string
      title: WalletWithdrawRequest
      type: object
    PaymentRequest:
      properties:
        amount:
          $ref: '#/components/schemas/AlignMonetaryAmount'
          description: The amount and currency of the payment
        fundingMethod:
          $ref: '#/components/schemas/FundingMethod'
          description: The payer's funding method. Type + Id, only used from 1.2 and newer versions
        notes:
          description: The memo/note associated with payment, viewable by receiver
          type: string
        payee:
          $ref: '#/components/schemas/SimpleAccount'
          description: The receiver of the payment
        purposeOfPayment:
          description: The purpose of payment - use the country to look at the meta-controller country-currency-map endpoint and look at the purposeOfPaymentInfo list and pick the correct purposeCode
          type: string
        purposeOfPaymentDescription:
          description: The purpose of payment description
          type: string
      required:
      - amount
      - fundingMethod
      - payee
      - purposeOfPayment
      - purposeOfPaymentDescription
      title: PaymentRequest
      type: object
    FundingMethod:
      properties:
        id:
          description: The payer's funding method id. This comes from the funding methods service.
          format: int64
          type: integer
        type:
          description: 'The payer''s funding method type. Can be one of: Bank, Card or Wallet.'
          enum:
          - Bank
          - External
          - Cheque
          - Card
          - Wallet
          - VirtualCard
          type: string
      required:
      - id
      - type
      title: FundingMethod
      type: object
    DefaultMethod:
      properties:
        defaultBillingMethod:
          description: Indicates if the funding method is Billing Default
          type: boolean
        defaultCreditMethod:
          description: Indicates if the funding method is Credit Default
          type: boolean
        defaultDebitMethod:
          description: Indicates if the funding method is Debit Default
          type: boolean
      title: DefaultMethod
      type: object
    SimpleAccountCryptoWallet:
      description: Account information for a party involved in a crypto wallet payment.
      properties:
        accountId:
          description: The Account ID
          format: int64
          type: integer
        bank:
          $ref: '#/components/schemas/PublicBankAccountRequest'
          description: Bank account information, used only for claimless payments
        business:
          $ref: '#/components/schemas/ContactBusinessRequestCryptoWallet'
          description: Basic business information, used only for claimless payments
        businessName:
          description: The name of the receiver's business, required when account type is business
          type: string
        countryCode:
          description: The 2 letter ISO country codes,ISO Alpha-2
          enum:
          - UNDEFINED
          - AC
          - AD
          - AE
          - AF
          - AG
          - AI
          - AL
          - AM
          - AN
          - AO
          - AQ
          - AR
          - AS
          - AT
          - AU
          - AW
          - AX
          - AZ
          - BA
          - BB
          - BD
          - BE
          - BF
          - BG
          - BH
          - BI
          - BJ
          - BL
          - BM
          - BN
          - BO
          - BQ
          - BR
          - BS
          - BT
          - BU
          - BV
          - BW
          - BY
          - BZ
          - CA
          - CC
          - CD
          - CF
          - CG
          - CH
          - CI
          - CK
          - CL
          - CM
          - CN
          - CO
          - CP
          - CR
          - CS
          - CU
          - CV
          - CW
          - CX
          - CY
          - CZ
          - DE
          - DG
          - DJ
          - DK
          - DM
          - DO
          - DZ
          - EA
          - EC
          - EE
          - EG
          - EH
          - ER
          - ES
          - ET
          - EU
          - EZ
          - FI
          - FJ
          - FK
          - FM
          - FO
          - FR
          - FX
          - GA
          - GB
          - GD
          - GE
          - GF
          - GG
          - GH
          - GI
          - GL
          - GM
          - GN
          - GP
          - GQ
          - GR
          - GS
          - GT
          - GU
          - GW
          - GY
          - HK
          - HM
          - HN
          - HR
          - HT
          - HU
          - IC
          - ID
          - IE
          - IL
          - IM
          - IN
          - IO
          - IQ
          - IR
          - IS
          - IT
          - JE
          - JM
          - JO
          - JP
          - KE
          - KG
          - KH
          - KI
          - KM
          - KN
          - KP
          - KR
          - KW
          - KY
          - KZ
          - LA
          - LB
          - LC
          - LI
          - LK
          - LR
          - LS
          - LT
          - LU
          - LV
          - LY
          - MA
          - MC
          - MD
          - ME
          - MF
          - MG
          - MH
          - MK
          - ML
          - MM
          - MN
          - MO
          - MP
          - MQ
          - MR
          - MS
          - MT
          - MU
          - MV
          - MW
          - MX
          - MY
          - MZ
          - NA
          - NC
          - NE
          - NF
          - NG
          - NI
          - NL
          - 'NO'
          - NP
          - NR
          - NT
          - NU
          - NZ
          - OM
          - PA
          - PE
          - PF
          - PG
          - PH
          - PK
          - PL
          - PM
          - PN
          - PR
          - PS
          - PT
          - PW
          - PY
          - QA
          - RE
          - RO
          - RS
          - RU
          - RW
          - SA
          - SB
          - SC
          - SD
          - SE
          - SF
          - SG
          - SH
          - SI
          - SJ
          - SK
          - SL
          - SM
          - SN
          - SO
          - SR
          - SS
          - ST
          - SU
          - SV
          - SX
          - SY
          - SZ
          - TA
          - TC
          - TD
          - TF
          - TG
          - TH
          - TJ
          - TK
          - TL
          - TM
          - TN
          - TO
          - TP
          - TR
          - TT
          - TV
          - TW
          - TZ
          - UA
          - UG
          - UK
          - UM
          - US
          - UY
          - UZ
          - VA
          - VC
          - VE
          - VG
          - VI
          - VN
          - VU
          - WF
          - WS
          - XK
          - YE
          - YT
          - YU
          - ZA
          - ZM
          - ZR
          - ZW
          type: string
        email:
          description: The email of the receiver
          type: string
        extraInfo:
          $ref: '#/components/schemas/JSONObject'
          description: Optional additional information, used only for claimless payments
        firstName:
          description: The first name of the receiver
          type: string
        fundingMethodId:
          description: Funding method id for this party when returned for authorized report callers
          format: int64
          type: integer
        fundingMethodType:
          description: Funding method type for this party when returned for authorized report callers
          enum:
          - Bank
          - External
          - Cheque
          - Card
          - Wallet
          - VirtualCard
          - VirtualBank
          - CryptoWallet
          type: string
        industry:
          description: The industry, used only for claimless payments
          type: string
        lastName:
          description: The last name of the receiver
          type: string
        managingPartnerInfo:
          $ref: '#/components/schemas/ManagingPartnerInfo'
        middleName:
          description: The middle name of the receiver
          type: string
        payeeAccountId:
          description: The Payee Account ID
          format: int64
          type: integer
        payeeAmount:
          $ref: '#/components/schemas/AlignMonetaryAmountCryptoWallet'
          description: The amount and currency of the payment
        payerAccountId:
          description: The Payer Account ID
          format: int64
          type: integer
        payerAmount:
          $ref: '#/components/schemas/AlignMonetaryAmountCryptoWallet'
          description: The amount and currency of the payment
        phoneCountryCodeIfPhoneOrElseSpace:
          type: string
        subIndustry:
          description: The sub industry, used only for claimless payments
          type: string
        type:
          description: The type of the receiver
          enum:
          - Incomplete
          - Business
          - Personal
          type: string
      required:
      - accountId
      - countryCode
      - email
      - firstName
      - lastName
      - payeeAmount
      - payerAccountId
      - payerAmount
      - type
      title: SimpleAccountCryptoWallet
      type: object
    PaymentApprovalRequest:
      properties:
        accountId:
          format: int64
          type: integer
        userId:
          format: int64
          type: integer
      title: PaymentApprovalRequest
      type: object
    JSONObject:
      title: JSONObject
      type: object
    ManagingPartnerInfo:
      description: Managing partner information for an account.
      properties:
        partnerFullName:
          type: string
        taxId:
          type: string
      title: ManagingPartnerInfo
      type: object
    ErrorResponse:
      properties:
        code:
          description: The error code, different than HTTP status codes
          format: int32
          type: integer
        error:
          description: The short message
          type: string
        message:
          description: The detailed, developer friendly message
          type: string
        timestamp:
          description: The timestamp recorded when the error occurred
          type: string
      required:
      - code
      - error
      - message
      title: ErrorResponse
      type: object
    ExchangeRateResponseCryptoWallet:
      description: Exchange rate details for a crypto wallet payment.
      properties:
        expiry:
          description: The expiry time of the current rate quote
          format: date-time
          type: string
        fromAmount:
          description: The source amount, either from or to amount is allowed, the other one is calculated
          type: number
        fromCurrency:
          description: The source currency
          enum:
          - UNDEFINED
          - AED
          - AFN
          - ALL
          - AMD
          - ANG
          - AOA
          - ARS
          - AUD
          - AWG
          - AZN
          - BAM
          - BBD
          - BDT
          - BGN
          - BHD
          - BIF
          - BMD
          - BND
          - BOB
          - BOV
          - BRL
          - BSD
          - BTN
          - BWP
          - BYN
          - BYR
          - BZD
          - CAD
          - CDF
          - CHE
          - CHF
          - CHW
          - CLF
          - CLP
          - CNY
          - COP
          - COU
          - CRC
          - CUC
          - CUP
          - CVE
          - CZK
          - DJF
          - DKK
          - DOP
          - DZD
          - EGP
          - ERN
          - ETB
          - EUR
          - FJD
          - FKP
          - GBP
          - GEL
          - GHS
          - GIP
          - GMD
          - GNF
          - GTQ
          - GYD
          - HKD
          - HNL
          - HRK
          - HTG
          - HUF
          - IDR
          - ILS
          - INR
          - IQD
          - IRR
          - ISK
          - JMD
          - JOD
          - JPY
          - KES
          - KGS
          - KHR
          - KMF
          - KPW
          - KRW
          - KWD
          - KYD
          - KZT
          - LAK
          - LBP
          - LKR
          - LRD
          - LSL
          - LTL
          - LYD
          - MAD
          - MDL
          - MGA
          - MKD
          - MMK
          - MNT
          - MOP
          - MRO
          - MRU
          - MUR
          - MVR
          - MWK
          - MXN
          - MXV
          - MYR
          - MZN
          - NAD
          - NGN
          - NIO
          - NOK
          - NPR
          - NZD
          - OMR
          - PAB
          - PEN
          - PGK
          - PHP
          - PKR
          - PLN
          - PYG
          - QAR
          - RON
          - RSD
          - RUB
          - RUR
          - RWF
          - SAR
          - SBD
          - SCR
          - SDG
          - SEK
          - SGD
          - SHP
          - SLL
          - SOS
          - SRD
          - SSP
          - STD
          - STN
          - SVC
          - SYP
          - SZL
          - THB
          - TJS
          - TMT
          - TND
          - TOP
          - TRY
          - TTD
          - TWD
          - TZS
          - UAH
          - UGX
          - USD
          - USDC
          - USDB
          - USDT
          - USDV
          - EURC
          - USN
          - USS
          - UYI
          - UYU
          - UZS
          - VEF
          - VND
          - VUV
          - WST
          - XAF
          - XAG
          - XAU
          - XBA
          - XBB
          - XBC
          - XBD
          - XCD
          - XDR
          - XOF
          - XPD
          - XPF
          - XPT
          - XSU
          - XTS
          - XUA
          - XXX
          - YER
          - ZAR
          - ZMW
          - ZWL
          type: string
        id:
          description: The quote id
          type: string
        rate:
          description: The Veem exchange rate for current transfer
          type: number
        timeCreated:
          description: The quote generation time
          format: date-time
          type: string
        toAmount:
          description: The target amount, either from or to amount is allowed, the other one is calculated
          type: number
        toCurrency:
          description: The target currency
          enum:
          - UNDEFINED
          - AED
          - AFN
          - ALL
          - AMD
          - ANG
          - AOA
          - ARS
          - AUD
          - AWG
          - AZN
          - BAM
          - BBD
          - BDT
          - BGN
          - BHD
          - BIF
          - BMD
          - BND
          - BOB
          - BOV
          - BRL
          - BSD
          - BTN
          - BWP
          - BYN
          - BYR
          - BZD
          - CAD
          - CDF
          - CHE
          - CHF
          - CHW
          - CLF
          - CLP
          - CNY
          - COP
          - COU
          - CRC
          - CUC
          - CUP
          - CVE
          - CZK
          - DJF
          - DKK
          - DOP
          - DZD
          - EGP
          - ERN
          - ETB
          - EUR
          - FJD
          - FKP
          - GBP
          - GEL
          - GHS
          - GIP
          - GMD
          - GNF
          - GTQ
          - GYD
          - HKD
          - HNL
          - HRK
          - HTG
          - HUF
          - IDR
          - ILS
          - INR
          - IQD
          - IRR
          - ISK
          - JMD
          - JOD
          - JPY
          - KES
          - KGS
          - KHR
          - KMF
          - KPW
          - KRW
          - KWD
          - KYD
          - KZT
          - LAK
          - LBP
          - LKR
          - LRD
          - LSL
          - LTL
          - LYD
          - MAD
          - MDL
          - MGA
          - MKD
          - MMK
          - MNT
          - MOP
          - MRO
          - MRU
          - MUR
          - MVR
          - MWK
          - MXN
          - MXV
          - MYR
          - MZN
          - NAD
          - NGN
          - NIO
          - NOK
          - NPR
          - NZD
          - OMR
          - PAB
          - PEN
          - PGK
          - PHP
          - PKR
          - PLN
          - PYG
          - QAR
          - RON
          - RSD
          - RUB
          - RUR
          - RWF
          - SAR
          - SBD
          - SCR
          - SDG
          - SEK
          - SGD
          - SHP
          - SLL
          - SOS
          - SRD
          - SSP
          - STD
          - STN
          - SVC
          - SYP
          - SZL
          - THB
          - TJS
          - TMT
          - TND
          - TOP
          - TRY
          - TTD
          - TWD
          - TZS
          - UAH
          - UGX
          - USD
          - USDC
          - USDB
          - USDT
          - USDV
          - EURC
          - USN
          - USS
          - UYI
          - UYU
          - UZS
          - VEF
          - VND
          - VUV
          - WST
          - XAF
          - XAG
          - XAU
          - XBA
          - XBB
          - XBC
          - XBD
          - XCD
          - XDR
          - XOF
          - XPD
          - XPF
          - XPT
          - XSU
          - XTS
          - XUA
          - XXX
          - YER
          - ZAR
          - ZMW
          - ZWL
          type: string
      required:
      - expiry
      - fromCurrency
      - id
      - rate
      - timeCreated
      - toAmount
      - toCurrency
      title: ExchangeRateResponseCryptoWallet
      type: object
    LatestCreditDebitResponse:
      properties:
        creditTxn:
          $ref: '#/components/schemas/LatestCreditFinancialTxnResponse'
        debitTxn:
          $ref: '#/components/schemas/LatestDebitFinancialTxnResponse'
        refundTxn:
          $ref: '#/components/schemas/LatestFinancialTxnResponse'
      type: object
    UserApprovalInfoResponse:
      properties:
        approvalStatus:
          enum:
          - Approved
          - Pending
          - Ignored
          type: string
        email:
          type: string
        firstName:
          type: string
        lastName:
          type: string
        middleName:
 

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