bunq Partner MCP
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| BUNQ_ENV | No | The environment to use: sandbox (default) or production | sandbox |
| BUNQ_API_KEY | Yes | Your bunq Partner API key |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_session_infoA | Returns the current session status, authenticated user ID, and active environment (sandbox/production). Useful to verify the connection is working before other calls. |
| refresh_sessionA | Force-refreshes the bunq session token. Use this if you receive authentication errors. |
| create_oauth_clientA | Creates a new OAuth client for the partner account. Required before provisioning any users. |
| list_oauth_clientsA | Lists all OAuth clients for the partner account. |
| get_oauth_clientA | Gets details (client_id, secret, callback URLs) for a specific OAuth client. |
| register_oauth_callback_urlB | Registers an OAuth callback URL for a specific OAuth client. |
| create_provisionA | Provisions a new UserPerson under the partner account. Kicks off the full onboarding flow. Returns a provision_id to monitor progress via get_provision. The provision goes through sub-statuses: PENDING_PROCESS_USER → PENDING_PROCESS_RELATION_USER → PENDING_PROCESS_OAUTH_REQUEST → PENDING_PROCESS_USER_ONBOARDING. When ACTIVE, a credential.token_value is returned — this is Eva's API key. It expires in 1h (sandbox) / 4h (production): create a session immediately with create_user_session. |
| get_provisionA | Gets the current status and details of a user provision. Poll this after create_provision to track progress. When status=ACTIVE and credential.token_value is present, immediately call create_user_session — the token expires in 1h (sandbox) / 4h (production). |
| list_provisionsB | Lists all partner user provisions with optional filtering. |
| close_provisionB | Cancels a user provision. Sets status to CANCELLED. |
| reset_provision_tokenA | Requests a new credential API key for a provision whose token was lost, expired, or revoked. Sets status to TOKEN_RESET_REQUESTED. Poll get_provision until a new credential.token_value appears, then call create_user_session immediately. |
| create_user_sessionA | Creates a session on behalf of a provisioned user using their credential.token_value (obtained from get_provision when status=ACTIVE). Returns a session token and UserApiKey.id — use this session token for all subsequent calls on behalf of that user. Must be called within 1h (sandbox) / 4h (production) of the token being issued. |
| set_notification_filtersA | Sets webhook URLs for a user. ⚠️ This REPLACES all existing filters — always include the full desired list in one call. To add one filter, fetch the existing ones first and include them all. To remove all, pass an empty array. Categories: PARTNER_USER_PROVISION, USER_ONBOARDING, USER_INFORMATION_INQUIRY, MUTATION, PAYMENT, CARD, CARD_TRANSACTION_SUCCESSFUL, CARD_TRANSACTION_FAILED. |
| list_notification_failuresA | Lists failed webhook deliveries for the partner's company user. The userId should be the UserCompany.id — this returns failures for all underlying provisioned users. Each record includes user_id (which provisioned user the failure belongs to) and user_requested_id (set when the filter was created via an API key, otherwise null). |
| retry_notification_failuresB | Retries delivery of up to 100 failed webhook notifications by their failure IDs. |
| set_address_mainB | Sets the main (residential) address for a provisioned user during onboarding. |
| set_address_postalB | Sets the postal address for a provisioned user during onboarding. |
| update_user_personB | Updates personal information for a provisioned user: name and date of birth. |
| set_tax_residentA | Submits tax residency information for a provisioned user. Required within 90 days. |
| set_nationalityA | Submits nationality information for a provisioned user. Required within 90 days. |
| start_identity_verificationA | Creates an identity verification session using the Incode SDK. Returns a session ID. Follow up with get_identity_verification to obtain the SDK token, pass it to the Incode SDK, then call submit_identity_verification once the SDK flow completes. |
| get_identity_verificationA | Gets the identity verification session details including the SDK token and status. Use the token field to initialise the Incode SDK in your app. |
| submit_identity_verificationA | Notifies bunq that the Incode SDK flow is complete and the identity verification result is ready to be processed. Call this after the SDK returns a successful completion callback. |
| link_document_identificationA | Links an uploaded attachment to a document type for KYC purposes (e.g. CRYPTO_KYC_QUESTIONNAIRE). Call after upload_attachment. |
| upload_attachmentB | Uploads a file attachment for a provisioned user. The attachment ID can then be passed to respond_to_inquiry_entry via all_attachment_id to submit documents for a compliance inquiry. Supported types: image/png, image/jpeg, image/gif, application/pdf. Note: the actual file bytes must be sent as raw binary — provide the file path. |
| get_attachmentA | Gets metadata and download URLs for a previously uploaded attachment. |
| create_bank_accountC | Creates a EUR IBAN bank account (MonetaryAccountBank) for a provisioned user. |
| create_external_accountB | Creates a non-EUR external monetary account (MonetaryAccountExternal) via CurrencyCloud. |
| list_monetary_accountsB | Lists all monetary accounts for a user. |
| get_monetary_accountB | Gets details of a specific monetary account including balance and IBAN. |
| create_paymentB | Creates a payment from a monetary account. For provisioned users without PSD2 access, only internal transfers between Eva and the partner are allowed. Description is limited to 140 characters. |
| get_paymentC | Gets details of a specific payment. |
| list_paymentsA | Lists all payments (incoming and outgoing) for a monetary account. |
| create_credit_cardA | Orders a new Mastercard credit card for a user. Use order_status=VIRTUAL_DELIVERY for immediate virtual card, or NEW_CARD_REQUEST_RECEIVED for physical delivery by post. |
| create_debit_cardA | Orders a new Mastercard debit card for a user. Use order_status=VIRTUAL_DELIVERY for immediate virtual card, or NEW_CARD_REQUEST_RECEIVED for physical delivery by post. |
| get_cardB | Gets details of a specific card including status, limits, and expiry date. |
| list_cardsB | Lists all cards (credit and debit) for a user. |
| update_cardA | Updates a card's status, spending limits, or PIN. Use to activate a card after delivery, block/unblock it, or report it lost/stolen. |
| create_card_panB | Generates and retrieves the primary account number (PAN) for a card. This is an encrypted endpoint — the request is end-to-end encrypted on top of TLS. |
| create_card_cvc2B | Generates a new CVC2 security code for a card. This is an encrypted endpoint — the request is end-to-end encrypted on top of TLS. |
| list_card_cvc2B | Lists all generated CVC2 codes for a card. This is an encrypted endpoint. |
| get_card_cvc2A | Gets the details of a specific generated CVC2 code. This is an encrypted endpoint. |
| list_user_inquiriesA | Lists compliance information inquiries for a provisioned user. Use status=EXPECTING_REPLY_FROM_USER to find open inquiries requiring action. |
| get_user_inquiryB | Gets full details of a compliance inquiry including all entries and their status. |
| respond_to_inquiry_entryA | Submits an answer for a specific inquiry entry on behalf of Eva. Provide either attachment IDs (upload via upload_attachment first) or a free-text answer, or both. Only PENDING entries can be answered. After submission the entry moves to WAITING_FOR_REVIEW. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/bunq/partner-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server