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.
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/veem-payment-controller-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 form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
OpenAPI Specification
openapi: 3.2.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:
WalletWithdrawRequest:
properties:
amount:
$ref: '#/components/schemas/AlignMonetaryAmount'
requestId:
type: string
title: WalletWithdrawRequest
type: object
PayoutRequest:
description: Request payload for creating a crypto wallet payout.
properties:
amount:
$ref: '#/components/schemas/AlignMonetaryAmountCryptoWallet'
fromCryptoWalletId:
format: int64
type: integer
toAddress:
type: string
toChain:
type: string
title: PayoutRequest
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
BusinessAddressRequest:
properties:
city:
description: City
type: string
countryCode:
description: Country Code
enum:
- 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
postalCode:
description: Postal Code
type: string
province:
description: Province
type: string
street:
description: Type of entity
type: string
streetSecondary:
description: Address additional information
type: string
required:
- city
- countryCode
- postalCode
- province
- street
title: BusinessAddressRequest
type: object
PayeeInfoResponse:
properties:
currency:
description: Currency
enum:
- 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
- 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
feeAmount:
description: Fee amount
type: number
originalAmount:
description: Original sent amount
type: number
totalAmount:
description: Total amount with fee included
type: number
title: PayeeInfoResponse
type: object
JSONObject:
title: JSONObject
type: object
BusinessAddressRequestCryptoWallet:
description: Business or individual address details used by crypto wallet endpoints.
properties:
city:
description: City
type: string
countryCode:
description: Country Code
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
postalCode:
description: Postal Code
type: string
province:
description: Province
type: string
state:
description: State
type: string
street:
description: Type of entity
type: string
streetSecondary:
description: Address additional information
type: string
required:
- city
- countryCode
- postalCode
- street
title: BusinessAddressRequestCryptoWallet
type: object
FinancialExtraInfoDTO:
description: Internal additional financial information for a payment.
properties:
allowPushPayment:
type: boolean
approvalDepartment:
type: string
autoTriggered:
type: boolean
bankWithdrawal:
type: boolean
bruid:
type: string
cancelTransactionMessage:
type: string
cancelTransactionReason:
type: string
ccEmails:
items:
type: string
type: array
claimCode:
type: string
claimFlowType:
type: string
clientId:
type: string
closedAccount:
type: string
contractFiles:
items:
type: string
type: array
customEmailMessage:
type: string
customInfo:
additionalProperties:
type: object
type: object
declineNotes:
additionalProperties:
type: object
type: object
disableNetTerms:
type: boolean
discount:
items:
$ref: '#/components/schemas/JSONObject'
type: array
emailStatus:
type: string
enterprisePaymentOrder:
type: string
errorCategory:
type: string
expeditedPaymentType:
enum:
- ExpeditedPayer
- FirstTimeCustomer
- InstantDeposit
- VirtualCard
- CreditCard
- ChequePayment
- ExpeditedPayerSetting
- ExpeditedPayeeSetting
- ExpeditedFxPartner
- SVBFxPayment
- FromWallet
- VirtualBank
- CryptoWallet
- RTP
type: string
externalFiles:
items:
type: string
type: array
externalInvoiceRefDate:
format: date-time
type: string
externalInvoiceRefDateText:
type: string
externalInvoiceRefId:
type: string
externalRefId:
type: string
extraInfo:
$ref: '#/components/schemas/InternalExtraInfoDTO'
firstTimeClaimed:
format
# --- 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