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-payments-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 Payments 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: Payments
description: Operations on Payments
paths:
/payments:
get:
tags:
- Payments
summary: Retrieve payments
description: The ability to get the details of payments using various pieces of information, e.g. using Account ID, retrieve all payments in that account. Can get details of one particular payment based on the unique payment reference number.
operationId: getPayments
parameters:
- name: id
in: query
description: Payment ID. If specified then all other parameters are ignored. Use ids to search for multiple payment IDs
required: false
deprecated: true
style: form
explode: true
schema:
type: string
deprecated: true
description: Payment ID. If specified then all other parameters are ignored. Use ids to search for multiple payment IDs
- name: ids
in: query
required: false
style: form
explode: true
schema:
$ref: '#/components/schemas/payment.ids'
- name: fromCreatedDate
in: query
description: Payments created date equal or after to this date. Mandatory Parameter(except when 'id', 'ids', 'fxQuoteId' or 'modifiedSince' parameter is used)
required: false
style: form
explode: true
schema:
type: string
description: Payments created date equal or after to this date. Mandatory Parameter(except when 'id', 'ids', 'fxQuoteId' or 'modifiedSince' parameter is used)
example: 2016-01-01T01:01:01+0000
example: 2016-01-01T01:01:01+0000
- name: toCreatedDate
in: query
description: Payments created date equal or before to this date
required: false
style: form
explode: true
schema:
type: string
description: Payments created date equal or before to this date
- name: modifiedSince
in: query
description: Payments modified date equal or before to this date
required: false
deprecated: true
style: form
explode: true
schema:
type: string
description: Payments modified date equal or before to this date
- name: fromUpdatedDate
in: query
description: Payments updated date equal or after to this date.
required: false
style: form
explode: true
schema:
type: string
description: Payments updated date equal or after to this date.
example: 2016-01-01T01:01:01+0000
example: 2016-01-01T01:01:01+0000
- name: toUpdatedDate
in: query
description: Payments updated date equal or before to this date.
required: false
style: form
explode: true
schema:
type: string
description: Payments updated date equal or before to this date.
example: 2016-01-01T01:01:01+0000
example: 2016-01-01T01:01:01+0000
- name: sourceAccountId
in: query
description: The source account ID
required: false
style: form
explode: true
schema:
type: string
description: The source account ID
- name: hasExternalReference
in: query
description: True if the API should return all items that have externalReference. False the API should return all items that don't have externalReference
required: false
style: form
explode: true
schema:
type: boolean
description: True if the API should return all items that have externalReference. False the API should return all items that don't have externalReference
- name: externalReference
in: query
description: External reference can only have alphanumeric characters plus underscore, hyphen and space
required: false
style: form
explode: true
schema:
type: string
description: External reference can only have alphanumeric characters plus underscore, hyphen and space
pattern: '[\w-\s]*'
- name: status
in: query
required: false
style: form
explode: true
schema:
$ref: '#/components/schemas/payment.status'
- name: type
in: query
description: The payment type to search for.
required: false
style: form
explode: true
schema:
type: string
default: PAYOUT
description: The payment type to search for.
enum:
- PAYIN
- PAYOUT
- RETURN
- name: excludeBatchPayments
in: query
description: Exclude payments which are part of a batch with submission type BATCH
required: false
style: form
explode: true
schema:
type: boolean
default: false
description: Exclude payments which are part of a batch with submission type BATCH
- name: batchPaymentId
in: query
description: Filter on batch
required: false
style: form
explode: true
schema:
type: string
description: Filter on batch
- name: reversals
in: query
description: Filter on reversals
required: false
style: form
explode: true
schema:
type: boolean
description: Filter on reversals
- name: schemeId
in: query
description: Filter on scheme ID
required: false
style: form
explode: true
schema:
type: string
description: Filter on scheme ID
- name: approvalStatus
in: query
description: Payment approval status, multiple statuses can be specified by repeating the parameter
required: false
style: form
explode: true
schema:
$ref: '#/components/schemas/payment.approvalStatus'
- name: currency
in: query
required: false
style: form
explode: true
schema:
$ref: '#/components/schemas/payment.currency'
- name: minAmount
in: query
description: Payments amount equal or greater than this amount
required: false
style: form
explode: true
schema:
type: number
description: Payments amount equal or greater than this amount
example: 5.5
exclusiveMinimum: 0
example: 5.5
- name: maxAmount
in: query
description: Payments amount equal or less than this amount
required: false
style: form
explode: true
schema:
type: number
description: Payments amount equal or less than this amount
example: 50.5
exclusiveMinimum: 0
example: 50.5
- name: fromPaymentScheduledDate
in: query
description: Payments scheduled date equal or after to this date
required: false
style: form
explode: true
schema:
type: string
format: date-time
description: Payments scheduled date equal or after to this date
example: 2022-01-01T01:01:01+0000
example: 2022-01-01T01:01:01+0000
- name: toPaymentScheduledDate
in: query
description: Payments scheduled date equal or before to this date and in absence of fromPaymentDate, payments executed prior to 180 days from this date
required: false
style: form
explode: true
schema:
type: string
format: date-time
description: Payments scheduled date equal or before to this date and in absence of fromPaymentDate, payments executed prior to 180 days from this date
example: 2023-01-01T01:01:01+0000
example: 2023-01-01T01:01:01+0000
- name: customerId
in: query
description: Filter on customer ID
required: false
style: form
explode: true
schema:
$ref: '#/components/schemas/payment.customerId'
example: C1234567
- name: currentUserCanApprove
in: query
description: Only return payments the current user can approve.
required: false
style: form
explode: true
schema:
type: boolean
description: Only return payments the current user can approve.
example: true
example: true
- name: sortField
in: query
description: Sort by field. Sorted by createdDate if not present
required: false
style: form
explode: true
schema:
type: string
description: Sort by field. Sorted by createdDate if not present
pattern: (amount|createdDate|paymentScheduledDate)
- name: sortOrder
in: query
description: 'Sorting order:
1. asc -> ascending
2. desc -> descending'
required: false
style: form
explode: true
schema:
type: string
description: 'Sorting order:
1. asc -> ascending
2. desc -> descending'
pattern: (asc|desc)
- name: page
in: query
description: The page to fetch. 0 indexed
required: false
style: form
explode: true
schema:
type: integer
format: int32
default: 0
description: The page to fetch. 0 indexed
minimum: 0
- name: size
in: query
description: The size of the page(s)
required: false
style: form
explode: true
schema:
type: integer
format: int32
description: The size of the page(s)
minimum: 1
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/payment.PaymentPageResponse'
'400':
description: Bad Request
content:
'*/*':
schema:
type: array
items:
$ref: '#/components/schemas/payment.MessageResponse'
security:
- HMAC: []
- TOKEN: []
post:
tags:
- Payments
summary: Create a payment
description: Supports both Payments to external bank accounts via Faster Payments and transfers to other Modulr accounts. Requests to Payments are asynchronous.
operationId: sendPayment
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/payment.PaymentOutRequest'
required: true
responses:
'201':
description: PaymentReference
content:
application/json:
schema:
$ref: '#/components/schemas/payment.PaymentResponse'
'400':
description: Validation errors
content:
'*/*':
schema:
type: array
items:
$ref: '#/components/schemas/payment.MessageResponse'
security:
- HMAC: []
- TOKEN: []
/batchpayments:
get:
tags:
- Payments
summary: Get batch payments by a given set of parameters
description: This endpoint allows for a user who has submitted multiple batch to use some criteria to get the batch payments.
operationId: getBatchPayments
parameters:
- name: id
in: query
description: List of batch payment IDs
required: false
style: form
explode: true
schema:
$ref: '#/components/schemas/payment.id'
- name: externalReference
in: query
description: Batch payments External Reference contains this text.
required: false
style: form
explode: true
schema:
type: string
description: Batch payments External Reference contains this text.
example: aReference_00001
maxLength: 50
minLength: 0
pattern: '[\w-\s]*'
example: aReference_00001
- name: fromCreatedDate
in: query
description: Batch payments created date equal or after to this date.
required: false
style: form
explode: true
schema:
type: string
format: date
description: Batch payments created date equal or after to this date.
example: '2022-05-16'
example: '2022-05-16'
- name: toCreatedDate
in: query
description: Batch payments created date equal or before this date.
required: false
style: form
explode: true
schema:
type: string
format: date
description: Batch payments created date equal or before this date.
example: '2026-06-08'
example: '2026-06-08'
- name: batchPaymentStatuses
in: query
required: false
style: form
explode: true
schema:
$ref: '#/components/schemas/payment.batchPaymentStatuses'
- name: paymentStatuses
in: query
required: false
style: form
explode: true
schema:
$ref: '#/components/schemas/payment.paymentStatuses'
- name: approvalStatus
in: query
required: false
style: form
explode: true
schema:
$ref: '#/components/schemas/payment.approvalStatus'
- name: currentUserCanApprove
in: query
description: Only return batch payments the current user can approve.
required: false
style: form
explode: true
schema:
type: boolean
description: Only return batch payments the current user can approve.
example: true
example: true
- name: createdByCustomerId
in: query
description: Limit results by the customer which created the batch payment request
required: false
style: form
explode: true
schema:
type: string
description: Limit results by the customer which created the batch payment request
- name: submissionType
in: query
description: Limit results to batches with submission type specified
required: false
style: form
explode: true
schema:
type: string
description: Limit results to batches with submission type specified
enum:
- BATCH
- BULK
- name: page
in: query
description: Page to fetch (0 indexed)
required: false
style: form
explode: true
schema:
type: integer
format: int32
default: 0
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
default: 20
description: Size of Page to fetch
maximum: 500
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/payment.BatchPaymentsResponse'
'400':
description: Validation errors
content:
'*/*':
schema:
type: array
items:
$ref: '#/components/schemas/payment.MessageResponse'
security:
- HMAC: []
- TOKEN: []
post:
tags:
- Payments
summary: Make a batch payment
description: As well as supporting individual payment requests, the Modulr payment platform can also handle multiple payment objects in the same request. This endpoint allows you to make a new batch payment.
operationId: submitBatchPayments
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/payment.BatchPaymentOutRequest'
required: true
responses:
'201':
description: BatchPaymentReference
content:
application/json:
schema:
$ref: '#/components/schemas/payment.BatchPaymentDetailsResponse'
'400':
description: Validation errors
content:
'*/*':
schema:
type: array
items:
$ref: '#/components/schemas/payment.MessageResponse'
security:
- HMAC: []
- TOKEN: []
/batchpayments/{batchPaymentId}/cancel:
post:
tags:
- Payments
summary: Cancel the batch payment
description: Cancels a batch payment request if it is not already processed
operationId: cancelBatchPayments
parameters:
- name: batchPaymentId
in: path
description: Batch payment request id
required: true
style: simple
explode: false
schema:
type: string
responses:
'204':
description: No content
'400':
description: Validation errors
content:
'*/*':
schema:
type: array
items:
$ref: '#/components/schemas/payment.MessageResponse'
security:
- HMAC: []
- TOKEN: []
/batchpayments/{id}:
get:
tags:
- Payments
summary: Get batch payment by ID
description: Get the details of an existing batch payment by ID
operationId: getBatchPayment
parameters:
- name: id
in: path
description: id given when batch request was made
required: true
style: simple
explode: false
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/payment.BatchPaymentDetailsResponse'
'400':
description: Bad Request
content:
'*/*':
schema:
type: array
items:
$ref: '#/components/schemas/payment.MessageResponse'
security:
- HMAC: []
- TOKEN: []
components:
schemas:
payment.currency:
type: array
items:
type: string
description: Currency of the payment in ISO 4217 format, multiple currencies can be specified by repeating the parameter.
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
payment.PaymentsSummary:
type: object
description: Summary of payments and approvals
properties:
totalPaymentCount:
type: integer
format: int32
description: Total count of payments
example: 10
totalAmount:
type: number
description: Sum total of payment amounts
example: '100.00'
pendingApprovalCount:
type: integer
format: int32
description: Count of payments currently pending approval
example: 5
pendingApprovalAmount:
type: number
description: Sum total of payment amounts currently pending approval
example: '50.00'
payment.PaymentPageResponse:
type: object
properties:
content:
type: array
description: List of responses on the current page
items:
$ref: '#/components/schemas/payment.PaymentResponse'
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
required:
- content
- page
- size
- totalPages
- totalSize
payment.status:
type: array
items:
type: string
description: Payment status, multiple statuses can be specified by repeating the parameter
enum:
- SUBMITTED
- SCREENING_REQ
- VALIDATED
- PENDING_FOR_DATE
- PENDING_FOR_FUNDS
- EXT_PROC
- PROCESSED
- RECONCILED
- ER_INVALID
- ER_EXTCONN
- ER_EXTSYS
- ER_EXPIRED
- ER_GENERAL
- ER_BATCH
- EXT_SENT
- UNALLOCATED
- HELD
- RETURNED
- CANCELLED
- REPROCESSING
- VOID
- CLEARING
- HELD_IN_SUSPENSE
payment.paymentStatuses:
type: array
items:
type: string
description: Current status of payment. Multiple statuses can be specified by repeating the parameter.
enum:
- SUBMITTED
- SCREENING_REQ
- VALIDATED
- PENDING_FOR_DATE
- PENDING_FOR_FUNDS
- EXT_PROC
- PROCESSED
- RECONCILED
- ER_INVALID
- ER_EXTCONN
- ER_EXTSYS
- ER_EXPIRED
- ER_GENERAL
- ER_BATCH
- EXT_SENT
- UNALLOCATED
- HELD
- RETURNED
- CANCELLED
- REPROCESSING
- VOID
- CLEARING
- HELD_IN_SUSPENSE
payment.RegulatoryAuthority:
type: object
properties:
authorityName:
type: string
description: Authority name. Maximum of 70 characters.
example: Financial Conduct Authority
maxLength: 70
minLength: 0
authorityCountry:
type: string
description: ISO 3166 country code of the ultimate payers address
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: GB
payment.approvalStatus:
type: array
description: Payment approval status, multiple statuses can be specified by repeating the parameter
items:
type: string
description: Payment approval status, multiple statuses can be specified by repeating the parameter
enum:
- NOTNEEDED
- PENDING
- APPROVED
- REJECTED
- DELETED
payment.StructuredRegulatoryReporting:
type: object
properties:
code:
type: string
maxLength: 3
minLength: 0
amount:
type: number
description: Amount of the payment in Major Current Units - '1' = 1.00 GBP
example: '100.00'
maximum: 2147483647
minimum: 0.01
currencyCode:
type: string
description: Currency of the account in ISO 4217 format. Default is GBP
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
information:
type: string
maxLength: 35
minLength: 0
payment.BatchPaymentsResponse:
type: object
properties:
content:
type: array
description: List of responses on the current page
items:
# --- truncated at 32 KB (81 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/modulr/refs/heads/main/openapi/modulr-payments-api-openapi.yml