Enter at least two characters to search. Searching documentation… No matching sections. Try an endpoint, field or event name.
MCP server
View as MarkdownAn MCP server your AI assistant can use: connect it with your account or an API key, and work your payments in plain language.
On this page
Point an AI assistant at VeliraPay and let it charge customers, raise invoices and check what has been paid, in plain language. The server speaks the Model Context Protocol, and you connect it in one of two ways: sign in with your account, which reaches the organizations you pick among those you own or administer, or pass an API key, which reaches that key's organization and mode alone.
The server tells the assistant to charge a customer with create_charge, passing what it knows, and to reach for an invoice when the customer should choose the coin. It keeps payment links for one reusable public page, and looks for an existing one before making another.
Signing in
Add the server by its address alone. The first time the assistant uses it, a page of VeliraPay opens: sign in if you are not already, confirm it is you, and approve the app.
Copy failed. Select the code and copy it manually.
https://api.velirapay.com/mcp
In Claude, add it as a custom connector. When you approve the app you tick the organizations it may work in, among those you own or administer, and it acts as you there: the activity log names you. Approving needs a passkey or an authenticator app on your account, like creating an API key does, and is asked for again every time an app signs in. Disconnect an app at any time under Settings → Connected apps; it stops working at once. Changing your password or email address, signing out everywhere else or turning off two-factor authentication disconnects every app too.
Every tool then takes two more arguments: organization, an id from list_organizations, which can be left out when you have only one, and mode, live or test, which is live when left out.
With an API key
Copy failed. Select the code and copy it manually.
{
"mcpServers": {
"velirapay": {
"type": "http",
"url": "https://api.velirapay.com/mcp",
"headers": { "Authorization": "Bearer vp_live_…" }
}
}
}
That is the shape Claude Desktop, Claude Code and most other clients use; a client that speaks only stdio can reach it through a bridge such as mcp-remote. A key is bound to its organization and mode: with a vp_test_ key the server only ever sees and makes test objects.
A restricted key only works the tools its permissions cover. Every tool is still listed, whatever the key may do, and calling one it may not use answers with the permission it lacks and how to add it. A key limited to IP addresses only works from those. The permission each tool needs is listed under Authentication. To let an assistant answer questions without changing anything, give it a key with only the read permissions. An owner or admin can change a key's permissions and addresses later on the API keys page. The key stays the same, so nothing changes in the assistant: its next call follows the change, without reconnecting.
Tools
| Tool | What it does |
|---|---|
list_organizations
|
List the organizations the connection can work in, with their ids. Signed in with your account, that is the ones you picked when approving the app, among those you own or administer. |
create_organization
|
Create a new organization you own, which the app may then work in. Signed in with your account only. |
get_account
|
Read an organization, its default currency, the currencies it can price in and the coins it can be paid in. Worth calling before the rest. |
update_account
|
Change the organization's name, public profile, checkout and invoice settings and business details. Logos stay in the dashboard. |
update_payment_settings
|
Change the default currency, the payment tolerances, the checkout language and invoice reminders. |
list_assets
|
List the coins on offer: their network, whether the organization takes them and the lowest price each can be charged at. |
get_overview
|
Read the dashboard's figures: the last 30 days' volume and conversion, where customers drop out, and what needs a person now. |
list_members
|
List the organization's members and their roles. |
update_member_role
|
Make a member an admin or a member. Owners only, and never an owner's own role. |
remove_member
|
Remove a member, which also revokes the API keys they made. Owners only, and never an owner. |
list_invitations
|
List the invitations nobody has accepted yet. |
invite_member
|
Email someone an invitation to join as a member or an admin. |
cancel_invitation
|
Withdraw an invitation nobody has accepted yet. |
start_pro_payment
|
Start paying for a month of Pro in crypto, answering with the checkout to pay it on. Live mode only. |
list_charges
|
List payments by state, payment link, coin, date or customer, or read one with its transactions and refunds (without its timeline). |
create_charge
|
Charge a customer: ask for one payment in a chosen coin, with whatever is already known about them and the order. The default way to be paid. |
send_charge
|
Email a customer the payment page of a charge still waiting to be paid. |
cancel_charge
|
Close a charge that is still waiting to be paid. |
accept_charge
|
Accept an underpaid charge or a late payment as paid for what arrived. |
record_refund
|
Write down a refund the merchant sent from their own wallet. It moves nothing. |
simulate_payment
|
Pay a test-mode charge without coins, to try a whole payment. |
list_invoices
|
List invoices by state or customer, including only the overdue ones. |
create_invoice
|
Bill a customer for a total or a list of items, optionally emailing it, for a bill to pay later or when the customer should choose the coin. |
send_invoice
|
Email an open invoice, or chase it as a reminder; sent_as in the answer says which. |
void_invoice
|
Withdraw an open invoice raised by mistake. |
list_payment_links
|
Find links by title or state, or read one, with their view counts and whether they still take payments. |
create_payment_link
|
Make one reusable public checkout page for many customers, fixed price or open amount. Not for charging one customer. |
update_payment_link
|
Change a link's wording, price, amount range, accepted coins, questions, expiry or limit, or archive and restore it. |
list_coupons
|
Find coupons by code, or read one, with their limits and how many paid charges used each. |
create_coupon
|
Make a discount code: a percentage or a fixed amount off, with optional limits. |
update_coupon
|
Change a coupon's limits or expiry, or pause and resume it. |
delete_coupon
|
Delete a coupon for good. Charges that used it keep their discount. |
list_payouts
|
List what became of paid charges by state or coin, or read one: what came in, the fee, what landed and the transaction that carried it. |
get_payout_summary
|
Add up per coin what has been paid out, what is on its way and what is still owed. |
list_payout_addresses
|
See where payouts go on each network, which networks have no address yet and whether payouts to a new one still wait. |
set_payout_address
|
Point the payouts of one network at an address, once an owner has switched on changes through the API. |
remove_payout_address
|
Remove the payout address of one network, likewise. |
list_events
|
List what happened to charges and invoices, the same events webhook endpoints receive, or read one. |
list_webhook_endpoints
|
See the organization's webhook endpoints, or one, whether they are active and verified, and how many deliveries failed. |
create_webhook_endpoint
|
Add an endpoint and send it its verification challenge. The answer carries its signing secret, shown this once. |
update_webhook_endpoint
|
Change an endpoint's URL, events or note, or pause and resume it. A new URL has to be verified again. |
delete_webhook_endpoint
|
Delete an endpoint and its delivery history for good. |
verify_webhook_endpoint
|
Send an endpoint its verification challenge again, once the receiver can answer it. |
send_test_webhook
|
Send a verified endpoint a sample charge.paid event, marked as a test. |
rotate_webhook_secret
|
Replace an endpoint's signing secret; the old one keeps signing for 24 hours. |
list_webhook_deliveries
|
See what one endpoint was sent: each event, whether it got through, how many attempts it took and what the endpoint answered. |
retry_webhook_delivery
|
Send one of an endpoint's deliveries again, once the receiver is fixed. |
list_api_keys
|
List the organization's active API keys in a mode, with their permissions and addresses, never the keys themselves. |
create_api_key
|
Make a key for a server or an integration. The answer carries the key, shown this once. |
update_api_key
|
Change a key's name, permissions or addresses, from its next request. |
revoke_api_key
|
Revoke a key for good. |
list_activity
|
Read the activity log: who did what and from where, sign-ins included. Needs a key with the sensitive activity:read permission. |
read_documentation
|
Read any page of this documentation as Markdown, or list the pages. |
The answers are the REST API's own objects. Lists come back as data with page, per_page, total and has_more instead of meta and links. The server does not take an Idempotency-Key.
What it will not do
- Change payout addresses unless an owner switched on changes through the API under Payment settings. Where your money goes stays with a person until then, and every change is emailed to owners and admins.
- Move money. Payouts to your wallet are automatic and cannot be raised, redirected or reversed from here, and a refund is something you send by hand and then record.
- Show a signing secret or an API key again. Each is shown once, in the answer that makes it; a lost one is rotated or replaced, not read back.
- Reach further than the key it is connected with. A key made, changed or revoked through another key can have no permission and no address that key lacks, and roles and removals need a key an owner made.
- Change or remove an owner, make anyone an owner, approve or disconnect apps, pay for Pro by card, or delete an organization. Those stay in the dashboard, behind your password and a second factor.
- Reach an organization it was not given. Signed in, that is any organization you did not pick when approving it, or are no longer an owner or admin of; with a key, any but the key's. An id belonging to anybody else simply is not found.
The tools do write: they create charges, invoices and coupons, email customers, accept charges as paid and archive links, and, given the permissions for it, change settings, add webhook endpoints, make API keys and invite or remove members. Only connect an assistant you are happy to let do that, and disconnect it, or narrow or revoke its key under Developers → API keys, if you change your mind. Each organization's activity log records apps being connected and disconnected, and shows the payment links it creates, changes, archives and restores, the coupons it creates, changes and deletes, the charges it emails, cancels and accepts, the refunds it records and the invoices it voids; the charges and invoices it creates, and the invoices it emails, show in their own lists instead. Requests count towards the same rate limit as the REST API.
Reading the documentation without the server? Every page is also Markdown, by adding .md to its address. https://velirapay.com/llms.txt is a map of them, and https://velirapay.com/llms-full.txt is all of it in one file.