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