Enter at least two characters to search. Searching documentation… No matching sections. Try an endpoint, field or event name.

MCP server

View as Markdown

An 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.

Server address

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

Client settings

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.