Modulr Direct Debits API
Set up and manage UK Bacs Direct Debit mandates and collections, outbound mandate operations and indemnity claims for recurring collection use cases.
Set up and manage UK Bacs Direct Debit mandates and collections, outbound mandate operations and indemnity claims for recurring collection use cases.
{"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