Skip to main content
Glama
bunq

bunq Partner MCP

Official
by bunq

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
BUNQ_ENVNoThe environment to use: sandbox (default) or productionsandbox
BUNQ_API_KEYYesYour bunq Partner API key

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
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

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

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