openapi: 3.2.0 info: title: Modulr Direct Debits 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: Direct Debits description: Direct Debit operations paths: /mandates/{mandateId}/collectionschedules: post: tags: - Direct Debits summary: Create the collection schedule for the given mandate-id. description: Creates a Direct Debit collection schedule; the agreed to framework for the collections for the given mandate-id. This could be a single collection or multiple and includes the frequency and amounts of the planned payments. operationId: createCollectionSchedule parameters: - name: mandateId in: path description: Id of mandate to create collection for. required: true style: simple explode: false schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/directdebit.CreateCollectionScheduleRequest' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/directdebit.CollectionScheduleResponse' '400': description: Validation errors content: '*/*': schema: type: array items: $ref: '#/components/schemas/directdebit.MessageResponse' '404': description: Not Found content: '*/*': schema: type: array items: $ref: '#/components/schemas/directdebit.MessageResponse' security: - HMAC: [] - TOKEN: [] /mandates/{mandateId}/cancel: post: tags: - Direct Debits summary: Cancel Mandate for given mandate-id. description: Cancel Mandate for given mandate-id. operationId: cancelMandate parameters: - name: mandateId in: path description: Id of Mandate to cancel. required: true style: simple explode: false schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/directdebit.CancelMandateRequest' required: true responses: '200': description: Mandate cancelled. '400': description: Validation errors. content: '*/*': schema: type: array items: $ref: '#/components/schemas/directdebit.MessageResponse' '404': description: Not Found content: '*/*': schema: type: array items: $ref: '#/components/schemas/directdebit.MessageResponse' security: - HMAC: [] - TOKEN: [] /mandates/bulk-create: post: tags: - Direct Debits summary: Bulk request of Direct Debit mandates for the given account-id. operationId: createBulkMandate requestBody: content: application/json: schema: $ref: '#/components/schemas/directdebit.BulkCreateMandateRequest' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/directdebit.BulkCreateResponse' '400': description: Validation errors. content: '*/*': schema: type: array items: $ref: '#/components/schemas/directdebit.MessageResponse' '404': description: Not Found content: '*/*': schema: type: array items: $ref: '#/components/schemas/directdebit.MessageResponse' security: - HMAC: [] - TOKEN: [] /mandates/bulk-cancel: post: tags: - Direct Debits summary: Bulk mandate cancellation request for the given account-id. operationId: cancelBulkMandate requestBody: content: application/json: schema: $ref: '#/components/schemas/directdebit.BulkCancelMandateRequest' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/directdebit.BulkCancelMandateResponse' '400': description: Validation errors. content: '*/*': schema: type: array items: $ref: '#/components/schemas/directdebit.MessageResponse' '404': description: Not Found content: '*/*': schema: type: array items: $ref: '#/components/schemas/directdebit.MessageResponse' security: - HMAC: [] - TOKEN: [] /collectionschedules/{collectionScheduleId}/cancel: post: tags: - Direct Debits summary: Cancel a Direct Debit collection schedule for the given collection-id. operationId: cancelCollectionSchedule parameters: - name: collectionScheduleId in: path description: Id of the collectionSchedule to cancel required: true style: simple explode: false schema: type: string responses: '200': description: CollectionSchedule cancelled '400': description: Validation errors content: '*/*': schema: type: array items: $ref: '#/components/schemas/directdebit.MessageResponse' '404': description: Not Found content: '*/*': schema: type: array items: $ref: '#/components/schemas/directdebit.MessageResponse' security: - HMAC: [] - TOKEN: [] /collections/{collectionId}/cancel: post: tags: - Direct Debits summary: Cancel a Direct Debit collection for the given collection-id. operationId: cancelCollection parameters: - name: collectionId in: path description: Id of the collection to cancel required: true style: simple explode: false schema: type: string responses: '200': description: Collection cancelled '400': description: Validation errors content: '*/*': schema: type: array items: $ref: '#/components/schemas/directdebit.MessageResponse' '404': description: Not Found content: '*/*': schema: type: array items: $ref: '#/components/schemas/directdebit.MessageResponse' security: - HMAC: [] - TOKEN: [] /collection/{collectionId}/represent: post: tags: - Direct Debits summary: Represent collection for given collection id description: Represent collection for given collection id operationId: representCollection parameters: - name: collectionId in: path description: Id of collection to represent required: true style: simple explode: false schema: type: string responses: '200': description: Collection represented '400': description: Validation errors. content: '*/*': schema: type: array items: $ref: '#/components/schemas/directdebit.MessageResponse' '404': description: Not Found content: '*/*': schema: type: array items: $ref: '#/components/schemas/directdebit.MessageResponse' security: - HMAC: [] - TOKEN: [] /accounts/{accountId}/mandates: post: tags: - Direct Debits summary: Create a Direct Debit mandate for the given account-id. description: Setting up a Mandate is the first step in creating a Direct Debit. You can only set up scheduled payments ('collections') after there is a Mandate created with the details of the payee. operationId: createMandate parameters: - name: accountId in: path description: Id of account to create Direct Debit for. required: true style: simple explode: false schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/directdebit.CreateMandateRequest' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/directdebit.Mandate' '400': description: Validation errors content: '*/*': schema: type: array items: $ref: '#/components/schemas/directdebit.MessageResponse' '404': description: Not Found content: '*/*': schema: type: array items: $ref: '#/components/schemas/directdebit.MessageResponse' security: - HMAC: [] - TOKEN: [] /reconciliations: get: tags: - Direct Debits summary: Get Reconciliations based on search criteria. description: Use this endpoint to get a list of Reconciliations for a given account and date. operationId: getReconciliations parameters: - name: accountId in: query description: Id(s) of account to fetch Reconciliations for. required: true style: form explode: true schema: type: string description: Id(s) of account to fetch Reconciliations for. - name: collectionDate in: query description: Reconciliation entry for date. required: true style: form explode: true schema: type: string format: date description: Reconciliation entry for date. - name: sortField in: query required: false style: form explode: true schema: type: string pattern: (id|createdDate) - name: sortOrder in: query required: false style: form explode: true schema: type: string pattern: (asc|desc) - name: size in: query required: false style: form explode: true schema: type: integer format: int32 maximum: 500 - name: page in: query required: false style: form explode: true schema: type: integer format: int32 responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/directdebit.ReconciliationPageResponse' '400': description: Bad Request content: '*/*': schema: type: array items: $ref: '#/components/schemas/directdebit.MessageResponse' '404': description: Not Found content: '*/*': schema: type: array items: $ref: '#/components/schemas/directdebit.MessageResponse' security: - HMAC: [] - TOKEN: [] /mandates: get: tags: - Direct Debits summary: Get Mandates based on search criteria. description: If trying to find one or several particular mandates, then you can narrow down your search by using the filters available here. These include the mandate id, either the submitted or created date range, the account name on the mandate, etc... operationId: getMandates parameters: - name: id in: query required: false style: form explode: true schema: $ref: '#/components/schemas/directdebit.id' - name: accountId in: query required: false style: form explode: true schema: $ref: '#/components/schemas/directdebit.accountId' - name: q in: query description: Query parameter. ID, name or reference of mandate to search for required: false style: form explode: true schema: type: string description: Query parameter. ID, name or reference of mandate to search for - name: fromCreatedDate in: query description: Mandates created on or after this date. required: false style: form explode: true schema: type: string description: Mandates created on or after this date. - name: toCreatedDate in: query description: Mandates created on or before this date. required: false style: form explode: true schema: type: string description: Mandates created on or before this date. - name: fromSubmittedDate in: query description: Mandates submitted on or after this date. required: false style: form explode: true schema: type: string description: Mandates submitted on or after this date. - name: toSubmittedDate in: query description: Mandates submitted on or before this date. required: false style: form explode: true schema: type: string description: Mandates submitted on or before this date. - name: status in: query required: false style: form explode: true schema: $ref: '#/components/schemas/directdebit.status' - name: name in: query description: Account Name on the Mandate required: false style: form explode: true schema: type: string description: Account Name on the Mandate - name: reference in: query description: reference of the Mandate required: false style: form explode: true schema: type: string description: reference of the Mandate - name: externalReference in: query description: externalReference of the Mandate required: false style: form explode: true schema: type: string description: externalReference of the Mandate - name: bulkCreateRequestId in: query description: Bulk create request ID required: false style: form explode: true schema: type: string description: Bulk create request ID - name: bulkCancelRequestId in: query description: Bulk cancel request ID required: false style: form explode: true schema: type: string description: Bulk cancel request ID - name: sortField in: query description: Sort by field required: false style: form explode: true schema: type: string description: Sort by field pattern: id|createdDate|submittedDate|status|name|reference|externalReference - name: sortOrder in: query description: Sort order required: false style: form explode: true schema: type: string description: Sort order enum: - ASC - DESC example: asc example: asc - name: page in: query description: Page to fetch (zero-indexed) required: false style: form explode: true schema: type: integer format: int32 description: Page to fetch (zero-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. exclusiveMinimum: 0 maximum: 500 responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/directdebit.MandatePageResponse' '400': description: Bad Request content: '*/*': schema: type: array items: $ref: '#/components/schemas/directdebit.MessageResponse' '404': description: Not Found content: '*/*': schema: type: array items: $ref: '#/components/schemas/directdebit.MessageResponse' security: - HMAC: [] - TOKEN: [] /indemnity-claims: get: tags: - Direct Debits summary: Get Indemnity Claims based on search criteria description: Returns a list of Indemnity Claim Advice's based on the parameters provided. operationId: getIndemnityClaims parameters: - name: accountId in: query description: Collection Account Id required: true style: form explode: true schema: type: string description: Collection Account Id - name: indemnityClaimIds in: query description: List of Indemnity Claim Id's required: false style: form explode: true schema: type: array description: List of Indemnity Claim Id's example: ICC1234567 items: type: string description: List of Indemnity Claim Id's example: ICC1234567 example: ICC1234567 - name: ddicReferences in: query description: List of DDIC references, these are references related to the claim itself. Must start with DDIC. This is different to the reference used on the mandate, it is generated by the claim originator required: false style: form explode: true schema: type: array description: List of DDIC references, these are references related to the claim itself. Must start with DDIC. This is different to the reference used on the mandate, it is generated by the claim originator example: DDICreference items: type: string description: List of DDIC references, these are references related to the claim itself. Must start with DDIC. This is different to the reference used on the mandate, it is generated by the claim originator example: DDICreference example: DDICreference - name: serviceUserReferences in: query description: List of mandate/ddi references that claims are related to. required: false style: form explode: true schema: type: array description: List of mandate/ddi references that claims are related to. items: type: string description: List of mandate/ddi references that claims are related to. - name: statuses in: query description: List of statuses that claims are in. required: false style: form explode: true schema: type: array description: List of statuses that claims are in. items: type: string description: List of statuses that claims are in. enum: - NEW - CANCELLED - SETTLED - name: sortField in: query required: false style: form explode: true schema: type: string pattern: (id|createdDate) - name: sortOrder in: query required: false style: form explode: true schema: type: string pattern: (asc|desc) - name: size in: query required: false style: form explode: true schema: type: integer format: int32 maximum: 500 - name: page in: query required: false style: form explode: true schema: type: integer format: int32 responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/directdebit.IndemnityClaimPageResponse' '400': description: Validation Errors content: '*/*': schema: type: array items: $ref: '#/components/schemas/directdebit.MessageResponse' '404': description: Not Found content: '*/*': schema: type: array items: $ref: '#/components/schemas/directdebit.MessageResponse' security: - HMAC: [] - TOKEN: [] /indemnity-claims/{indemnityClaimId}: get: tags: - Direct Debits summary: Get an Indemnity Claim for a given id description: Returns a singular Indemnity Claim based on the ID supplied in the path. operationId: getIndemnityClaim parameters: - name: indemnityClaimId in: path description: Id of the indemnityClaim required: true style: simple explode: false schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/directdebit.IndemnityClaimResponse' '400': description: Validation Errors content: '*/*': schema: type: array items: $ref: '#/components/schemas/directdebit.MessageResponse' '404': description: No Indemnity Claim found matching that ID content: '*/*': schema: type: array items: $ref: '#/components/schemas/directdebit.MessageResponse' security: - HMAC: [] - TOKEN: [] /collectionschedules: get: tags: - Direct Debits summary: Get all collectionschedules for a mandate description: By supplying the mandate id you can view all information regarding the collection schedules linked to that mandate. operationId: getCollectionSchedules parameters: - name: mandateId in: query description: Mandate Id to fetch collections for. required: true style: form explode: true schema: type: string - name: sortField in: query description: Sort by field required: false style: form explode: true schema: type: string pattern: id|createdDate|payment|status|externalReference - name: sortOrder in: query description: Sort order required: false style: form explode: true schema: type: string pattern: asc|desc - name: page in: query description: Page to fetch (zero-indexed) required: false style: form explode: true schema: type: integer format: int32 default: 0 - name: size in: query description: Size of page to fetch. required: false style: form explode: true schema: type: integer format: int32 default: 20 maximum: 500 responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/directdebit.DirectDebitPageResponseCollectionScheduleResponse' '400': description: Bad Request content: '*/*': schema: type: array items: $ref: '#/components/schemas/directdebit.MessageResponse' '404': description: Not Found content: '*/*': schema: type: array items: $ref: '#/components/schemas/directdebit.MessageResponse' security: - HMAC: [] - TOKEN: [] /collections: get: tags: - Direct Debits summary: Get all collection activities of an account description: 'Once a collection schedule is set up, any past collections (whether successful or not) can be retrieved. This endpoint supports only paginated responses with the default page size of 20 (min 1, max 500). ' operationId: getCollections parameters: - name: accountId in: query description: Account Id to fetch collections items for. required: true style: form explode: true schema: type: string - name: mandateId in: query description: Id of mandate whose the collection to fetch. required: false style: form explode: true schema: type: string - name: type in: query description: type of collection to fetch required: false style: form explode: true schema: type: string - name: startDate in: query description: Collection activities happened on or after this date required: false style: form explode: true schema: type: string - name: endDate in: query description: Collection item activities happened on or before this date required: false style: form explode: true schema: type: string - name: sortOrder in: query required: false style: form explode: true schema: type: string pattern: (asc|desc) - name: sortField in: query required: false style: form explode: true schema: type: string pattern: (id|createdDate|activityDate) - name: page in: query required: false style: form explode: true schema: type: integer format: int32 - name: size in: query required: false style: form explode: true schema: type: integer format: int32 maximum: 500 responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/directdebit.DirectDebitPageResponseCollection' '400': description: Bad Request content: '*/*': schema: type: array items: $ref: '#/components/schemas/directdebit.MessageResponse' '404': description: Not Found content: '*/*': schema: type: array items: $ref: '#/components/schemas/directdebit.MessageResponse' security: - HMAC: [] - TOKEN: [] components: schemas: directdebit.IndemnityClaimResponse: type: object properties: id: type: string accountBid: type: string serviceUserReference: type: string ddicReference: type: string reasonCode: type: string enum: - AMOUNT_OR_DATE_DIFFER - NO_ADVANCE_NOTICE - DDI_CANCELLED_BY_BANK - DDI_CANCELLED_WITH_SERVICE_USER - NO_INSTRUCTION - INVALID_SIGNATURE - SERVICE_USER_REQUEST - SERVICE_USER_NAME_DISPUTED amount: type: number payingBankName: type: string payingBankSortCode: type: string payingBankAccountNumber: type: string payingBankServiceUserNumber: type: string statusHistory: type: array items: $ref: '#/components/schemas/directdebit.IndemnityClaimStatusHistoryResponse' status: type: string enum: - NEW - CANCELLED - SETTLED directDebits: type: array items: $ref: '#/components/schemas/directdebit.IndemnityClaimDirectDebitResponse' directdebit.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 directdebit.Collection: type: object properties: id: type: string description: Unique id for a direct-debit collection example: K000100100 mandateId: type: string description: Unique id for direct-debit mandate. example: G0000001 collectionScheduleId: type: string description: Unique id for direct-debit collection schedule for which triggered the collection example: Q9200001 activityDate: type: string description: collection or reportRaised date for indemnity??? example: '2018-01-09' amount: type: number description: Amount of the collection payment example: '100.00' type: type: string description: 'Type of the collection activity. Can be one of ' example: COLLECTION payerName: type: string description: Name of the payer example: Mr John Doe status: type: string description: 'Status of the collection. Can be one of ' example: FAILED message: type: string description: Failure description of the payment activity example: Instruction Cancelled originalActivityDate: type: string description: The original scheduled date for a payment to be collected example: '2018-01-09' reconciliationDate: type: string description: The reconciled date for a payment to be collected example: '2018-01-09' reconciliationReference: type: string description: The reconciled reference that links to a payment example: '2018-01-09' ddiReference: type: string description: 'collectionReference - if present - is appended to the original DDI reference (used during mandate creation - referred to as core reference) for the specified scheduled collection without altering the original mandate core reference. This will be visible to the payer on their account. The reference and collectionReference combined have 18 character limit and can only contain alphanumeric characters with underscore, hyphen and space permitted' example: ABCD-EFGH required: - activityDate - amount - id - mandateId - message - originalActivityDate - payerName - reconciliationDate - reconciliationReference - status - type directdebit.MandatePageResponse: type: object properties: content: type: array description: List of responses on the current page items: $ref: '#/components/schemas/directdebit.Mandate' size: type: integer format: int32 description: Page size totalSize: type: integer format: int64 description: Total count page: type: integer format: int32 description: Current page number, 0-based, i.e first page = 0, second page = 1 totalPages: type: integer format: int32 description: Total pages required: - content - page - size - totalPages - totalSize directdebit.BulkCreateMandateRequest: type: object description: List of Details of the Direct Debit mandates. properties: accountId: type: string description: The unique identifier for the account for which the mandates are to be created. minLength: 1 migrationType: type: string description: The type of migration process that is being initiated. enum: - SCHEDULE_AUDDIS_MIGRATION - TRANSFER_OF_SUN - OFFBOARDING auddisSubmissionDate: type: string format: date description: The scheduled date for the AUDDIS (Automated Direct Debit Instruction Service) submission. This is the date when the mandates will be submitted to the AUDDIS system for processing. createMandateRequests: type: array description: The number of mandate creation requests. Each item in the array represents a request to create an individual mandate with its own set of parameters. items: $ref: '#/components/schemas/directdebit.CreateMandateRequest' minItems: 1 required: - accountId - createMandateRequests - migrationType directdebit.IndemnityClaimPageResponse: type: object properties: content: type: array description: List of responses on the current page items: $ref: '#/components/schemas/directdebit.IndemnityClaimResponse' size: type: integer format: int32 description: Page size totalSize: type: integer format: int64 description: Total count page: type: integer format: int32 description: Current page number, 0-based, i.e first page = 0, second page = 1 totalPages: type: integer format: int32 description: Total pages required: - content - page - size - totalPages - totalSize directdebit.ReconciliationPageResponse: type: object properties: content: type: array description: List of responses on the current page items: $ref: '#/components/schemas/directdebit.ReconciliationResponse' size: type: integer format: int32 description: Page size totalSize: type: integer format: int64 description: Total count page: type: integer format: int32 description: Current page number, 0-based, i.e first page = 0, second page = 1 totalPages: type: integer format: int32 description: Total pages required: - content - page - size - totalPages - totalSize directdebit.status: type: array description: Status of the Mandate items: type: string description: Status of the Mandate enum: - PENDING - SUBMITTED - ACTIVE - SUSPENDED - REJECTED - CANCELLED - INVALID_REQUEST directdebit.accountId: type: array description: Id(s) of account to fetch Mandates for. items: type: string description: Id(s) of account to fetch Mandates for. directdebit.id: type: array description: Id(s) of Mandate(s) to fetch. items: type: string description: Id(s) of Mandate(s) to fetch. directdebit.DirectDebitPageResponseCollectionScheduleResponse: type: object properties: content: type: array description: List of responses on the current page items: $ref: '#/components/schemas/directdebit.CollectionScheduleResponse' size: type: integer format: int32 description: Page size totalSize: type: integer format: int64 description: Total count page: type: integer format: int32 description: Current page number, 0-based, i.e first page = 0, second page = 1 totalPages: type: integer format: int32 description: Total pages required: - content - page - size - totalPages - totalSize directdebit.CreateMandateRequest: type: object description: Details of the Direct Debit mandate. properties: name: type: string description: Name for mandate maxLength: 40 minLength: 0 reference: type: string description: Mandate reference, should contain only letters, numbers, space, dot, ampersand, forward-slash , hyphen example: REFER-1.2 maxLength: 18 minLength: 6 pattern: ^[a-zA-Z 0-9\.\&\/-]+$ externalReference: type: string description: External reference for mandate maxLength: 50 minLength: 0 pattern: '[\w-\s]*' accountName: type: string description: Payee's account name maxLength: 100 minLength: 1 sortCode: type: string description: Payee's sort code of account for which direct-debit-mandate has to be created. example: '000000' pattern: \p{Digit}{6} accountNumber: type: string description: Payee's account number for which direct-debit-mandate has to be created. example: '12345678' pattern: \p{Digit}{8} address: $ref: '#/components/schemas/directdebit.Address' description: Payee's address phone: type: string description: Payee's phone number maxLength: 14 minLength: 0 pattern: \p{Digit}+ email: type: string description: Payee's email address maxLength: 100 minLength: 0 pattern: '[^\s@]+@[^\s@]+\.[^\s@]+' payeeAccountBid: type: string description: Payee's accountBid required: - accountName - accountNumber - address - externalReference - name - phone - reference - sortCode directdebit.IndemnityClaimStatusHistoryResponse: type: object properties: changeDate: type: string format: date schemeId: type: string status: type: string enum: - NEW - CANCELLED - SETTLED directdebit.DirectDebitPageResponseCollection: type: object properties: content: type: array description: List of responses on the current page items: $ref: '#/components/schemas/directdebit.Collection' size: type: integer format: int32 description: Page size totalSize: type: integer format: int64 description: Total count page: type: integer format: int32 description: Current page number, 0-based, i.e first page = 0, second page = 1 totalPages: type: integer format: int32 description: Total pages required: - content - page - size - totalPages - totalSize directdebit.CreateCollectionScheduleRequest: type: object description: Details of collection to create. properties: frequency: type: string description: 'Frequency for direct-debit collection. Can be one of: ONCE, WEEKLY, EVERY_TWO_WEEKS, EVERY_FOUR_WEEKS, MONTHLY, QUARTERLY, SEMI_ANNUALLY, ANNUALLY.' enum: - ONCE - MONTHLY - QUARTERLY - SEMI_ANNUALLY - ANNUALLY - WEEKLY - EVERY_TWO_WEEKS - EVERY_FOUR_WEEKS minLength: 1 numberOfPayments: type: integer format: int32 description: Number of payments for direct-debit collection, must be '1' where frequency is 'ONCE'. minimum: 1 firstPaymentAmount: type: number description: 'Amount of the first collection payment.
Note: your item limit is set during onboarding will be lower than field maximum and Bacs scheme item limit of £20m.' example: '100.00' maximum: 20000000 minimum: 0.01 firstPaymentDate: type: string description: 'Date of the first collection payment, format must be: yyyy-MM-dd' example: '2018-01-10' regularPaymentAmount: type: number description: 'Amount of the regular collection payments following first collection amount. Does not apply where the frequency is ''ONCE''.
Note: your item limit is set during onboarding will be lower than field maximum and Bacs scheme item limit of £20m' example: '100.00' maximum: 20000000 minimum: 0.01 regularPaymentStartDate: type: string description: 'Start date of the regular collection payment, format: yyyy-MM-dd
Note: Does not apply where the frequency is ''ONCE''.' example: '2018-01-10' currency: type: string description: Currency in which payment should be made. Must be 'GBP' currently. minLength: 1 externalReference: type: string description: External Reference for collection schedule, should contain only alphanumeric characters, underscore, hyphen and space.
For your internal reconciliation only, not sent to Bacs scheme. example: REFERENCE - 12 maxLength: 50 minLength: 0 pattern: '[\w-\s]*' collectionReference: type: string description: 'An optional additional collection specific reference to be appended to the reference of the mandate.
This is concatenated after the core reference of the mandate, and will be truncated if combined reference is >18 characters.
Should only contain alphanumeric characters, dot, ampersand, forward-slash and hyphen only.' example: ABCD - EFGH maxLength: 12 minLength: 0 pattern: '[\w-\s]*' collectionCorrelationName: type: string description: '(If enabled by Modulr) an optional collection specific reference appended to abbreviated SU name for the given collection schedule. If feature not enabled, any parameter supplied will be ignored.
When is enabled, this value is concatenated to a Service User Name abbreviation (set by Modulr) to form a Service User name containing extra information that can be used by payer to correlate (identify) transaction easily.
Characters restricted to: alphanumeric characters, numbers, space, dot, ampersand, forward-slash and hyphen only.' example: TEST/NAME-1.2 maxLength: 18 minLength: 0 pattern: ^[a-zA-Z 0-9\.\&\/-]+$ required: - currency - frequency - numberOfPayments directdebit.BulkCreateResponse: type: object properties: id: type: string description: Unique id for this bulk request. example: R210000001 accountId: type: string description: Unique id for account for this bulk request. example: A0000001 status: type: string description: Status for this bulk request. migrationType: type: string description: Migration type for this bulk request. enum: - SCHEDULE_AUDDIS_MIGRATION - TRANSFER_OF_SUN - OFFBOARDING totalMandatesRequested: type: integer format: int64 description: Total mandates requested for this bulk request. auddisSubmissionDate: type: string format: date description: auddis submission date for this bulk request. required: - accountId - auddisSubmissionDate - id - migrationType - status - totalMandatesRequested directdebit.IndemnityClaimDirectDebitResponse: type: object properties: amount: type: number collectionDate: type: string format: date collectionId: type: string directdebit.CollectionScheduleResponse: type: object properties: id: type: string description: Unique id for direct-debit collection. example: Q0000001 frequency: type: string description: Frequency for direct-debit collection example: MONTHLY numberOfPayments: type: integer format: int32 description: Number of payments for direct-debit collection example: 12 firstPaymentAmount: type: number description: Amount of the first collection payment example: '100.00' firstPaymentDate: type: string description: Date of the first collection payment. Format is yyyy-MM-dd. example: '2018-01-10' regularPaymentAmount: type: number description: Amount of the regular collection payments example: '100.00' regularPaymentStartDate: type: string description: Start date of the regular collection payment. Format is yyyy-MM-dd. example: '2018-01-10' createdDate: type: string format: date-time description: Datetime when direct-debit collection 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 status: type: string description: 'Status of the direct-debit collection. Can be one of ' example: PROCESSING externalReference: type: string collectionReference: type: string required: - createdDate - frequency - id - numberOfPayments - status directdebit.ReconciliationResponse: type: object properties: reconciliationId: type: string accountId: type: string collectionDate: type: string format: date amount: type: number currency: type: string status: type: string notifiedDate: type: string format: date-time schemeDetails: type: object additionalProperties: {} directdebit.Mandate: type: object properties: id: type: string description: Unique id for direct-debit-mandate. example: G0000001 accountId: type: string description: Unique id for account for this mandate. example: A0000001 reference: type: string description: DDI reference that was used during creation. externalReference: type: string description: External reference that was used during creation (appears on the bank statement). createdDate: type: string format: date-time description: Datetime when direct-debit-mandate 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 status: type: string description: 'Status of the direct-debit-mandate. mandates must be ''ACTIVE'' to make collections. Can be one of ' example: ACTIVE nextValidCollectionDate: type: string description: The earliest date a collection can be created. Format is yyyy-MM-dd. example: '2018-01-10' Name given on Mandate: type: string Address given on Mandate: $ref: '#/components/schemas/directdebit.Address' sortCode: type: string description: Sort Code of the account for which direct-debit-mandate has been created. example: '123456' accountNumber: type: string description: Account Number for which direct-debit-mandate has been created. example: '87654321' payeeAccountBid: type: string description: Unique id for individual recipient account used for internal transfers example: A0000001 bulkCreateRequestId: type: string description: Id associate to the bulk create request of this mandate. example: R210000005 bulkCancelRequestId: type: string description: Id associate to the bulk cancel request of this mandate. example: R210000006 required: - accountId - accountNumber - createdDate - externalReference - id - nextValidCollectionDate - reference - sortCode - status directdebit.CancelMandateRequest: type: object description: Details of Mandate cancellation. properties: reason: type: string description: Reason to cancel the mandate minLength: 1 required: - reason directdebit.Address: type: object properties: addressLine1: type: string maxLength: 150 minLength: 0 addressLine2: type: string maxLength: 150 minLength: 0 postTown: type: string maxLength: 150 minLength: 0 postCode: type: string maxLength: 8 minLength: 0 country: type: string minLength: 1 required: - addressLine1 - country - postCode - postTown directdebit.BulkCancelMandateRequest: type: object description: List of the Direct Debit mandates to cancel properties: accountId: type: string description: The unique identifier for the account for which the mandates are to be cancelled. minLength: 1 migrationType: type: string description: The type of migration process that is being initiated. enum: - SCHEDULE_AUDDIS_MIGRATION - TRANSFER_OF_SUN - OFFBOARDING auddisCancellationDate: type: string format: date description: The date for the AUDDIS (Automated Direct Debit Instruction Service) cancellation. mandateIds: type: array description: List of mandate ids to be cancelled. items: type: string minItems: 1 required: - accountId - mandateIds - migrationType directdebit.BulkCancelMandateResponse: type: object properties: id: type: string description: Unique id for this bulk request. example: R210000001 accountId: type: string description: Unique id for account for this bulk request. example: A0000001 status: type: string description: Status for this bulk request. migrationType: type: string description: Migration type for this bulk request. enum: - SCHEDULE_AUDDIS_MIGRATION - TRANSFER_OF_SUN - OFFBOARDING totalMandatesRequested: type: integer format: int64 description: Total mandates requested for this bulk request. auddisCancellationDate: type: string format: date description: auddis cancellation date for this bulk request. required: - accountId - auddisCancellationDate - id - migrationType - status - totalMandatesRequested securitySchemes: modulo_security: type: apiKey name: Authorization in: header TOKEN: type: apiKey name: Authorization in: header x-readme: proxy-enabled: false