openapi: 3.2.0 info: title: Modulr Beneficiaries API description: Modulr API license: name: © Modulr Finance url: https://www.modulrfinance.com version: '1.0' servers: - url: https://api-sandbox.modulrfinance.com/api-sandbox-token security: - modulo_security: [] tags: - name: Beneficiaries description: Operations on Beneficiaries paths: /customers/{customerId}/beneficiaries: post: tags: - Beneficiaries summary: Create a new beneficiary for a specified customer description: The ability to create a new beneficiary for a customer, using their customer ID as a reference. operationId: createBeneficiary parameters: - name: customerId in: path description: ID of customer to create beneficiary for required: true style: simple explode: false schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/account.CreateBeneficiaryRequest' required: true responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/account.BeneficiaryResponse' '400': description: Validation errors content: '*/*': schema: type: array items: $ref: '#/components/schemas/account.MessageResponse' security: - HMAC: [] - TOKEN: [] delete: tags: - Beneficiaries summary: Delete beneficiaries for a specified customer description: deleting beneficiaries for a customer, using their customer ID operationId: deleteBeneficiaries parameters: - name: customerId in: path description: ID of customer to delete beneficiaries for required: true style: simple explode: false schema: type: string - name: bid in: query description: ID(s) of beneficiaries to delete, must owned by customer and active required: true style: form explode: true schema: type: array items: type: string responses: '200': description: Successfully deleted single resource content: application/json: schema: type: object '207': description: Map of multiple responses for multi-request content: application/json: schema: type: string '400': description: Bad Request content: '*/*': schema: type: array items: $ref: '#/components/schemas/account.MessageResponse' security: - HMAC: [] - TOKEN: [] /beneficiaries: get: tags: - Beneficiaries summary: Retrieve beneficiaries description: The ability to get the details of beneficiaries using various pieces of information, e.g. using customer ID, retrieve all beneficiaries created by that customer. Can get details of one particular beneficiary based on the unique beneficiary reference number. operationId: getBeneficiaries parameters: - name: id in: query description: Id of Beneficiary(s) to fetch required: false style: form explode: true schema: $ref: '#/components/schemas/account.id' - name: customerId in: query description: Filter by Customer Id required: false style: form explode: true schema: type: string description: Filter by Customer Id - name: q in: query description: Partial name of beneficiary or Scan Details Or IBAN Or external referenceOr default reference to search for. Deprecated use validForAccount, orSortCode, orAccountNumber, orIban, orName, orExternalReference, orDefaultReference instead required: false deprecated: true style: form explode: true schema: type: string description: Partial name of beneficiary or Scan Details Or IBAN Or external referenceOr default reference to search for. Deprecated use validForAccount, orSortCode, orAccountNumber, orIban, orName, orExternalReference, orDefaultReference instead - name: modifiedSince in: query description: Beneficiaries modified after this date time required: false style: form explode: true schema: type: string description: Beneficiaries modified after this date time - name: hasExternalReference in: query description: Filter by existence of external reference required: false style: form explode: true schema: type: boolean description: Filter by existence of external reference - name: externalReference in: query description: External reference for beneficiary required: false style: form explode: true schema: type: string description: External reference for beneficiary - name: iban in: query description: IBAN required: false style: form explode: true schema: type: string description: IBAN - name: abaRoutingNumber in: query description: abaRoutingNumber required: false style: form explode: true schema: type: string description: abaRoutingNumber - name: currency in: query description: Currency required: false style: form explode: true schema: type: string description: Currency enum: - GBP - EUR - AED - AFN - ALL - AMD - ANG - AOA - ARS - AUD - AWG - AZN - BAM - BBD - BDT - BGN - BHD - BIF - BMD - BND - BOB - BOV - BRL - BSD - BTN - BWP - BYN - BZD - CAD - CDF - CHE - CHF - CHW - CLF - CLP - CNY - COP - COU - CRC - CUC - CUP - CVE - CZK - DJF - DKK - DOP - DZD - EGP - ERN - ETB - FJD - FKP - GEL - GHS - GIP - GMD - GNF - GTQ - GYD - HKD - HNL - HRK - HTG - HUF - IDR - ILS - INR - IQD - IRR - ISK - JMD - JOD - JPY - KES - KGS - KHR - KMF - KPW - KRW - KWD - KYD - KZT - LAK - LBP - LKR - LRD - LSL - LYD - MAD - MDL - MGA - MKD - MMK - MNT - MOP - MRU - MUR - MVR - MWK - MXN - MXV - MYR - MZN - NAD - NGN - NIO - NOK - NPR - NZD - OMR - PAB - PEN - PGK - PHP - PKR - PLN - PYG - QAR - RON - RSD - RUB - RWF - SAR - SBD - SCR - SDG - SEK - SGD - SLE - SLL - SOS - SRD - SSP - STN - SVC - SYP - SZL - SHP - THB - TJS - TMT - TND - TOP - TRY - TTD - TWD - TZS - UAH - UGX - USD - USN - UYI - UYU - UYW - UZS - VES - VND - VUV - WST - XAF - XAG - XAU - XBA - XBB - XBC - XBD - XCD - XDR - XOF - XPD - XPF - XPT - XSU - XTS - XUA - XXX - YER - ZAR - ZMW - ZWL - name: qualifier in: query description: A list of external qualifiers required: false style: form explode: true schema: $ref: '#/components/schemas/account.qualifier' - name: state in: query description: Approval item state(s) to filter by required: false style: form explode: true schema: $ref: '#/components/schemas/account.state' - name: validForAccount in: query description: Source account BID. Limit results to beneficiaries which would be valid recipients of payments from the given account (e.g. IBAN can’t be paid from GBP account, SCAN can’t be paid from non-GBP account). The specified account must be accessible to the user required: false style: form explode: true schema: type: string description: Source account BID. Limit results to beneficiaries which would be valid recipients of payments from the given account (e.g. IBAN can’t be paid from GBP account, SCAN can’t be paid from non-GBP account). The specified account must be accessible to the user example: A000000001 example: A000000001 - name: sortOrder in: query description: Sort order required: false style: form explode: true schema: type: string description: Sort order pattern: (ASC|DESC) - name: sortField in: query description: Sort by field, This defaults to name if not present required: false style: form explode: true schema: type: string description: Sort by field, This defaults to name if not present pattern: (name|createdDate) - name: orSortCode.type in: query description: 'WORD_MATCH - using word boundaries, WORD_MATCH_ALPHANUMERIC - using word boundaries, but replaces non-alphanumeric characters in the search with a word boundary match, PREFIX - same case prefix, SUFFIX - same case suffix, CONTAINS - same case contains EXACT - same case exact ' required: false style: form explode: true schema: type: string description: 'WORD_MATCH - using word boundaries, WORD_MATCH_ALPHANUMERIC - using word boundaries, but replaces non-alphanumeric characters in the search with a word boundary match, PREFIX - same case prefix, SUFFIX - same case suffix, CONTAINS - same case contains EXACT - same case exact ' enum: - WORD_MATCH - WORD_MATCH_ALPHANUMERIC - PREFIX - SUFFIX - CONTAINS - EXACT - name: orSortCode.value in: query required: false style: form explode: true schema: type: string minLength: 1 - name: orAccountNumber.type in: query description: 'WORD_MATCH - using word boundaries, WORD_MATCH_ALPHANUMERIC - using word boundaries, but replaces non-alphanumeric characters in the search with a word boundary match, PREFIX - same case prefix, SUFFIX - same case suffix, CONTAINS - same case contains EXACT - same case exact ' required: false style: form explode: true schema: type: string description: 'WORD_MATCH - using word boundaries, WORD_MATCH_ALPHANUMERIC - using word boundaries, but replaces non-alphanumeric characters in the search with a word boundary match, PREFIX - same case prefix, SUFFIX - same case suffix, CONTAINS - same case contains EXACT - same case exact ' enum: - WORD_MATCH - WORD_MATCH_ALPHANUMERIC - PREFIX - SUFFIX - CONTAINS - EXACT - name: orAccountNumber.value in: query required: false style: form explode: true schema: type: string minLength: 1 - name: orIban.type in: query description: 'WORD_MATCH - using word boundaries, WORD_MATCH_ALPHANUMERIC - using word boundaries, but replaces non-alphanumeric characters in the search with a word boundary match, PREFIX - same case prefix, SUFFIX - same case suffix, CONTAINS - same case contains EXACT - same case exact ' required: false style: form explode: true schema: type: string description: 'WORD_MATCH - using word boundaries, WORD_MATCH_ALPHANUMERIC - using word boundaries, but replaces non-alphanumeric characters in the search with a word boundary match, PREFIX - same case prefix, SUFFIX - same case suffix, CONTAINS - same case contains EXACT - same case exact ' enum: - WORD_MATCH - WORD_MATCH_ALPHANUMERIC - PREFIX - SUFFIX - CONTAINS - EXACT - name: orIban.value in: query required: false style: form explode: true schema: type: string minLength: 1 - name: orAbaRoutingNumber.type in: query description: 'WORD_MATCH - using word boundaries, WORD_MATCH_ALPHANUMERIC - using word boundaries, but replaces non-alphanumeric characters in the search with a word boundary match, PREFIX - same case prefix, SUFFIX - same case suffix, CONTAINS - same case contains EXACT - same case exact ' required: false style: form explode: true schema: type: string description: 'WORD_MATCH - using word boundaries, WORD_MATCH_ALPHANUMERIC - using word boundaries, but replaces non-alphanumeric characters in the search with a word boundary match, PREFIX - same case prefix, SUFFIX - same case suffix, CONTAINS - same case contains EXACT - same case exact ' enum: - WORD_MATCH - WORD_MATCH_ALPHANUMERIC - PREFIX - SUFFIX - CONTAINS - EXACT - name: orAbaRoutingNumber.value in: query required: false style: form explode: true schema: type: string minLength: 1 - name: orName.type in: query description: 'WORD_MATCH - using word boundaries, WORD_MATCH_ALPHANUMERIC - using word boundaries, but replaces non-alphanumeric characters in the search with a word boundary match, PREFIX - same case prefix, SUFFIX - same case suffix, CONTAINS - same case contains EXACT - same case exact ' required: false style: form explode: true schema: type: string description: 'WORD_MATCH - using word boundaries, WORD_MATCH_ALPHANUMERIC - using word boundaries, but replaces non-alphanumeric characters in the search with a word boundary match, PREFIX - same case prefix, SUFFIX - same case suffix, CONTAINS - same case contains EXACT - same case exact ' enum: - WORD_MATCH - WORD_MATCH_ALPHANUMERIC - PREFIX - SUFFIX - CONTAINS - EXACT - name: orName.value in: query required: false style: form explode: true schema: type: string minLength: 1 - name: orExternalReference.type in: query description: 'WORD_MATCH - using word boundaries, WORD_MATCH_ALPHANUMERIC - using word boundaries, but replaces non-alphanumeric characters in the search with a word boundary match, PREFIX - same case prefix, SUFFIX - same case suffix, CONTAINS - same case contains EXACT - same case exact ' required: false style: form explode: true schema: type: string description: 'WORD_MATCH - using word boundaries, WORD_MATCH_ALPHANUMERIC - using word boundaries, but replaces non-alphanumeric characters in the search with a word boundary match, PREFIX - same case prefix, SUFFIX - same case suffix, CONTAINS - same case contains EXACT - same case exact ' enum: - WORD_MATCH - WORD_MATCH_ALPHANUMERIC - PREFIX - SUFFIX - CONTAINS - EXACT - name: orExternalReference.value in: query required: false style: form explode: true schema: type: string minLength: 1 - name: orDefaultReference.type in: query description: 'WORD_MATCH - using word boundaries, WORD_MATCH_ALPHANUMERIC - using word boundaries, but replaces non-alphanumeric characters in the search with a word boundary match, PREFIX - same case prefix, SUFFIX - same case suffix, CONTAINS - same case contains EXACT - same case exact ' required: false style: form explode: true schema: type: string description: 'WORD_MATCH - using word boundaries, WORD_MATCH_ALPHANUMERIC - using word boundaries, but replaces non-alphanumeric characters in the search with a word boundary match, PREFIX - same case prefix, SUFFIX - same case suffix, CONTAINS - same case contains EXACT - same case exact ' enum: - WORD_MATCH - WORD_MATCH_ALPHANUMERIC - PREFIX - SUFFIX - CONTAINS - EXACT - name: orDefaultReference.value in: query required: false style: form explode: true schema: type: string minLength: 1 - name: createdDate in: query description: Created date required: false style: form explode: true schema: type: string format: date description: Created date - name: partialName in: query description: Partial name required: false style: form explode: true schema: type: string description: Partial name - name: sortCode in: query description: Sort code required: false style: form explode: true schema: type: string description: Sort code - name: accountNumber in: query description: Account number required: false style: form explode: true schema: type: string description: Account number - name: page in: query description: Page to fetch (0 indexed) required: false style: form explode: true schema: type: integer format: int32 description: Page to fetch (0 indexed) - name: size in: query description: Size of Page to fetch required: false style: form explode: true schema: type: integer format: int32 description: Size of Page to fetch maximum: 500 responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/account.BeneficiaryPageResponse' '400': description: Bad Request content: '*/*': schema: type: array items: $ref: '#/components/schemas/account.MessageResponse' security: - HMAC: [] - TOKEN: [] /beneficiaries/{beneficiaryId}/locks: get: tags: - Beneficiaries summary: Retrieve locked beneficiary entities description: Fetch references of the entities (payment, rule) that have caused the beneficiary to be locked operationId: getLocks parameters: - name: beneficiaryId in: path required: true style: simple explode: false schema: type: string - name: page in: query description: Page to fetch (0 indexed) required: false style: form explode: true schema: type: integer format: int32 description: Page to fetch (0 indexed) minimum: 0 - name: size in: query description: Size of Page to fetch required: false style: form explode: true schema: type: integer format: int32 description: Size of Page to fetch maximum: 500 minimum: 1 responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/account.BeneficiaryLockPageResponse' '400': description: Bad Request content: '*/*': schema: type: array items: $ref: '#/components/schemas/account.MessageResponse' security: - HMAC: [] - TOKEN: [] components: schemas: account.id: type: array description: ID of Customer(s) to fetch items: type: string description: ID of Customer(s) to fetch account.state: type: array description: Approval item state(s) to filter by items: type: string description: Approval item state(s) to filter by account.CreateBeneficiaryRequest: type: object properties: externalReference: type: string description: External Reference can only have alphanumeric characters plus underscore, hyphen and space up to 50 characters long maxLength: 50 minLength: 0 pattern: '[\w \-]*' name: type: string maxLength: 100 minLength: 0 pattern: ^([^\p{L}0-9]*?[\p{L}0-9]){1,}['\.\-\/&\s]* birthdate: type: string format: date description: The destination beneficiary's date of birth. Date in yyyy-MM-dd format emailAddress: type: string format: email description: The destination beneficiary's email address phoneNumber: type: string description: The destination beneficiary's phone number, will be formatted into international number pattern destinationIdentifier: $ref: '#/components/schemas/account.IdentifierRequest' defaultReference: type: string minLength: 1 idToReplace: type: string address: $ref: '#/components/schemas/account.AddressRequest' description: Optional address. qualifier: type: string description: Optional qualifier. Only to be supplied if multiple beneficiaries with same destination need to be supplied maxLength: 100 minLength: 0 required: - defaultReference - destinationIdentifier - name account.IdentifierCountrySpecificDetailsResponse: type: object properties: bankName: type: string description: The name of the destination bank. example: Apple Bank bankAddress: type: string description: The address of the destination bank. example: 2100 Broadway bankCity: type: string description: The city in which the destination bank resides. example: New York City bankBranchName: type: string description: The name of the destination bank's branch. example: New York bankBranchCode: type: string description: The code of the destination bank's branch. example: 44-04 bankCode: type: string description: The code identifying the target bank on its respective national network. This is not the BIC/SWIFT code. This is known as the 'ABA code' in the U.S., 'ISFC' in India, 'routing number' in Canada, and so on. chineseId: type: string description: The 18 digit identification code of the beneficiary. Applies to Chinese beneficiaries only. example: 01101201901018889 province: type: string description: The province in which the beneficiary resides. Applies only to beneficiaries residing in China. example: Zhejiang business: type: boolean description: The type of the beneficiary. 'true' for businesses, 'false' otherwise. example: true bankCodeType: type: string description: 'The code type identifying the target bank on its respective national network. This is known as the ''ABA code'' in the U.S., ''ISFC'' in India, ''routing number'' in Canada, and so on.' enum: - ABA - CHIPS example: ABA bankCountry: type: string description: The country in which the destination bank resides. enum: - AT - BE - BG - CY - CZ - DK - EE - FI - FR - DE - GR - HR - HU - IS - IE - IT - LV - LI - LT - LU - MT - NL - 'NO' - PL - PT - RO - SK - SI - ES - SE - GB - MQ - YT - GP - GF - RE - MF - GI - GG - IM - JE - MC - CH - AD - SM - VA - AX - PM - BL - AL - MD - ME - MK - RS - AF - DZ - AS - AO - AI - AQ - AG - AR - AM - AW - AU - AZ - BS - BH - BD - BB - BY - BZ - BJ - BM - BT - BO - BQ - BA - BW - BV - BR - IO - VG - BN - BF - BI - KH - CM - CA - CV - KY - CF - TD - CL - CN - CX - CC - CO - KM - CK - CR - CU - CW - CD - DJ - DM - DO - TL - EC - EG - SV - GQ - ER - SZ - ET - FK - FO - FJ - PF - TF - GA - GM - GE - GH - GL - GD - GU - GT - GN - GW - GY - HT - HM - HN - HK - IN - ID - IR - IQ - IL - CI - JM - JP - JO - KZ - KE - KI - XK - KW - KG - LA - LB - LS - LR - LY - MO - MG - MW - MY - MV - ML - MH - MR - MU - MX - FM - MN - MS - MA - MZ - MM - NA - NR - NP - AN - NC - NZ - NI - NE - NG - NU - NF - KP - MP - OM - PK - PW - PS - PA - PG - PY - PE - PH - PN - PR - QA - CG - RU - RW - SH - KN - LC - VC - WS - ST - SA - SN - SC - SL - SG - SX - SB - SO - ZA - KR - GS - SS - LK - SD - SR - SY - SJ - TW - TJ - TZ - TH - TG - TK - TO - TT - TN - TR - TM - TC - TV - UG - UA - AE - UM - US - UY - UZ - VU - VE - VN - VI - WF - EH - YE - ZM - ZW example: US abaRoutingNumber: type: string description: The 9 digit identification code of the beneficiary. Applies to US beneficiaries only. example: '123456789' account.BeneficiaryLockPageResponse: type: object properties: content: type: array description: List of responses on the current page items: $ref: '#/components/schemas/account.BeneficiaryLockResponse' size: type: integer format: int32 description: Page size totalSize: type: integer format: int64 description: Total count page: type: integer format: int32 description: Current page number, 0 based; i.e first-page = 0, second-page = 1 totalPages: type: integer format: int32 description: Total pages account.BeneficiaryLockResponse: type: object description: BeneficiaryLock properties: ownerId: type: string description: Reference for the entity owning the lock. example: R00000001A ownerType: type: string description: Entity type owning the lock. enum: - RULE - PAYMENT account.IdentifierCountrySpecificDetailsRequest: type: object properties: bankName: type: string description: The name of the destination bank. example: Apple Bank maxLength: 140 minLength: 0 bankAddress: type: string description: The address of the destination bank. example: 2100 Broadway maxLength: 70 minLength: 0 bankCity: type: string description: The city in which the destination bank resides. example: New York City maxLength: 35 minLength: 0 bankBranchName: type: string description: The name of the destination bank's branch. example: New York bankBranchCode: type: string description: The code of the destination bank's branch. example: 44-04 maxLength: 35 minLength: 0 bankCode: type: string description: The code identifying the target bank on its respective national network. This is not the BIC/SWIFT code. This is known as the 'ABA code' in the U.S., 'ISFC' in India, 'routing number' in Canada, and so on. maxLength: 35 minLength: 0 chineseId: type: string description: The 18 digit identification code of the beneficiary. Applies to Chinese beneficiaries only. example: 01101201901018889 province: type: string description: The province in which the beneficiary resides. Applies only to beneficiaries residing in China. example: Zhejiang business: type: boolean description: The type of the beneficiary. 'true' for businesses, 'false' otherwise. example: true bankCodeType: type: string description: 'The code type identifying the target bank on its respective national network. This is known as the ''ABA code'' in the U.S., ''ISFC'' in India, ''routing number'' in Canada, and so on.' enum: - ABA - CHIPS example: ABA bankCountry: type: string description: The country in which the destination bank resides. enum: - AT - BE - BG - CY - CZ - DK - EE - FI - FR - DE - GR - HR - HU - IS - IE - IT - LV - LI - LT - LU - MT - NL - 'NO' - PL - PT - RO - SK - SI - ES - SE - GB - MQ - YT - GP - GF - RE - MF - GI - GG - IM - JE - MC - CH - AD - SM - VA - AX - PM - BL - AL - MD - ME - MK - RS - AF - DZ - AS - AO - AI - AQ - AG - AR - AM - AW - AU - AZ - BS - BH - BD - BB - BY - BZ - BJ - BM - BT - BO - BQ - BA - BW - BV - BR - IO - VG - BN - BF - BI - KH - CM - CA - CV - KY - CF - TD - CL - CN - CX - CC - CO - KM - CK - CR - CU - CW - CD - DJ - DM - DO - TL - EC - EG - SV - GQ - ER - SZ - ET - FK - FO - FJ - PF - TF - GA - GM - GE - GH - GL - GD - GU - GT - GN - GW - GY - HT - HM - HN - HK - IN - ID - IR - IQ - IL - CI - JM - JP - JO - KZ - KE - KI - XK - KW - KG - LA - LB - LS - LR - LY - MO - MG - MW - MY - MV - ML - MH - MR - MU - MX - FM - MN - MS - MA - MZ - MM - NA - NR - NP - AN - NC - NZ - NI - NE - NG - NU - NF - KP - MP - OM - PK - PW - PS - PA - PG - PY - PE - PH - PN - PR - QA - CG - RU - RW - SH - KN - LC - VC - WS - ST - SA - SN - SC - SL - SG - SX - SB - SO - ZA - KR - GS - SS - LK - SD - SR - SY - SJ - TW - TJ - TZ - TH - TG - TK - TO - TT - TN - TR - TM - TC - TV - UG - UA - AE - UM - US - UY - UZ - VU - VE - VN - VI - WF - EH - YE - ZM - ZW example: US abaRoutingNumber: type: string description: The 9 digit identification code of the beneficiary. Applies to US beneficiaries only. example: '123456789' pattern: ^\d{9}$ account.IdentifierResponse: type: object description: Account Identifier properties: type: type: string accountNumber: type: string description: Bank account Sort Code example: '12345678' accountType: type: string description: Bank account type like PERSONAL/BUSINESS enum: - PERSONAL - BUSINESS sortCode: type: string description: Bank account Sort Code example: '000000' iban: type: string example: GB20MODR04001401100000 bic: type: string example: MODRGB21 currency: type: string example: GBP countrySpecificDetails: $ref: '#/components/schemas/account.IdentifierCountrySpecificDetailsResponse' example: branchCode: '123456789' productId: type: string example: O2100001 account.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 account.BeneficiaryPageResponse: type: object properties: content: type: array description: List of responses on the current page items: $ref: '#/components/schemas/account.BeneficiaryResponse' size: type: integer format: int32 description: Page size totalSize: type: integer format: int64 description: Total count page: type: integer format: int32 description: Current page number, 0 based; i.e first-page = 0, second-page = 1 totalPages: type: integer format: int32 description: Total pages account.qualifier: type: array description: A list of external qualifiers items: type: string description: A list of external qualifiers account.IdentifierRequest: type: object properties: type: type: string accountNumber: type: string example: '12345678' accountType: type: string description: Bank account type like PERSONAL/BUSINESS enum: - PERSONAL - BUSINESS sortCode: type: string example: '000000' pattern: ^\d{6} iban: type: string example: GB20MODR00000000000001 pattern: '[a-zA-Z]{2}[0-9]{2}[a-zA-Z0-9]{4}([a-zA-Z0-9]?){0,26}' bic: type: string example: MODRGB21 pattern: ([a-zA-Z]{6,6}[a-zA-Z2-9][a-nA-Np-zP-Z0-9]([a-zA-Z0-9]{3})?) currency: type: string example: GBP pattern: '[a-zA-Z]{3}' countrySpecificDetails: $ref: '#/components/schemas/account.IdentifierCountrySpecificDetailsRequest' example: branchCode: '123456789' account.BeneficiaryResponse: type: object description: Beneficiary properties: id: type: string description: Unique reference for the Beneficiary. example: B00000001A name: type: string description: Name for the Beneficiary birthdate: type: string format: date description: Date of birth for the Beneficiary in yyyy-MM-dd format emailAddress: type: string description: Email address for the Beneficiary phoneNumber: type: string description: Phone number for the Beneficiary in international pattern destinationIdentifier: $ref: '#/components/schemas/account.IdentifierResponse' redirectedDestination: $ref: '#/components/schemas/account.IdentifierResponse' description: Provides new account details where the beneficiary's account details have been redirected by the scheme. defaultReference: type: string description: Default reference used for payments to the Beneficiary. status: type: string description: 'Status of the Beneficiary. Can be:' created: type: string format: date-time description: Datetime the Beneficiary was created.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 accountId: type: string description: Id of the account if this beneficiary is a Modulr account, null otherwise externalReference: type: string description: External system reference for the Beneficiary approvalRequired: type: boolean description: Indicates if the beneficiary creation is pending approval customerId: type: string description: Id of the customer than owns this beneficiary example: C0000001 updated: type: string format: date-time description: Datetime the Beneficiary was last updated.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 address: $ref: '#/components/schemas/account.AddressResponse' description: address of the beneficiary qualifier: type: string description: Qualifier for this beneficiary approvalRequestId: type: string description: Approval request ID for pending records. approvalStatus: type: string description: Approval status of item. enum: - NOTNEEDED - PENDING - APPROVED - REJECTED - DELETED accessGroups: type: array description: Access groups associated with beneficiary. items: type: string uniqueItems: true createdBy: type: string description: System or person who created the beneficiary account.AddressResponse: type: object description: Address properties: addressLine1: type: string addressLine2: type: string postTown: type: string postCode: type: string country: type: string countrySubDivision: type: string account.AddressRequest: type: object properties: addressLine1: type: string maxLength: 50 minLength: 0 addressLine2: type: string maxLength: 50 minLength: 0 postTown: type: string maxLength: 50 minLength: 0 postCode: type: string maxLength: 10 country: type: string description: Mandatory for international payments. countrySubDivision: type: string maxLength: 35 minLength: 0 securitySchemes: modulo_security: type: apiKey name: Authorization in: header TOKEN: type: apiKey name: Authorization in: header x-readme: proxy-enabled: false