openapi: 3.2.0 info: title: Modulr Access Group 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: Access Group description: Operations on Access Group paths: /access-groups/{accessGroupId}/content: put: tags: - Access Group summary: Update access group description: The ability to update an access group's name and add or remove an account operationId: updateAccessGroup parameters: - name: accessGroupId in: path description: Access group ID required: true style: simple explode: false schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/account.AccessGroupRequest' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/account.AccessGroupResponse' '400': description: Validation errors content: '*/*': schema: type: array items: $ref: '#/components/schemas/account.MessageResponse' security: - HMAC: [] - TOKEN: [] /access-groups: get: tags: - Access Group summary: Get a list of access groups description: The ability to list all access groups for the customer operationId: getAccessGroups parameters: - name: ids in: query required: false style: form explode: true schema: type: array description: ID of access group(s) to fetch items: type: string example: G0000001 uniqueItems: true - name: types in: query required: false style: form explode: true schema: type: array description: Access group types items: type: string description: Access group type enum: - SERVICE_PARTNER - SERVICE_CUSTOMER - DELEGATE - USER_DEFINED uniqueItems: true - name: statuses in: query required: false style: form explode: true schema: type: array description: Access group statuses items: type: string description: Access group status enum: - ACTIVE - DELETED uniqueItems: true - name: typeIds in: query required: false style: form explode: true schema: type: array description: Ids of the entity implied by the type(s), e.g. the partner ID items: type: string description: Is of the entity implied by the type(s), e.g. the partner ID example: C0000001 uniqueItems: true - name: accountIds in: query required: false style: form explode: true schema: type: array description: Account BIDs of access groups to fetch items: type: string description: Account BID of access groups to fetch example: A0000001 uniqueItems: true - name: accountIdSearchCriteria.matchMode in: query required: false style: form explode: true schema: type: string enum: - ALL - ANY - name: accountIdSearchCriteria.value in: query required: false style: form explode: true schema: type: object responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/account.AccessGroupResponse' '400': description: Bad Request content: '*/*': schema: type: array items: $ref: '#/components/schemas/account.MessageResponse' security: - HMAC: [] - TOKEN: [] post: tags: - Access Group summary: Create access group description: The ability to create a new access group operationId: createAccessGroup requestBody: content: application/json: schema: $ref: '#/components/schemas/account.AccessGroupRequest' required: true responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/account.AccessGroupResponse' '400': description: Validation errors content: '*/*': schema: type: array items: $ref: '#/components/schemas/account.MessageResponse' security: - HMAC: [] - TOKEN: [] /access-groups/{accessGroupId}: get: tags: - Access Group summary: Get access group description: The ability to retrieve an access group by ID operationId: getAccessGroup parameters: - name: accessGroupId in: path description: Access group ID required: true style: simple explode: false schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/account.AccessGroupWithDetailsResponse' '400': description: Bad Request content: '*/*': schema: type: array items: $ref: '#/components/schemas/account.MessageResponse' security: - HMAC: [] - TOKEN: [] components: schemas: account.AccessGroupWithDetailsResponse: type: object description: AccessGroupWithDetails properties: id: type: string description: Unique ID for the access group example: G0000001 name: type: string description: Access group name type: type: string description: The type of access group enum: - SERVICE_PARTNER - SERVICE_CUSTOMER - DELEGATE - USER_DEFINED typeId: type: string description: The identifier of the linked entity implied by the type, e.g. the partner ID status: type: string description: Status of the access group enum: - ACTIVE - DELETED countOfAccounts: type: integer format: int64 deprecated: true description: The number of accounts in this group accountIds: type: array description: BIDs of Accounts in the group items: type: string uniqueItems: true beneficiaryIds: type: array description: BIDs of Beneficiaries in the group items: type: string uniqueItems: true account.AccessGroupRequest: type: object properties: action: type: string description: Action to apply for the supplied account bid enum: - ADD - REMOVE accountIds: type: array description: Bids of the accounts to be added/removed items: type: string beneficiaryIds: type: array description: Bids of the beneficiaries to be added/removed items: type: string name: type: string description: 'The name of the account group to create. Must match: [\w \-]*' maxLength: 50 minLength: 0 pattern: '[\w \-]*' 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.AccessGroupResponse: type: object description: AccessGroup properties: id: type: string description: Unique ID for the access group example: G0000001 name: type: string description: Access group name type: type: string description: The type of access group enum: - SERVICE_PARTNER - SERVICE_CUSTOMER - DELEGATE - USER_DEFINED typeId: type: string description: The identifier of the linked entity implied by the type, e.g. the partner ID status: type: string description: Status of the access group enum: - ACTIVE - DELETED countOfAccounts: type: integer format: int64 deprecated: true description: The number of accounts in this group securitySchemes: modulo_security: type: apiKey name: Authorization in: header TOKEN: type: apiKey name: Authorization in: header x-readme: proxy-enabled: false