Modulr Confirmation of Payee API

Account Name Checks

Operations 3

POST /account-name-check Create an account name check #
POST /account-name-check/payer Create an account name check for Direct Debit Payer #
GET /account-name-check/srd-accounts Get SRD Accounts #

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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/modulr-confirmation-of-payee-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

modulr-confirmation-of-payee-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Modulr Confirmation of Payee 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: Confirmation of Payee
  description: Account Name Checks
paths:
  /account-name-check:
    post:
      tags:
      - Confirmation of Payee
      summary: Create an account name check
      description: 'This endpoint allows you to check the account details of a payee with their bank before you create a beneficiary or payment. If the account details are confirmed, you will have greater assurance that a payment you create will reach the correct bank account.

        This endpoint does not support idempotent requests. Any requests containing an x-mod-nonce header used by a previous request will return the response <code>403: Forbidden ("Unique/allowed nonce header not found")</code>'
      operationId: createOutboundCop
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/confirmationofpayee.JsonOutboundCopRequest'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/confirmationofpayee.JsonOutboundCopResponse'
        '400':
          description: Validation Errors
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/confirmationofpayee.JsonOutboundCopErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/confirmationofpayee.JsonOutboundCopErrorResponse'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/confirmationofpayee.JsonOutboundCopErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/confirmationofpayee.JsonOutboundCopErrorResponse'
        '503':
          description: Service Unavailable
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/confirmationofpayee.JsonOutboundCopErrorResponse'
      security:
      - HMAC: []
      - TOKEN: []
  /account-name-check/payer:
    post:
      tags:
      - Confirmation of Payee
      summary: Create an account name check for Direct Debit Payer
      description: 'Payer Name Verification (PNV) automatically checks that your payer’s name matches the name on the bank account details submitted when setting up BACS Direct Debits. This reduces your exposure to fraud and failed payment setups

        This endpoint does not support idempotent requests. Any requests containing an x-mod-nonce header used by a previous request will return the response <code>403: Forbidden ("Unique/allowed nonce header not found")</code>'
      operationId: createOutboundCheckForPnv
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/confirmationofpayee.JsonOutboundCopRequest'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/confirmationofpayee.JsonOutboundCopResponse'
        '400':
          description: Validation Errors
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/confirmationofpayee.JsonOutboundCopErrorResponse'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/confirmationofpayee.JsonOutboundCopErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/confirmationofpayee.JsonOutboundCopErrorResponse'
      security:
      - HMAC: []
      - TOKEN: []
  /account-name-check/srd-accounts:
    get:
      tags:
      - Confirmation of Payee
      summary: Get SRD Accounts
      description: Returns a list of all sort codes and account numbers for which Secondary Reference Data must be provided with all account name check requests.
      operationId: getSrdAccounts
      parameters:
      - name: page
        in: query
        description: Page to fetch (0 indexed)
        required: false
        style: form
        explode: true
        schema:
          type: integer
          format: int32
          default: 0
          minimum: 0
      - name: size
        in: query
        description: Size of Page to fetch
        required: false
        style: form
        explode: true
        schema:
          type: integer
          format: int32
          default: 500
          maximum: 500
          minimum: 1
      responses:
        '200':
          description: Successfully retrieved SRD list
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/confirmationofpayee.CopPageResponseJsonSrdAccount'
        '400':
          description: Invalid query params provided
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/confirmationofpayee.MessageResponse'
        '401':
          description: Invalid credentials
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/confirmationofpayee.MessageResponse'
        '403':
          description: CoP Access denied
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/confirmationofpayee.MessageResponse'
        '500':
          description: Unexpected error occurred
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/confirmationofpayee.MessageResponse'
        '503':
          description: Service outage
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/confirmationofpayee.MessageResponse'
      security:
      - HMAC: []
      - TOKEN: []
