Customer Deposit Accounts

Give each customer reusable crypto addresses and a bank account to fund their balance.

Open the interactive version or read this guide as markdown.

Tags: Deposits, Webhooks, Customers

Paste this prompt into Claude, ChatGPT, or any AI tool. It works best with the CoinCircuit MCP server connected: https://mcp.coincircuit.io


You are helping me add CoinCircuit deposit accounts to my existing application, so each of my customers gets reusable pay-in details that fund my balance. I have the CoinCircuit MCP server connected.

If you have access to the CoinCircuit MCP server, call these tools for the most accurate and detailed schema outputs:

Use the live MCP data as your source of truth. The details below are a guide, but if the MCP returns something different, trust the MCP.

API Basics

Project Context

I want each of my customers to have a fixed place to send me funds: a permanent crypto address on each blockchain, and a Nigerian bank account number for fiat transfers. The customer reuses the same details for every deposit, and CoinCircuit detects each one, attributes it to that customer, and credits it to my balance.

The flow:

  1. Create a deposit account for a customer.
  2. Issue one or more pay-in identities on it (a crypto address on a blockchain, or an NGN virtual account).
  3. Show the address or account number to the customer.
  4. Listen for deposit webhooks and credit the customer in my own system.

What I Need You to Implement

1. Create a deposit account

Endpoint: POST /api/v1/deposits/accounts (Call get_endpoint with method post, path /api/v1/deposits/accounts in the CoinCircuit MCP for the full request/response schema.)

Response (201): Returns the deposit account with an id. Use that id to issue identities in the next step.

2. Issue a pay-in identity

Endpoint: POST /api/v1/deposits/accounts/{id}/identities (Call get_endpoint with method post, path /api/v1/deposits/accounts/{id}/identities in the CoinCircuit MCP for the exact request body.)

There are two identity types:

Issue both on the same account so a customer can fund by crypto or by bank transfer.

3. Show the details to your customer

Display the crypto address (with its blockchain and a QR code) or the bank account number. The customer reuses the same details every time; do not issue a new identity per deposit.

4. Handle deposit webhooks

(Call get_schema with name DepositDto in the CoinCircuit MCP for every field in the deposit payload.)

The deposit webhook payload is { event, data }, where data is the deposit object:

Deposit events:

Webhook security: verify the HMAC-SHA256 signature in the x-coincircuit-signature header, and use x-coincircuit-delivery-id for idempotency.

5. List and reconcile deposits

Constraints