Modulr Payments API

Initiate outbound, inbound, bulk, batch and future-dated payments over UK Faster Payments and Bacs, plus international SWIFT payments, with transaction retrieval and reconciliation.

OpenAPI Specification

modulr-api.json Raw ↑
{"openapi":"3.1.0","info":{"title":"Modulr 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":"Accounts","description":"Operations on Accounts"},{"name":"Async","description":"Asynchronous card task operations"},{"name":"Beneficiaries","description":"Operations on Beneficiaries"},{"name":"Cards","description":"Cards API"},{"name":"Confirmation of Payee","description":"Account Name Checks"},{"name":"Customers","description":"Operations on Customers"},{"name":"Direct Debits","description":"Direct Debit operations"},{"name":"Direct Debit Outbound","description":"Direct Debit Outbound operations"},{"name":"Inbound Payments","description":"Inbound payments"},{"name":"Payments","description":"Operations on Payments"},{"name":"Rules","description":"Rules"},{"name":"Transactions","description":"Operations on Transactions"},{"name":"Document","description":"Operations on Documents"},{"name":"Access Group","description":"Operations on Access Group"},{"name":"Card Simulator","description":"Cards Simulator API"},{"name":"Channel Manager","description":"Channel Manager Operations"},{"name":"File Upload","description":"Upload payment files"},{"name":"IntegrationNotification","description":"Operations on Webhook Notifications"},{"name":"Notification","description":"Operations on Notifications"},{"name":"Restricted","description":"Restricted access API calls"},{"name":"Share secure card details","description":"Share secure card details operations"}],"paths":{"/credit-authorisations/{creditAuthId}/reverse":{"post":{"tags":["Card Simulator"],"summary":"Reverse a credit authorisation","description":"Reverse a pending credit authorisation, producing a CREDIT_AUTH_REV activity","operationId":"reverseCreditAuthorisation","parameters":[{"name":"creditAuthId","in":"path","description":"ID of the CREDIT_AUTH activity to reverse","required":true,"style":"simple","explode":false,"schema":{"type":"string"},"example":"X000000001"}],"responses":{"204":{"description":"No Content"},"400":{"description":"Activity is not a CREDIT_AUTH or in PENDING status","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/cardsimulator.MessageResponse"}}}}},"404":{"description":"Activity not found"}},"security":[{"HMAC":[]},{"TOKEN":[]}]}},"/cards/{cardId}/settlements":{"post":{"tags":["Card Simulator"],"summary":"Create a settlement without prior authorisation","description":"Submit a settlement directly to the reconciliation pipeline without a prior authorisation","operationId":"createSettlement","parameters":[{"name":"cardId","in":"path","description":"Card ID to settle against","required":true,"style":"simple","explode":false,"schema":{"type":"string"},"example":"V000000001"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cardsimulator.CardSettlementRequest"}}},"required":true},"responses":{"201":{"description":"Created"},"400":{"description":"Validation errors","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/cardsimulator.MessageResponse"}}}}},"404":{"description":"Card not found"}},"security":[{"HMAC":[]},{"TOKEN":[]}]}},"/cards/{cardId}/refunds":{"post":{"tags":["Card Simulator"],"summary":"Create a card refund","description":"Simulate a standalone refund (credit) for a card, producing a REFUND activity","operationId":"refund","parameters":[{"name":"cardId","in":"path","description":"Card id to be refund","required":true,"style":"simple","explode":false,"schema":{"type":"string"},"example":"V000000001"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cardsimulator.CardAuthorisationRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/cardsimulator.MessageResponse"}}}}},"404":{"description":"Not Found"}},"security":[{"HMAC":[]},{"TOKEN":[]}]}},"/cards/{cardId}/original-credits":{"post":{"tags":["Card Simulator"],"summary":"Simulate an original credit","description":"Submit card activity of type original credit","operationId":"createOriginalCredit","parameters":[{"name":"cardId","in":"path","description":"Card ID to credit","required":true,"style":"simple","explode":false,"schema":{"type":"string"},"example":"V000000001"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cardsimulator.CreateOriginalCreditRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"description":"Validation errors","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/cardsimulator.MessageResponse"}}}}},"404":{"description":"Card not found"}},"security":[{"HMAC":[]},{"TOKEN":[]}]}},"/cards/{cardId}/original-credits/{originalCreditActivityId}/reverse":{"post":{"tags":["Card Simulator"],"summary":"Reverse an original credit","description":"Reverse a previously applied original credit, producing an ORIGINAL_CREDIT_REVERSAL activity","operationId":"reverseOriginalCredit","parameters":[{"name":"cardId","in":"path","description":"Card ID","required":true,"style":"simple","explode":false,"schema":{"type":"string"},"example":"V000000001"},{"name":"originalCreditActivityId","in":"path","description":"ID of the ORIGINAL_CREDIT activity to reverse","required":true,"style":"simple","explode":false,"schema":{"type":"string"},"example":"X000000001"}],"responses":{"204":{"description":"No Content"},"400":{"description":"Activity is not an ORIGINAL_CREDIT in APPLIED status","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/cardsimulator.MessageResponse"}}}}},"404":{"description":"Activity not found"}},"security":[{"HMAC":[]},{"TOKEN":[]}]}},"/cards/{cardId}/offline-transactions":{"post":{"tags":["Card Simulator"],"summary":"Create an offline transaction","description":"Simulate an offline transaction for a card","operationId":"createOfflineTransaction","parameters":[{"name":"cardId","in":"path","description":"Card ID to create an offline transaction for","required":true,"style":"simple","explode":false,"schema":{"type":"string"},"example":"V000000001"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cardsimulator.CardSettlementRequest"}}},"required":true},"responses":{"201":{"description":"Created"},"400":{"description":"Validation errors","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/cardsimulator.MessageResponse"}}}}},"404":{"description":"Card not found"}},"security":[{"HMAC":[]},{"TOKEN":[]}]}},"/cards/{cardId}/expire":{"post":{"tags":["Card Simulator"],"summary":"Simulate a card expiry","description":"Simulate the GPS CARD_EXPIRY message, transitioning the card status to EXPIRED in card-service","operationId":"expireCard","parameters":[{"name":"cardId","in":"path","description":"Card ID to expire","required":true,"style":"simple","explode":false,"schema":{"type":"string"},"example":"V000000001"}],"responses":{"204":{"description":"No Content"},"400":{"description":"Card is already expired","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/cardsimulator.MessageResponse"}}}}},"404":{"description":"Card not found"}},"security":[{"HMAC":[]},{"TOKEN":[]}]}},"/cards/{cardId}/credit-authorisations":{"post":{"tags":["Card Simulator"],"summary":"Simulate a credit authorisation","description":"Submit card activity of type credit authorisation","operationId":"createCreditAuthorisation","parameters":[{"name":"cardId","in":"path","description":"Card ID","required":true,"style":"simple","explode":false,"schema":{"type":"string"},"example":"V000000001"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cardsimulator.CreateCreditAuthorisationRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"description":"Validation errors","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/cardsimulator.MessageResponse"}}}}},"404":{"description":"Card not found"}},"security":[{"HMAC":[]},{"TOKEN":[]}]}},"/cards/{cardId}/chargebacks":{"post":{"tags":["Card Simulator"],"summary":"Create a standalone chargeback","description":"Simulate a standalone chargeback for a card.","operationId":"createChargeback","parameters":[{"name":"cardId","in":"path","description":"Card id to chargeback","required":true,"style":"simple","explode":false,"schema":{"type":"string"},"example":"V000000001"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cardsimulator.CardActivityRequest"}}},"required":true},"responses":{"204":{"description":"Chargeback processed"},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/cardsimulator.MessageResponse"}}}}},"404":{"description":"Not Found"}},"security":[{"HMAC":[]},{"TOKEN":[]}]}},"/cards/{cardId}/authorisations":{"post":{"tags":["Card Simulator"],"summary":"Create a card authorisation","description":"Create an authorisation for a card","operationId":"createAuthorisation","parameters":[{"name":"cardId","in":"path","description":"Card ID to create an authorisation for this card","required":true,"style":"simple","explode":false,"schema":{"type":"string"},"example":"V000000001"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cardsimulator.CardAuthorisationRequest"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/cardsimulator.CardAuthorisationResponse"}}}},"400":{"description":"Validation errors","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/cardsimulator.MessageResponse"}}}}}},"security":[{"HMAC":[]},{"TOKEN":[]}]}},"/cards/{cardId}/activities/{settlementActivityId}/chargebacks":{"post":{"tags":["Card Simulator"],"summary":"Chargeback an existing settlement","description":"Simulate a chargeback of an existing settlement activity.","operationId":"createChargebackForSettlement","parameters":[{"name":"cardId","in":"path","description":"Card id","required":true,"style":"simple","explode":false,"schema":{"type":"string"},"example":"V000000001"},{"name":"settlementActivityId","in":"path","description":"Settlement activity BID to chargeback","required":true,"style":"simple","explode":false,"schema":{"type":"string"},"example":"X000000001"}],"responses":{"204":{"description":"Chargeback processed"},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/cardsimulator.MessageResponse"}}}}},"404":{"description":"The settlement activity was not found"}},"security":[{"HMAC":[]},{"TOKEN":[]}]}},"/cards/{cardId}/account-status-inquiry":{"post":{"tags":["Card Simulator"],"summary":"Perform an account status inquiry","description":"Check whether a card is eligible for transactions without reserving funds","operationId":"performAccountStatusInquiry","parameters":[{"name":"cardId","in":"path","description":"Card ID to perform the account status inquiry against","required":true,"style":"simple","explode":false,"schema":{"type":"string"},"example":"V000000001"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cardsimulator.CardAccountStatusInquiryRequest"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/cardsimulator.CardAccountStatusInquiryResponse"}}}},"400":{"description":"Validation errors","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/cardsimulator.MessageResponse"}}}}},"404":{"description":"Card not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/cardsimulator.CardAccountStatusInquiryResponse"}}}}},"security":[{"HMAC":[]},{"TOKEN":[]}]}},"/card-tokens/{tokenId}/devices/{deviceId}/unbind":{"post":{"tags":["Card Simulator"],"summary":"Unbind a device from a card token","description":"Simulate the removal of a device binding from a card token, marking the device as DELETED within the token record in card-service","operationId":"unbindDevice","parameters":[{"name":"tokenId","in":"path","description":"Card token ID","required":true,"style":"simple","explode":false,"schema":{"type":"string"},"example":"T110000001"},{"name":"deviceId","in":"path","description":"Device ID to unbind","required":true,"style":"simple","explode":false,"schema":{"type":"string"},"example":"D110000001"},{"name":"cardId","in":"query","description":"Card ID that owns the token","required":true,"style":"form","explode":true,"schema":{"type":"string"},"example":"V110000001"}],"responses":{"204":{"description":"Device unbound successfully"},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/cardsimulator.MessageResponse"}}}}},"404":{"description":"Token or device not found"}},"security":[{"HMAC":[]},{"TOKEN":[]}]}},"/authorisations/{authId}/settle":{"post":{"tags":["Card Simulator"],"summary":"Settle the full or partial card authorisation","description":"Settle the full card authorisation or supply an optional settlementAmount for partial settlement.","operationId":"settleAuthorisation","parameters":[{"name":"authId","in":"path","description":"Card authorisation id","required":true,"style":"simple","explode":false,"schema":{"type":"string"},"example":"A00000000X"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cardsimulator.CardSettlementRequest"}}}},"responses":{"204":{"description":"Settlement processed"},"400":{"description":"Validation errors or settlement amount exceeds authorised amount","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/cardsimulator.MessageResponse"}}}}}},"security":[{"HMAC":[]},{"TOKEN":[]}]}},"/authorisations/{authId}/reverse":{"post":{"tags":["Card Simulator"],"summary":"Reverse the card authorisation","description":"Simulate a reversal of an authorization for a card","operationId":"reverseAuthorisation","parameters":[{"name":"authId","in":"path","description":"Card authorisation id to be reversed","required":true,"style":"simple","explode":false,"schema":{"type":"string"},"example":"A00000000X"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cardsimulator.ReverseAuthorizationRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"description":"Validation errors","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/cardsimulator.MessageResponse"}}}}}},"security":[{"HMAC":[]},{"TOKEN":[]}]}},"/activities/{chargebackActivityId}/resettlement":{"post":{"tags":["Card Simulator"],"summary":"Resettlement of a chargeback","description":"Simulate a resettlement (second presentment) for an existing CHARGEBACK activity, producing a RESETTLEMENT activity.","operationId":"createResettlement","parameters":[{"name":"chargebackActivityId","in":"path","description":"ID of the CHARGEBACK activity to resettle","required":true,"style":"simple","explode":false,"schema":{"type":"string"},"example":"X000000001"}],"responses":{"204":{"description":"Resettlement processed"},"400":{"description":"Activity is not a CHARGEBACK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/cardsimulator.MessageResponse"}}}}},"404":{"description":"Chargeback activity not found"}},"security":[{"HMAC":[]},{"TOKEN":[]}]}},"/activities/{chargebackActivityId}/chargeback-reversal":{"post":{"tags":["Card Simulator"],"summary":"Reverse a chargeback","description":"Simulate a chargeback reversal for an existing CHARGEBACK activity, producing a CHARGEBACK_REVERSAL activity.","operationId":"createChargebackReversal","parameters":[{"name":"chargebackActivityId","in":"path","description":"ID of the CHARGEBACK activity to reverse","required":true,"style":"simple","explode":false,"schema":{"type":"string"},"example":"X000000001"}],"responses":{"204":{"description":"Chargeback reversal processed"},"400":{"description":"Activity is not a CHARGEBACK in APPLIED status","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/cardsimulator.MessageResponse"}}}}},"404":{"description":"Chargeback activity not found"}},"security":[{"HMAC":[]},{"TOKEN":[]}]}},"/customers/{customerId}":{"get":{"tags":["Customers"],"summary":"Retrieve a specific customer using a unique customer reference","description":"Retrieve a specific customer using a unique customer reference. This identifier can be found in the response obtained after creating a new customer, it starts by C, e.g: C0000000","operationId":"getCustomer","parameters":[{"name":"customerId","in":"path","description":"ID of customer to fetch","required":true,"style":"simple","explode":false,"schema":{"type":"string"}},{"name":"statuses","in":"query","description":"Customer statuses allowed when fetching the customer","required":false,"style":"form","explode":true,"schema":{"type":"array","default":["ACTIVE"],"items":{"type":"string","enum":["ACTIVE","CLOSED","BLOCKED"]}}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/account.Customer"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/account.MessageResponse"}}}}}},"security":[{"HMAC":[]},{"TOKEN":[]}]},"put":{"tags":["Customers"],"summary":"Edit a specific customer using a unique customer reference","description":"  Currently editable fields:\n  <ol>\n    <li>For all customer types: <b>externalReference</b> can be edited</li>\n    <li>For all customers not requiring manual or in-house KYC verification: <b>industryCode</b>, <b>registeredAddress</b>, <b>tcsVersions</b> and <b>regNumber</b> can additionally be edited. Of those:\n      <ul>\n        <li>For all other customer types: <b>name</b> and <b>tradingAddress</b> can additionally be edited</li>\n        <li>For all types other than PCM_BUSINESS: the <b>associate</b> can additionally be edited</li>\n      </ul>\n    </li>\n    <li> For <b>vulnerabilityReason</b> you must supply a list and to delete a list you must supply an empty list in request, not supplying a list will result in no change</li>\n  </ol>\n","operationId":"editCustomer","parameters":[{"name":"customerId","in":"path","description":"ID of customer to be edited","required":true,"style":"simple","explode":false,"schema":{"type":"string"},"example":"C0000000"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/account.UpdateCustomerRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/account.Customer"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/account.MessageResponse"}}}}}},"security":[{"HMAC":[]},{"TOKEN":[]}]},"patch":{"tags":["Customers"],"summary":"Edit a customer","description":"Edit details of a particular customer using its ID as a reference. Current editable fields: complianceData","operationId":"patchCustomer","parameters":[{"name":"customerId","in":"path","required":true,"style":"simple","explode":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json-patch+json":{"schema":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/account.Add"},{"$ref":"#/components/schemas/account.Copy"},{"$ref":"#/components/schemas/account.Move"},{"$ref":"#/components/schemas/account.Remove"},{"$ref":"#/components/schemas/account.Replace"},{"$ref":"#/components/schemas/account.Test"}]}}}},"required":true},"responses":{"200":{"description":"Successfully updated the existing customer","content":{"application/json":{"schema":{"$ref":"#/components/schemas/account.Customer"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/account.MessageResponse"}}}}}},"security":[{"HMAC":[]},{"TOKEN":[]}]}},"/accounts/{accountId}":{"get":{"tags":["Accounts"],"summary":"Get an account","description":"Retrieve details of a particular account using its ID as a reference","operationId":"getAccount","parameters":[{"name":"accountId","in":"path","description":"ID of account to fetch","required":true,"style":"simple","explode":false,"schema":{"type":"string"}},{"name":"statuses","in":"query","description":"Account statuses allowed when fetching the account","required":false,"style":"form","explode":true,"schema":{"type":"array","default":["ACTIVE"],"items":{"type":"string","enum":["ACTIVE","BLOCKED","CLOSED","CLIENT_BLOCKED"]}}},{"name":"includePendingTransactions","in":"query","description":"Include all pending transactions in 'balance' field","required":false,"style":"form","explode":true,"schema":{"type":"boolean","default":false}},{"name":"showAvailableBalance","in":"query","description":"Show available balance","required":false,"style":"form","explode":true,"schema":{"type":"boolean","default":true}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/account.AccountResponse"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/account.MessageResponse"}}}}}},"security":[{"HMAC":[]},{"TOKEN":[]}]},"put":{"tags":["Accounts"],"summary":"Edit an account","description":"Edit details of a particular account using its ID as a reference\nCurrently editable fields:\n  1. for accounts of all customer types, externalReference can be edited\n  2. for accounts of PCM_INDIVIDUAL & PCM_BUSINESS customer types, name can additionally be edited","operationId":"editAccount","parameters":[{"name":"accountId","in":"path","description":"ID of account to be edited","required":true,"style":"simple","explode":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/account.UpdateAccountRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/account.AccountResponse"}}}},"400":{"description":"Validation errors","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/account.MessageResponse"}}}}}},"security":[{"HMAC":[]},{"TOKEN":[]}]}},"/accounts/{accountId}/secured-funding":{"put":{"tags":["Accounts"],"summary":"Set the secured funding limit for an account","operationId":"updateSecuredFundingLimit","parameters":[{"name":"accountId","in":"path","description":"ID of account to set the secured funding limit","required":true,"style":"simple","explode":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/account.AccountSecuredFundingRequest"}}},"required":true},"responses":{"200":{"description":"OK"},"400":{"description":"Validation errors","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/account.MessageResponse"}}}}}},"security":[{"HMAC":[]},{"TOKEN":[]}]}},"/access-groups/{accessGroupId}/content":{"put":{"tags":["Access Group"],"summary":"Update access group","description":"The ability to update an access group's name and add or remove an account","operationId":"updateAccessGroup","parameters":[{"name":"accessGroupId","in":"path","description":"Access group ID","required":true,"style":"simple","explode":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/account.AccessGroupRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/account.AccessGroupResponse"}}}},"400":{"description":"Validation errors","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/account.MessageResponse"}}}}}},"security":[{"HMAC":[]},{"TOKEN":[]}]}},"/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":[]}]}},"/customers/{customerId}/accounts":{"get":{"tags":["Accounts"],"summary":"Get accounts by customer","description":"Get details of accounts belonging to a particular customer using the customer’s ID as a reference","operationId":"getAccountsByCustomer","parameters":[{"name":"customerId","in":"path","description":"ID of customer to fetch accounts for","required":true,"style":"simple","explode":false,"schema":{"type":"string"}},{"name":"customerStatuses","in":"query","required":false,"style":"form","explode":true,"schema":{"$ref":"#/components/schemas/account.customerStatuses"}},{"name":"statuses","in":"query","required":false,"style":"form","explode":true,"schema":{"$ref":"#/components/schemas/account.statuses"}},{"name":"minBalance","in":"query","description":"Accounts with balance equal or more than this amount","required":false,"style":"form","explode":true,"schema":{"type":"number","description":"Accounts with balance equal or more than this amount","minimum":0}},{"name":"maxBalance","in":"query","description":"Accounts with balance equal or less than this amount","required":false,"style":"form","explode":true,"schema":{"type":"number","description":"Accounts with balance equal or less than this amount","minimum":0.01}},{"name":"fromCreatedDate","in":"query","description":"Accounts created after and on this date. Format is 'yyyy-MM-dd'T'HH:mm:ssZ' where Z is UTC offset. e.g 2017-01-28T01:01:01+0000","required":false,"style":"form","explode":true,"schema":{"type":"string","description":"Accounts created after and on this date. Format is 'yyyy-MM-dd'T'HH:mm:ssZ' where Z is UTC offset. e.g 2017-01-28T01:01:01+0000","example":"2017-01-28T01:01:01+0000"},"example":"2017-01-28T01:01:01+0000"},{"name":"toCreatedDate","in":"query","description":"Accounts created before and on this date. Format is 'yyyy-MM-dd'T'HH:mm:ssZ' where Z is UTC offset. e.g 2017-01-28T01:01:01+0000","required":false,"style":"form","explode":true,"schema":{"type":"string","description":"Accounts created before and on this date. Format is 'yyyy-MM-dd'T'HH:mm:ssZ' where Z is UTC offset. e.g 2017-01-28T01:01:01+0000","example":"2017-01-28T01:01:01+0000"},"example":"2017-01-28T01:01:01+0000"},{"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}},{"name":"sortField","in":"query","description":"Sort by field","required":false,"style":"form","explode":true,"schema":{"type":"string","description":"Sort by field","pattern":"(id|name|balance|externalReference|createdDate)"}},{"name":"sortOrder","in":"query","description":"Sorting order","required":false,"style":"form","explode":true,"schema":{"type":"string","description":"Sorting order","pattern":"(asc|desc)"}},{"name":"currency","in":"query","description":"The currency for getting account by currency. Expected ISO Standard currency name i.e. GBP, EUR etc","required":false,"style":"form","explode":true,"schema":{"type":"string","description":"The currency for getting account by currency. Expected ISO Standard currency name i.e. GBP, EUR etc","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"],"example":"GBP"},"example":"GBP"},{"name":"showAvailableBalance","in":"query","description":"Show available balance","required":false,"style":"form","explode":true,"schema":{"type":"boolean","description":"Show available balance"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/account.AccountPageResponse"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/account.MessageResponse"}}}}}},"security":[{"HMAC":[]},{"TOKEN":[]}]},"post":{"tags":["Accounts"],"summary":"Create account by customer","description":"Creates an account for a particular customer using the customer’s ID as a reference","operationId":"createAccount","parameters":[{"name":"customerId","in":"path","description":"ID of customer to create account for","required":true,"style":"simple","explode":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/account.CreateAccountRequest"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/account.AccountResponse"}}}},"400":{"description":"Validation errors","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/account.MessageResponse"}}}}}},"security":[{"HMAC":[]},{"TOKEN":[]}]}},"/accounts/{accountId}/unblock":{"post":{"tags":["Accounts"],"summary":"Unblock a specific account","description":"Using a unique reference (account ID) you can unblock an account","operationId":"unblockAccount","parameters":[{"name":"accountId","in":"path","description":"ID of account to unblock","required":true,"style":"simple","explode":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"400":{"description":"Validation errors","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/account.MessageResponse"}}}}}},"security":[{"HM

# --- truncated at 32 KB (591 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/modulr/refs/heads/main/openapi/modulr-api.json