Donation / Tip Page
Accept crypto donations or tips with a shareable page.
Open the interactive version or read this guide as markdown.
Tags: Payment Pages, Payments, Frontend
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 a crypto donation/tip page to my existing site using CoinCircuit. 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:
- Call
get_endpointwith methodpostand path/api/v1/payments/pagesin the CoinCircuit MCP for the full payment page creation schema. - Call
get_endpointwith methodpostand path/api/v1/paymentsfor the checkout session creation schema (needed for Option B). - Call
search_apiwith featurePayment Pagesto see all available payment page endpoints (create, update, delete, list). - Call
get_schemawith namePaymentCompletedWebhookDtofor the payment.completed webhook payload.
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
- Base URL:
https://api.coincircuit.io - Auth:
x-api-keyheader on every request.
Project Context
I have a site and I'm adding a public page where supporters can donate any amount in crypto.
What I Need You to Implement
Option A: Payment Page (zero backend, simplest approach)
CoinCircuit has hosted payment pages with open-amount input. One API call and you get a shareable URL.
Endpoint: POST /api/v1/payments/pages
(Call get_endpoint with method post, path /api/v1/payments/pages, section request in the CoinCircuit MCP for the exact request body with all field types and validations.)
Required fields:
title(string, 1-100 chars) - e.g. "Support My Project"isActive(boolean) - set totruecurrency(string) -"NGN"or"USD"
Optional fields:
description(string) - displayed on the pageminAmount(number) - minimum donation amountbankAccountIds(array of strings) - associate bank accounts for fiat settlement
Example request:
{
"title": "Support My Project",
"description": "Help me keep building open source tools",
"isActive": true,
"currency": "USD",
"minAmount": 1
}
Response (201): Returns the payment page object:
data.reference- page referencedata.url- the hosted page URL (e.g.https://checkout.coincircuit.io/static/1234567890). Share this anywhere.
(Call get_endpoint with method post, path /api/v1/payments/pages, section success in the CoinCircuit MCP for the full response schema.)
No backend required. Share the URL on social media, your website, or anywhere. Donors enter any amount they choose.
Option B: Custom branded donation page (full UI control)
For full control over the design:
-
Build a frontend with an open amount input field
-
On "Donate" click, your backend creates a checkout session:
Endpoint:
POST /api/v1/payments(Callget_endpointwith methodpost, path/api/v1/payments, sectionexamplein the CoinCircuit MCP for a sample request.)Required fields:
title,description,amount(string),currency,customer(with at leastemail).Store donor info in
metadata:{ "title": "Donation", "description": "Donation from Jane", "amount": "25.00", "currency": "USD", "customer": { "email": "jane@example.com" }, "metadata": { "donorName": "Jane", "message": "Keep up the great work!" }, "successUrl": "https://mysite.com/thanks" } -
Open the checkout SDK modal with the session
reference, or redirect todata.url
Webhook handler
Listen for payment.completed to:
- Display the donor on a public wall (read
data.session.metadata.donorNameanddata.session.metadata.message) - Update a running donation total (read
data.session.amountanddata.session.currency) - Send a thank-you email (read
data.session.customer.email)
(Call get_schema with name PaymentCompletedWebhookDto in the CoinCircuit MCP for every field available in the webhook payload.)
Updating or deleting a payment page
(Call search_api with feature Payment Pages in the CoinCircuit MCP to see all available endpoints: create, update, delete, list, and get by reference.)
PUT /api/v1/payments/pages/{reference}- update title, description, or deactivate the pageDELETE /api/v1/payments/pages/{reference}- delete the page
(Call get_endpoint with method put, path /api/v1/payments/pages/{reference} in the CoinCircuit MCP for the update request schema.)
Constraints
- Payment pages are the zero-code option for basic donation pages
- For custom amounts, validate minimum amount server-side
- Session
amountis a string in fiat (e.g."25.00") - Use
metadatato store donor info without needing CoinCircuit customer records - Supported currencies: NGN, USD