components:
  schemas:
    confirmationofpayee.CopPageResponseJsonSrdAccount:
      type: object
      properties:
        content:
          type: array
          description: List of responses on the current page
          items:
            $ref: '#/components/schemas/confirmationofpayee.JsonSrdAccount'
        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
    confirmationofpayee.JsonOutboundCopErrorResponse:
      type: object
      description: Account Name Check Error Response
      properties:
        id:
          type: string
        field:
          type: string
        code:
          type: string
        message:
          type: string
        sourceService:
          type: string
        errorCode:
          type: string
      required:
      - code
      - message
    confirmationofpayee.MessageResponse:
      type: object
      properties:
        field:
          type: string
        code:
          type: string
          enum:
          - GENERAL
          - BUSINESSRULE
          - MFASTATUS
          - MFAERROR
          - MFATIMEOUT
          - MFADEVICEMM
          - MFAMESSAGEINVALID
          - NOTFOUND
          - DUPLICATE
          - INVALID
          - CONNECTION
          - RETRY
          - RATELIMIT
          - PERMISSION
          - NOTACCEPTABLE
          - MFAVERIFICATION
          - TOKENEXPIRED
        errorCode:
          type: string
        message:
          type: string
        sourceService:
          type: string
    confirmationofpayee.JsonOutboundCopResponse:
      type: object
      description: Account Name Check Response
      properties:
        id:
          type: string
          description: Unique id for the account name check.
          example: C12001569Z
        result:
          $ref: '#/components/schemas/confirmationofpayee.JsonOutboundCopResult'
          description: The result of the account name check.
      required:
      - id
      - result
    confirmationofpayee.JsonOutboundCopResult:
      type: object
      description: Account Name Check Result
      properties:
        code:
          type: string
          description: The result of the account name check.
          enum:
          - MATCHED
          - NOT_MATCHED
          - CLOSE_MATCH
          - BUSINESS_ACCOUNT_NAME_MATCHED
          - PERSONAL_ACCOUNT_NAME_MATCHED
          - BUSINESS_ACCOUNT_CLOSE_MATCH
          - PERSONAL_ACCOUNT_CLOSE_MATCH
          - ACCOUNT_DOES_NOT_EXIST
          - SECONDARY_ACCOUNT_ID_NOT_FOUND
          - ACCOUNT_NOT_SUPPORTED
          - ACCOUNT_SWITCHED
          - WRONG_PARTICIPANT
          - NO_RESPONSE
          - NOT_ENROLLED
          example: MATCHED
        name:
          type: string
          description: The actual name on the account (as provided by the participating organisation).
          example: Joseph Bloggs
      required:
      - code
    confirmationofpayee.JsonOutboundCopRequest:
      type: object
      description: Details of Account Name Check Request
      properties:
        paymentAccountId:
          type: string
          description: The identifier of the account that a subsequent payment will be initiated from.
          example: A123AAA4
        sortCode:
          type: string
          description: The sort code of the account.
          example: '000000'
          pattern: ^[0-9]{6}$
        accountNumber:
          type: string
          description: The account number.
          example: '12345678'
          pattern: ^[0-9]{8}$
        secondaryAccountId:
          type: string
          description: Additional information used in conjunction with the Sort Code and Account Number to identify the account (such as a Building Society roll number).
          example: A-1234567890
          maxLength: 140
          minLength: 1
          pattern: ^.{0}$|^$|^([^])+$
        accountType:
          type: string
          description: The type of account, either a personal or business account.
          enum:
          - PERSONAL
          - BUSINESS
          example: PERSONAL
        name:
          type: string
          description: The name to match the account name against.
          example: Joe Bloggs
          maxLength: 140
          minLength: 1
      required:
      - accountNumber
      - accountType
      - name
      - paymentAccountId
      - sortCode
    confirmationofpayee.JsonSrdAccount:
      type: object
      properties:
        sortCode:
          type: string
          description: 'The sort code of one or more accounts that requires Secondary Reference Data to be provided when making account name check requests.

            '
          example: '123456'
        accountNumbers:
          type: array
          description: Account numbers that require Secondary Reference Data. If empty, Secondary Reference Data is required for all name check requests for this sort code.
          items:
            type: string
            description: The account number of a specific account that requires Secondary Reference Data to be provided when making account name check requests.
            example: '11111111'
      required:
      - sortCode
  securitySchemes:
    modulo_security:
      type: apiKey
      name: Authorization
      in: header
    TOKEN:
      type: apiKey
      name: Authorization
      in: header
x-readme:
  proxy-enabled: false