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/modulr-beneficiaries-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:
title: Modulr Beneficiaries API
description: Modulr API
license:
name: © Modulr Finance
url: https://www.modulrfinance.com
version: '1.0'
servers:
- url: https://api-sandbox.modulrfinance.com/api-sandbox-token
security:
- modulo_security: []
tags:
- name: Beneficiaries
description: Operations on Beneficiaries
paths:
/customers/{customerId}/beneficiaries:
post:
tags:
- Beneficiaries
summary: Create a new beneficiary for a specified customer
description: The ability to create a new beneficiary for a customer, using their customer ID as a reference.
operationId: createBeneficiary
parameters:
- name: customerId
in: path
description: ID of customer to create beneficiary for
required: true
style: simple
explode: false
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/account.CreateBeneficiaryRequest'
required: true
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/account.BeneficiaryResponse'
'400':
description: Validation errors
content:
'*/*':
schema:
type: array
items:
$ref: '#/components/schemas/account.MessageResponse'
security:
- HMAC: []
- TOKEN: []
delete:
tags:
- Beneficiaries
summary: Delete beneficiaries for a specified customer
description: deleting beneficiaries for a customer, using their customer ID
operationId: deleteBeneficiaries
parameters:
- name: customerId
in: path
description: ID of customer to delete beneficiaries for
required: true
style: simple
explode: false
schema:
type: string
- name: bid
in: query
description: ID(s) of beneficiaries to delete, must owned by customer and active
required: true
style: form
explode: true
schema:
type: array
items:
type: string
responses:
'200':
description: Successfully deleted single resource
content:
application/json:
schema:
type: object
'207':
description: Map of multiple responses for multi-request
content:
application/json:
schema:
type: string
'400':
description: Bad Request
content:
'*/*':
schema:
type: array
items:
$ref: '#/components/schemas/account.MessageResponse'
security:
- HMAC: []
- TOKEN: []
/beneficiaries:
get:
tags:
- Beneficiaries
summary: Retrieve beneficiaries
description: The ability to get the details of beneficiaries using various pieces of information, e.g. using customer ID, retrieve all beneficiaries created by that customer. Can get details of one particular beneficiary based on the unique beneficiary reference number.
operationId: getBeneficiaries
parameters:
- name: id
in: query
description: Id of Beneficiary(s) to fetch
required: false
style: form
explode: true
schema:
$ref: '#/components/schemas/account.id'
- name: customerId
in: query
description: Filter by Customer Id
required: false
style: form
explode: true
schema:
type: string
description: Filter by Customer Id
- name: q
in: query
description: Partial name of beneficiary or Scan Details Or IBAN Or external referenceOr default reference to search for. Deprecated use validForAccount, orSortCode, orAccountNumber, orIban, orName, orExternalReference, orDefaultReference instead
required: false
deprecated: true
style: form
explode: true
schema:
type: string
description: Partial name of beneficiary or Scan Details Or IBAN Or external referenceOr default reference to search for. Deprecated use validForAccount, orSortCode, orAccountNumber, orIban, orName, orExternalReference, orDefaultReference instead
- name: modifiedSince
in: query
description: Beneficiaries modified after this date time
required: false
style: form
explode: true
schema:
type: string
description: Beneficiaries modified after this date time
- name: hasExternalReference
in: query
description: Filter by existence of external reference
required: false
style: form
explode: true
schema:
type: boolean
description: Filter by existence of external reference
- name: externalReference
in: query
description: External reference for beneficiary
required: false
style: form
explode: true
schema:
type: string
description: External reference for beneficiary
- name: iban
in: query
description: IBAN
required: false
style: form
explode: true
schema:
type: string
description: IBAN
- name: abaRoutingNumber
in: query
description: abaRoutingNumber
required: false
style: form
explode: true
schema:
type: string
description: abaRoutingNumber
- name: currency
in: query
description: Currency
required: false
style: form
explode: true
schema:
type: string
description: Currency
enum:
- GBP
- EUR
- 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
- BZD
- CAD
- CDF
- CHE
- CHF
- CHW
- CLF
- CLP
- CNY
- COP
- COU
- CRC
- CUC
- CUP
- CVE
- CZK
- DJF
- DKK
- DOP
- DZD
- EGP
- ERN
- ETB
- FJD
- FKP
- 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
- LYD
- MAD
- MDL
- MGA
- MKD
- MMK
- MNT
- MOP
- 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
- RWF
- SAR
- SBD
- SCR
- SDG
- SEK
- SGD
- SLE
- SLL
- SOS
- SRD
- SSP
- STN
- SVC
- SYP
- SZL
- SHP
- THB
- TJS
- TMT
- TND
- TOP
- TRY
- TTD
- TWD
- TZS
- UAH
- UGX
- USD
- USN
- UYI
- UYU
- UYW
- UZS
- VES
- VND
- VUV
- WST
- XAF
- XAG
- XAU
- XBA
- XBB
- XBC
- XBD
- XCD
- XDR
- XOF
- XPD
- XPF
- XPT
- XSU
- XTS
- XUA
- XXX
- YER
- ZAR
- ZMW
- ZWL
- name: qualifier
in: query
description: A list of external qualifiers
required: false
style: form
explode: true
schema:
$ref: '#/components/schemas/account.qualifier'
- name: state
in: query
description: Approval item state(s) to filter by
required: false
style: form
explode: true
schema:
$ref: '#/components/schemas/account.state'
- name: validForAccount
in: query
description: Source account BID. Limit results to beneficiaries which would be valid recipients of payments from the given account (e.g. IBAN can’t be paid from GBP account, SCAN can’t be paid from non-GBP account). The specified account must be accessible to the user
required: false
style: form
explode: true
schema:
type: string
description: Source account BID. Limit results to beneficiaries which would be valid recipients of payments from the given account (e.g. IBAN can’t be paid from GBP account, SCAN can’t be paid from non-GBP account). The specified account must be accessible to the user
example: A000000001
example: A000000001
- name: sortOrder
in: query
description: Sort order
required: false
style: form
explode: true
schema:
type: string
description: Sort order
pattern: (ASC|DESC)
- name: sortField
in: query
description: Sort by field, This defaults to name if not present
required: false
style: form
explode: true
schema:
type: string
description: Sort by field, This defaults to name if not present
pattern: (name|createdDate)
- name: orSortCode.type
in: query
description: 'WORD_MATCH - using word boundaries,
WORD_MATCH_ALPHANUMERIC - using word boundaries, but replaces non-alphanumeric characters in the search with a word boundary match,
PREFIX - same case prefix,
SUFFIX - same case suffix,
CONTAINS - same case contains
EXACT - same case exact
'
required: false
style: form
explode: true
schema:
type: string
description: 'WORD_MATCH - using word boundaries,
WORD_MATCH_ALPHANUMERIC - using word boundaries, but replaces non-alphanumeric characters in the search with a word boundary match,
PREFIX - same case prefix,
SUFFIX - same case suffix,
CONTAINS - same case contains
EXACT - same case exact
'
enum:
- WORD_MATCH
- WORD_MATCH_ALPHANUMERIC
- PREFIX
- SUFFIX
- CONTAINS
- EXACT
- name: orSortCode.value
in: query
required: false
style: form
explode: true
schema:
type: string
minLength: 1
- name: orAccountNumber.type
in: query
description: 'WORD_MATCH - using word boundaries,
WORD_MATCH_ALPHANUMERIC - using word boundaries, but replaces non-alphanumeric characters in the search with a word boundary match,
PREFIX - same case prefix,
SUFFIX - same case suffix,
CONTAINS - same case contains
EXACT - same case exact
'
required: false
style: form
explode: true
schema:
type: string
description: 'WORD_MATCH - using word boundaries,
WORD_MATCH_ALPHANUMERIC - using word boundaries, but replaces non-alphanumeric characters in the search with a word boundary match,
PREFIX - same case prefix,
SUFFIX - same case suffix,
CONTAINS - same case contains
EXACT - same case exact
'
enum:
- WORD_MATCH
- WORD_MATCH_ALPHANUMERIC
- PREFIX
- SUFFIX
- CONTAINS
- EXACT
- name: orAccountNumber.value
in: query
required: false
style: form
explode: true
schema:
type: string
minLength: 1
- name: orIban.type
in: query
description: 'WORD_MATCH - using word boundaries,
WORD_MATCH_ALPHANUMERIC - using word boundaries, but replaces non-alphanumeric characters in the search with a word boundary match,
PREFIX - same case prefix,
SUFFIX - same case suffix,
CONTAINS - same case contains
EXACT - same case exact
'
required: false
style: form
explode: true
schema:
type: string
description: 'WORD_MATCH - using word boundaries,
WORD_MATCH_ALPHANUMERIC - using word boundaries, but replaces non-alphanumeric characters in the search with a word boundary match,
PREFIX - same case prefix,
SUFFIX - same case suffix,
CONTAINS - same case contains
EXACT - same case exact
'
enum:
- WORD_MATCH
- WORD_MATCH_ALPHANUMERIC
- PREFIX
- SUFFIX
- CONTAINS
- EXACT
- name: orIban.value
in: query
required: false
style: form
explode: true
schema:
type: string
minLength: 1
- name: orAbaRoutingNumber.type
in: query
description: 'WORD_MATCH - using word boundaries,
WORD_MATCH_ALPHANUMERIC - using word boundaries, but replaces non-alphanumeric characters in the search with a word boundary match,
PREFIX - same case prefix,
SUFFIX - same case suffix,
CONTAINS - same case contains
EXACT - same case exact
'
required: false
style: form
explode: true
schema:
type: string
description: 'WORD_MATCH - using word boundaries,
WORD_MATCH_ALPHANUMERIC - using word boundaries, but replaces non-alphanumeric characters in the search with a word boundary match,
PREFIX - same case prefix,
SUFFIX - same case suffix,
CONTAINS - same case contains
EXACT - same case exact
'
enum:
- WORD_MATCH
- WORD_MATCH_ALPHANUMERIC
- PREFIX
- SUFFIX
- CONTAINS
- EXACT
- name: orAbaRoutingNumber.value
in: query
required: false
style: form
explode: true
schema:
type: string
minLength: 1
- name: orName.type
in: query
description: 'WORD_MATCH - using word boundaries,
WORD_MATCH_ALPHANUMERIC - using word boundaries, but replaces non-alphanumeric characters in the search with a word boundary match,
PREFIX - same case prefix,
SUFFIX - same case suffix,
CONTAINS - same case contains
EXACT - same case exact
'
required: false
style: form
explode: true
schema:
type: string
description: 'WORD_MATCH - using word boundaries,
WORD_MATCH_ALPHANUMERIC - using word boundaries, but replaces non-alphanumeric characters in the search with a word boundary match,
PREFIX - same case prefix,
SUFFIX - same case suffix,
CONTAINS - same case contains
EXACT - same case exact
'
enum:
- WORD_MATCH
- WORD_MATCH_ALPHANUMERIC
- PREFIX
- SUFFIX
- CONTAINS
- EXACT
- name: orName.value
in: query
required: false
style: form
explode: true
schema:
type: string
minLength: 1
- name: orExternalReference.type
in: query
description: 'WORD_MATCH - using word boundaries,
WORD_MATCH_ALPHANUMERIC - using word boundaries, but replaces non-alphanumeric characters in the search with a word boundary match,
PREFIX - same case prefix,
SUFFIX - same case suffix,
CONTAINS - same case contains
EXACT - same case exact
'
required: false
style: form
explode: true
schema:
type: string
description: 'WORD_MATCH - using word boundaries,
WORD_MATCH_ALPHANUMERIC - using word boundaries, but replaces non-alphanumeric characters in the search with a word boundary match,
PREFIX - same case prefix,
SUFFIX - same case suffix,
CONTAINS - same case contains
EXACT - same case exact
'
enum:
- WORD_MATCH
- WORD_MATCH_ALPHANUMERIC
- PREFIX
- SUFFIX
- CONTAINS
- EXACT
- name: orExternalReference.value
in: query
required: false
style: form
explode: true
schema:
type: string
minLength: 1
- name: orDefaultReference.type
in: query
description: 'WORD_MATCH - using word boundaries,
WORD_MATCH_ALPHANUMERIC - using word boundaries, but replaces non-alphanumeric characters in the search with a word boundary match,
PREFIX - same case prefix,
SUFFIX - same case suffix,
CONTAINS - same case contains
EXACT - same case exact
'
required: false
style: form
explode: true
schema:
type: string
description: 'WORD_MATCH - using word boundaries,
WORD_MATCH_ALPHANUMERIC - using word boundaries, but replaces non-alphanumeric characters in the search with a word boundary match,
PREFIX - same case prefix,
SUFFIX - same case suffix,
CONTAINS - same case contains
EXACT - same case exact
'
enum:
- WORD_MATCH
- WORD_MATCH_ALPHANUMERIC
- PREFIX
- SUFFIX
- CONTAINS
- EXACT
- name: orDefaultReference.value
in: query
required: false
style: form
explode: true
schema:
type: string
minLength: 1
- name: createdDate
in: query
description: Created date
required: false
style: form
explode: true
schema:
type: string
format: date
description: Created date
- name: partialName
in: query
description: Partial name
required: false
style: form
explode: true
schema:
type: string
description: Partial name
- name: sortCode
in: query
description: Sort code
required: false
style: form
explode: true
schema:
type: string
description: Sort code
- name: accountNumber
in: query
description: Account number
required: false
style: form
explode: true
schema:
type: string
description: Account number
- name: page
in: query
description: Page to fetch (0 indexed)
required: false
style: form
explode: true
schema:
type: integer
format: int32
description: Page to fetch (0 indexed)
- name: size
in: query
description: Size of Page to fetch
required: false
style: form
explode: true
schema:
type: integer
format: int32
description: Size of Page to fetch
maximum: 500
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/account.BeneficiaryPageResponse'
'400':
description: Bad Request
content:
'*/*':
schema:
type: array
items:
$ref: '#/components/schemas/account.MessageResponse'
security:
- HMAC: []
- TOKEN: []
/beneficiaries/{beneficiaryId}/locks:
get:
tags:
- Beneficiaries
summary: Retrieve locked beneficiary entities
description: Fetch references of the entities (payment, rule) that have caused the beneficiary to be locked
operationId: getLocks
parameters:
- name: beneficiaryId
in: path
required: true
style: simple
explode: false
schema:
type: string
- name: page
in: query
description: Page to fetch (0 indexed)
required: false
style: form
explode: true
schema:
type: integer
format: int32
description: Page to fetch (0 indexed)
minimum: 0
- name: size
in: query
description: Size of Page to fetch
required: false
style: form
explode: true
schema:
type: integer
format: int32
description: Size of Page to fetch
maximum: 500
minimum: 1
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/account.BeneficiaryLockPageResponse'
'400':
description: Bad Request
content:
'*/*':
schema:
type: array
items:
$ref: '#/components/schemas/account.MessageResponse'
security:
- HMAC: []
- TOKEN: []
components:
schemas:
account.id:
type: array
description: ID of Customer(s) to fetch
items:
type: string
description: ID of Customer(s) to fetch
account.state:
type: array
description: Approval item state(s) to filter by
items:
type: string
description: Approval item state(s) to filter by
account.CreateBeneficiaryRequest:
type: object
properties:
externalReference:
type: string
description: External Reference can only have alphanumeric characters plus underscore, hyphen and space up to 50 characters long
maxLength: 50
minLength: 0
pattern: '[\w \-]*'
name:
type: string
maxLength: 100
minLength: 0
pattern: ^([^\p{L}0-9]*?[\p{L}0-9]){1,}['\.\-\/&\s]*
birthdate:
type: string
format: date
description: The destination beneficiary's date of birth. Date in yyyy-MM-dd format
emailAddress:
type: string
format: email
description: The destination beneficiary's email address
phoneNumber:
type: string
description: The destination beneficiary's phone number, will be formatted into international number pattern
destinationIdentifier:
$ref: '#/components/schemas/account.IdentifierRequest'
defaultReference:
type: string
minLength: 1
idToReplace:
type: string
address:
$ref: '#/components/schemas/account.AddressRequest'
description: Optional address.
qualifier:
type: string
description: Optional qualifier. Only to be supplied if multiple beneficiaries with same destination need to be supplied
maxLength: 100
minLength: 0
required:
- defaultReference
- destinationIdentifier
- name
account.IdentifierCountrySpecificDetailsResponse:
type: object
properties:
bankName:
type: string
description: The name of the destination bank.
example: Apple Bank
bankAddress:
type: string
description: The address of the destination bank.
example: 2100 Broadway
bankCity:
type: string
description: The city in which the destination bank resides.
example: New York City
bankBranchName:
type: string
description: The name of the destination bank's branch.
example: New York
bankBranchCode:
type: string
description: The code of the destination bank's branch.
example: 44-04
bankCode:
type: string
description: The code identifying the target bank on its respective national network. This is not the BIC/SWIFT code. This is known as the 'ABA code' in the U.S., 'ISFC' in India, 'routing number' in Canada, and so on.
chineseId:
type: string
description: The 18 digit identification code of the beneficiary. Applies to Chinese beneficiaries only.
example: 01101201901018889
province:
type: string
description: The province in which the beneficiary resides. Applies only to beneficiaries residing in China.
example: Zhejiang
business:
type: boolean
description: The type of the beneficiary. 'true' for businesses, 'false' otherwise.
example: true
bankCodeType:
type: string
description: 'The code type identifying the target bank on its respective national network.
This is known as the ''ABA code'' in the U.S., ''ISFC'' in India, ''routing number'' in Canada, and so on.'
enum:
- ABA
- CHIPS
example: ABA
bankCountry:
type: string
description: The country in which the destination bank resides.
enum:
- AT
- BE
- BG
- CY
- CZ
- DK
- EE
- FI
- FR
- DE
- GR
- HR
- HU
- IS
- IE
- IT
- LV
- LI
- LT
- LU
- MT
- NL
- 'NO'
- PL
- PT
- RO
- SK
- SI
- ES
- SE
- GB
- MQ
- YT
- GP
- GF
- RE
- MF
- GI
- GG
- IM
- JE
- MC
- CH
- AD
- SM
- VA
- AX
- PM
- BL
- AL
- MD
- ME
- MK
- RS
- AF
- DZ
- AS
- AO
- AI
- AQ
- AG
- AR
- AM
- AW
- AU
- AZ
- BS
- BH
- BD
- BB
- BY
- BZ
- BJ
- BM
- BT
- BO
- BQ
- BA
- BW
- BV
- BR
- IO
- VG
- BN
- BF
- BI
- KH
- CM
- CA
- CV
- KY
- CF
- TD
- CL
- CN
- CX
- CC
- CO
- KM
- CK
- CR
- CU
- CW
- CD
- DJ
- DM
- DO
- TL
- EC
- EG
- SV
- GQ
- ER
- SZ
- ET
- FK
- FO
- FJ
- PF
- TF
- GA
- GM
- GE
- GH
- GL
- GD
- GU
- GT
- GN
- GW
- GY
- HT
- HM
- HN
- HK
- IN
- ID
- IR
- IQ
- IL
- CI
- JM
- JP
- JO
- KZ
- KE
- KI
- XK
- KW
- KG
- LA
- LB
- LS
- LR
- LY
- MO
- MG
- MW
- MY
- MV
- ML
- MH
- MR
- MU
- MX
- FM
- MN
- MS
- MA
- MZ
- MM
- NA
- NR
- NP
- AN
- NC
- NZ
- NI
- NE
- NG
- NU
- NF
- KP
- MP
- OM
- PK
- PW
- PS
- PA
- PG
- PY
- PE
- PH
- PN
- PR
- QA
- CG
- RU
- RW
- SH
- KN
- LC
- VC
- WS
- ST
- SA
- SN
- SC
- SL
- SG
- SX
- SB
- SO
- ZA
- KR
- GS
- SS
- LK
- SD
- SR
- SY
- SJ
- TW
- TJ
- TZ
- TH
- TG
- TK
- TO
- TT
- TN
- TR
- TM
- TC
- TV
- UG
- UA
- AE
- UM
- US
- UY
- UZ
- VU
- VE
- VN
- VI
- WF
- EH
- YE
- ZM
- ZW
example: US
abaRoutingNumber:
type: string
description: The 9 digit identification code of the beneficiary. Applies to US beneficiaries only.
example: '123456789'
account.BeneficiaryLockPageResponse:
type: object
properties:
content:
type: array
description: List of responses on the current page
items:
$ref: '#/components/schemas/account.BeneficiaryLockResponse'
size:
type: integer
format: int32
description: Page size
totalSize:
type: integer
format: int64
description: Total count
page:
type: integer
format: int32
description: Current page number, 0 based; i.e first-page = 0, second-page = 1
totalPages:
type: integer
format: int32
description: Total pages
account.BeneficiaryLockResponse:
type: object
description: BeneficiaryLock
properties:
ownerId:
type: string
description: Reference for the entity owning the lock.
example: R00000001A
ownerType:
type: string
description: Entity type owning the lock.
enum:
- RULE
- PAYMENT
account.IdentifierCountrySpecificDetailsRequest:
type: object
properties:
bankName:
type: string
description: The name of the destination bank.
example: Apple Bank
maxLength: 140
minLength: 0
bankAddress:
type: string
description: The address of the destination bank.
example: 2100 Broadway
maxLength: 70
minLength: 0
bankCity:
type: string
description: The city in which the destination bank resides.
example: New York City
maxLength: 35
minLength: 0
bankBranchName:
type: string
description: The name of the destination bank's branch.
example: New York
bankBranchCode:
type: string
description: The code of the desti
# --- truncated at 32 KB (44 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/modulr/refs/heads/main/openapi/modulr-beneficiaries-api-openapi.yml