naftiko: 1.0.0-alpha2 info: label: Core API — direct deposit accounts description: 'Core API — direct deposit accounts. 10 operations. Lead operation: Creates new direct deposit account for cardholder.. Self-contained Naftiko capability covering one Marqeta business surface.' tags: - Marqeta - direct deposit accounts created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: MARQETA_API_KEY: MARQETA_API_KEY capability: consumes: - type: http namespace: core-direct-deposit-accounts baseUri: '' description: Core API — direct deposit accounts business capability. Self-contained, no shared references. resources: - name: depositaccounts path: /depositaccounts operations: - name: createaccount method: POST description: Creates new direct deposit account for cardholder. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: depositaccounts-account-account_number-user path: /depositaccounts/account/{account_number}/user operations: - name: getuserfordirectdepositaccount method: GET description: Get User for Plain Text Account Number outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: account_number in: path type: string description: Get user associated with direct deposit account number required: true - name: depositaccounts-transitions path: /depositaccounts/transitions operations: - name: createtransition method: POST description: Creates new transition for a direct deposit account. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: depositaccounts-transitions-token path: /depositaccounts/transitions/{token} operations: - name: getdirectdepositaccounttransition method: GET description: Get direct deposit account transition. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: token in: path type: string description: Get specific direct deposit account transition required: true - name: depositaccounts-user-token path: /depositaccounts/user/{token} operations: - name: getuserdirectdepositaccounts method: GET description: List all specific direct deposit accounts. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: count in: query type: integer description: Number of users to retrieve - name: start_index in: query type: integer description: Start index - name: sort_by in: query type: string description: Sort order - name: state in: query type: string description: Direct deposit account status - name: token in: path type: string description: Get specific direct deposit account required: true - name: depositaccounts-token path: /depositaccounts/{token} operations: - name: getdirectdepositaccount method: GET description: Get direct deposit account. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: token in: path type: string description: Get specific direct deposit account required: true - name: update method: PUT description: Update direct deposit account. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: token in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: depositaccounts-token-cdd path: /depositaccounts/{token}/cdd operations: - name: getcddinfo method: GET description: Get direct deposit account transition list for card holder. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: token in: path type: string description: Get CDD info for a specific DDA token required: true - name: depositaccounts-token-cdd-cddtoken path: /depositaccounts/{token}/cdd/{cddtoken} operations: - name: updatecddinfo method: PUT description: Update CDD answers for Direct Deposit Account outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: token in: path type: string required: true - name: cddtoken in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: depositaccounts-user_token-transitions path: /depositaccounts/{user_token}/transitions operations: - name: gettransitionlist method: GET description: Get direct deposit account transition list for card holder. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: count in: query type: integer description: Number of users to retrieve - name: start_index in: query type: integer description: Start index - name: sort_by in: query type: string description: Sort order - name: user_token in: path type: string description: Get direct deposit account transition list for user required: true authentication: type: basic username: '{{env.MARQETA_USER}}' password: '{{env.MARQETA_PASS}}' exposes: - type: rest namespace: core-direct-deposit-accounts-rest port: 8080 description: REST adapter for Core API — direct deposit accounts. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/depositaccounts name: depositaccounts description: REST surface for depositaccounts. operations: - method: POST name: createaccount description: Creates new direct deposit account for cardholder. call: core-direct-deposit-accounts.createaccount with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/depositaccounts/account/{account-number}/user name: depositaccounts-account-account-number-user description: REST surface for depositaccounts-account-account_number-user. operations: - method: GET name: getuserfordirectdepositaccount description: Get User for Plain Text Account Number call: core-direct-deposit-accounts.getuserfordirectdepositaccount with: account_number: rest.account_number outputParameters: - type: object mapping: $. - path: /v1/depositaccounts/transitions name: depositaccounts-transitions description: REST surface for depositaccounts-transitions. operations: - method: POST name: createtransition description: Creates new transition for a direct deposit account. call: core-direct-deposit-accounts.createtransition with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/depositaccounts/transitions/{token} name: depositaccounts-transitions-token description: REST surface for depositaccounts-transitions-token. operations: - method: GET name: getdirectdepositaccounttransition description: Get direct deposit account transition. call: core-direct-deposit-accounts.getdirectdepositaccounttransition with: token: rest.token outputParameters: - type: object mapping: $. - path: /v1/depositaccounts/user/{token} name: depositaccounts-user-token description: REST surface for depositaccounts-user-token. operations: - method: GET name: getuserdirectdepositaccounts description: List all specific direct deposit accounts. call: core-direct-deposit-accounts.getuserdirectdepositaccounts with: count: rest.count start_index: rest.start_index sort_by: rest.sort_by state: rest.state token: rest.token outputParameters: - type: object mapping: $. - path: /v1/depositaccounts/{token} name: depositaccounts-token description: REST surface for depositaccounts-token. operations: - method: GET name: getdirectdepositaccount description: Get direct deposit account. call: core-direct-deposit-accounts.getdirectdepositaccount with: token: rest.token outputParameters: - type: object mapping: $. - method: PUT name: update description: Update direct deposit account. call: core-direct-deposit-accounts.update with: token: rest.token body: rest.body outputParameters: - type: object mapping: $. - path: /v1/depositaccounts/{token}/cdd name: depositaccounts-token-cdd description: REST surface for depositaccounts-token-cdd. operations: - method: GET name: getcddinfo description: Get direct deposit account transition list for card holder. call: core-direct-deposit-accounts.getcddinfo with: token: rest.token outputParameters: - type: object mapping: $. - path: /v1/depositaccounts/{token}/cdd/{cddtoken} name: depositaccounts-token-cdd-cddtoken description: REST surface for depositaccounts-token-cdd-cddtoken. operations: - method: PUT name: updatecddinfo description: Update CDD answers for Direct Deposit Account call: core-direct-deposit-accounts.updatecddinfo with: token: rest.token cddtoken: rest.cddtoken body: rest.body outputParameters: - type: object mapping: $. - path: /v1/depositaccounts/{user-token}/transitions name: depositaccounts-user-token-transitions description: REST surface for depositaccounts-user_token-transitions. operations: - method: GET name: gettransitionlist description: Get direct deposit account transition list for card holder. call: core-direct-deposit-accounts.gettransitionlist with: count: rest.count start_index: rest.start_index sort_by: rest.sort_by user_token: rest.user_token outputParameters: - type: object mapping: $. - type: mcp namespace: core-direct-deposit-accounts-mcp port: 9090 transport: http description: MCP adapter for Core API — direct deposit accounts. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: creates-new-direct-deposit-account description: Creates new direct deposit account for cardholder. hints: readOnly: false destructive: false idempotent: false call: core-direct-deposit-accounts.createaccount with: body: tools.body outputParameters: - type: object mapping: $. - name: get-user-plain-text-account description: Get User for Plain Text Account Number hints: readOnly: true destructive: false idempotent: true call: core-direct-deposit-accounts.getuserfordirectdepositaccount with: account_number: tools.account_number outputParameters: - type: object mapping: $. - name: creates-new-transition-direct-deposit description: Creates new transition for a direct deposit account. hints: readOnly: false destructive: false idempotent: false call: core-direct-deposit-accounts.createtransition with: body: tools.body outputParameters: - type: object mapping: $. - name: get-direct-deposit-account-transition description: Get direct deposit account transition. hints: readOnly: true destructive: false idempotent: true call: core-direct-deposit-accounts.getdirectdepositaccounttransition with: token: tools.token outputParameters: - type: object mapping: $. - name: list-all-specific-direct-deposit description: List all specific direct deposit accounts. hints: readOnly: true destructive: false idempotent: true call: core-direct-deposit-accounts.getuserdirectdepositaccounts with: count: tools.count start_index: tools.start_index sort_by: tools.sort_by state: tools.state token: tools.token outputParameters: - type: object mapping: $. - name: get-direct-deposit-account description: Get direct deposit account. hints: readOnly: true destructive: false idempotent: true call: core-direct-deposit-accounts.getdirectdepositaccount with: token: tools.token outputParameters: - type: object mapping: $. - name: update-direct-deposit-account description: Update direct deposit account. hints: readOnly: false destructive: false idempotent: true call: core-direct-deposit-accounts.update with: token: tools.token body: tools.body outputParameters: - type: object mapping: $. - name: get-direct-deposit-account-transition-2 description: Get direct deposit account transition list for card holder. hints: readOnly: true destructive: false idempotent: true call: core-direct-deposit-accounts.getcddinfo with: token: tools.token outputParameters: - type: object mapping: $. - name: update-cdd-answers-direct-deposit description: Update CDD answers for Direct Deposit Account hints: readOnly: false destructive: false idempotent: true call: core-direct-deposit-accounts.updatecddinfo with: token: tools.token cddtoken: tools.cddtoken body: tools.body outputParameters: - type: object mapping: $. - name: get-direct-deposit-account-transition-3 description: Get direct deposit account transition list for card holder. hints: readOnly: true destructive: false idempotent: true call: core-direct-deposit-accounts.gettransitionlist with: count: tools.count start_index: tools.start_index sort_by: tools.sort_by user_token: tools.user_token outputParameters: - type: object mapping: $.