Xaurr payments for Ghana, Kenya, Uganda, Nigeria: docs, test checkouts, Payouts, invoices, links
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Bearer sk_test_... (your Xaurr test API key). Docs and help tools work without it.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
This account's own go-live checklist: what is done and what is still missing before live keys take real payments (GET /account/readiness).
This tool takes no arguments.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http mcp https://mcp.xaurr.com
Headers
Authorization (optional, not in the config above): Bearer sk_test_... (your Xaurr test API key). Docs and help tools work without it.This account's own go-live checklist: what is done and what is still missing before live keys take real payments (GET /account/readiness).
No arguments.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}Xaurr Connect: with the OPERATOR's test key, check they are connected to your platform (GET /platform-connection).
| Argument | Type | Description |
|---|---|---|
| platform* | string | Your platform code, PLT-... |
{
"type": "object",
"required": [
"platform"
],
"properties": {
"platform": {
"type": "string",
"description": "Your platform code, PLT-..."
}
},
"additionalProperties": false
}Create an invoice document (POST /invoices), the same as Create Invoice in the app. Needs a LIVE key: invoices are real documents. Ask the user to confirm first.
| Argument | Type | Description |
|---|---|---|
| items* | array | |
| notes | string | |
| currency* | string | |
| due_date | string | YYYY-MM-DD |
| client_name* | string | |
| client_email | string | |
| client_phone | string |
{
"type": "object",
"required": [
"client_name",
"currency",
"items"
],
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"required": [
"description",
"quantity",
"unit_price"
],
"properties": {
"quantity": {
"type": "number"
},
"unit_price": {
"type": "number"
},
"description": {
"type": "string"
}
}
}
},
"notes": {
"type": "string"
},
"currency": {
"enum": [
"GHS",
"KES",
"UGX",
"NGN",
"USD"
],
"type": "string"
},
"due_date": {
"type": "string",
"description": "YYYY-MM-DD"
},
"client_name": {
"type": "string"
},
"client_email": {
"type": "string"
},
"client_phone": {
"type": "string"
}
},
"additionalProperties": false
}Create a reusable payment link (POST /payment-links), paid into your own account in the currency's country. Test key = test link; live key = a real link to share. Ask the user to confirm before creating a live link.
| Argument | Type | Description |
|---|---|---|
| title* | string | |
| amount | number | null | Fixed price, or null to let the payer choose. |
| currency* | string | |
| description | string | |
| ships_goods | boolean |
{
"type": "object",
"required": [
"title",
"currency"
],
"properties": {
"title": {
"type": "string"
},
"amount": {
"type": [
"number",
"null"
],
"description": "Fixed price, or null to let the payer choose."
},
"currency": {
"enum": [
"GHS",
"KES",
"UGX",
"NGN",
"USD"
],
"type": "string"
},
"description": {
"type": "string"
},
"ships_goods": {
"type": "boolean"
}
},
"additionalProperties": false
}Create a TEST hosted checkout (POST /checkout-sessions) and return its pay url. Needs a test key with write permission.
| Argument | Type | Description |
|---|---|---|
| title | string | |
| amount* | number | The total, at most 2 decimals. |
| currency* | string | |
| platform | string | Platforms only: your platform code (PLT-...). |
| cancelUrl | string | |
| reference* | string | Your order number, 1-64 characters. |
| successUrl* | string | https:// (or http://localhost) return address. |
| platformFee | number | Platforms only: your own fee on this sale. |
{
"type": "object",
"required": [
"reference",
"amount",
"currency",
"successUrl"
],
"properties": {
"title": {
"type": "string"
},
"amount": {
"type": "number",
"description": "The total, at most 2 decimals."
},
"currency": {
"enum": [
"GHS",
"KES",
"UGX",
"NGN",
"USD"
],
"type": "string"
},
"platform": {
"type": "string",
"description": "Platforms only: your platform code (PLT-...)."
},
"cancelUrl": {
"type": "string"
},
"reference": {
"type": "string",
"description": "Your order number, 1-64 characters."
},
"successUrl": {
"type": "string",
"description": "https:// (or http://localhost) return address."
},
"platformFee": {
"type": "number",
"description": "Platforms only: your own fee on this sale."
}
},
"additionalProperties": false
}Explain an error message returned by the Xaurr API and how to fix it.
| Argument | Type | Description |
|---|---|---|
| message* | string |
{
"type": "object",
"required": [
"message"
],
"properties": {
"message": {
"type": "string"
}
},
"additionalProperties": false
}The full reference for one part of the API. Sections: authentication, checkout-sessions, get-checkout, payments, quote, connect, payouts, links-invoices, webhooks, embed, countries.
| Argument | Type | Description |
|---|---|---|
| section* | string |
{
"type": "object",
"required": [
"section"
],
"properties": {
"section": {
"enum": [
"authentication",
"checkout-sessions",
"get-checkout",
"payments",
"quote",
"connect",
"payouts",
"links-invoices",
"webhooks",
"embed",
"countries"
],
"type": "string"
}
},
"additionalProperties": false
}Status of one checkout by your own order reference (GET /checkout-sessions/:reference).
| Argument | Type | Description |
|---|---|---|
| reference* | string |
{
"type": "object",
"required": [
"reference"
],
"properties": {
"reference": {
"type": "string"
}
},
"additionalProperties": false
}Where to download the machine-readable OpenAPI 3.1 description of the Xaurr API, for code generators and API tools.
No arguments.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}One payment by its receipt number (GET /payments/:receipt).
| Argument | Type | Description |
|---|---|---|
| receipt* | string |
{
"type": "object",
"required": [
"receipt"
],
"properties": {
"receipt": {
"type": "string"
}
},
"additionalProperties": false
}What is needed before live keys take real payments.
No arguments.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}Tested starting code to create a Xaurr checkout from a server, or to verify a webhook. Stacks: node, nextjs, laravel, php, django, flutter, wordpress, webhook.
| Argument | Type | Description |
|---|---|---|
| stack* | string |
{
"type": "object",
"required": [
"stack"
],
"properties": {
"stack": {
"enum": [
"node",
"nextjs",
"laravel",
"php",
"django",
"flutter",
"wordpress",
"webhook"
],
"type": "string"
}
},
"additionalProperties": false
}Your invoices, newest first, optionally only unpaid or paid (GET /invoices). Shows which are overdue. Needs a LIVE key: invoices are real documents.
| Argument | Type | Description |
|---|---|---|
| limit | number | |
| status | string |
{
"type": "object",
"required": [],
"properties": {
"limit": {
"type": "number",
"maximum": 100,
"minimum": 1
},
"status": {
"enum": [
"unpaid",
"paid"
],
"type": "string"
}
},
"additionalProperties": false
}Your payment links for the key's environment, with how many times each was paid (GET /payment-links).
| Argument | Type | Description |
|---|---|---|
| limit | number |
{
"type": "object",
"required": [],
"properties": {
"limit": {
"type": "number",
"maximum": 100,
"minimum": 1
}
},
"additionalProperties": false
}The most recent test payments on the account (GET /payments).
| Argument | Type | Description |
|---|---|---|
| limit | number |
{
"type": "object",
"required": [],
"properties": {
"limit": {
"type": "number",
"maximum": 50,
"minimum": 1
}
},
"additionalProperties": false
}Your test webhooks and their last 10 deliveries (GET /webhooks). No secrets are shown.
No arguments.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}Mark one of your invoices paid (POST /invoices/:id/mark-paid); it is also recorded in bookkeeping. Needs a LIVE key. Ask the user to confirm first.
| Argument | Type | Description |
|---|---|---|
| invoice_id* | string |
{
"type": "object",
"required": [
"invoice_id"
],
"properties": {
"invoice_id": {
"type": "string"
}
},
"additionalProperties": false
}Pay (or fail) a TEST checkout with the right sandbox test number for its country and payout speed, like a customer would, so you see real statuses and webhooks without a phone. Ghana, Kenya and Uganda.
| Argument | Type | Description |
|---|---|---|
| outcome | string | |
| reference* | string |
{
"type": "object",
"required": [
"reference"
],
"properties": {
"outcome": {
"enum": [
"success",
"fail"
],
"type": "string"
},
"reference": {
"type": "string"
}
},
"additionalProperties": false
}Xaurr Payouts: the ways a customer can pay in one currency's country (GET /collections/methods).
| Argument | Type | Description |
|---|---|---|
| currency* | string |
{
"type": "object",
"required": [
"currency"
],
"properties": {
"currency": {
"enum": [
"GHS",
"KES",
"UGX",
"NGN"
],
"type": "string"
}
},
"additionalProperties": false
}Xaurr Payouts: add a test worker (POST /workers). Returns their onboarding_url.
| Argument | Type | Description |
|---|---|---|
| name* | string | |
| string | ||
| phone | string | |
| currency | string | |
| reference* | string | Your own id for them. |
{
"type": "object",
"required": [
"name",
"reference"
],
"properties": {
"name": {
"type": "string"
},
"email": {
"type": "string"
},
"phone": {
"type": "string"
},
"currency": {
"enum": [
"GHS",
"KES",
"UGX",
"NGN"
],
"type": "string"
},
"reference": {
"type": "string",
"description": "Your own id for them."
}
},
"additionalProperties": false
}Xaurr Payouts: your test balance (GET /balance), optionally for one currency.
| Argument | Type | Description |
|---|---|---|
| currency | string |
{
"type": "object",
"required": [],
"properties": {
"currency": {
"enum": [
"GHS",
"KES",
"UGX",
"NGN"
],
"type": "string"
}
},
"additionalProperties": false
}Xaurr Payouts: ask a customer to pay into your balance by Mobile Money (POST /collections). Use test_values numbers.
| Argument | Type | Description |
|---|---|---|
| phone* | string | |
| amount* | number | |
| worker | string | Optional worker id to credit a share. |
| currency* | string | |
| reference* | string | |
| payer_name | string | |
| worker_share | number |
{
"type": "object",
"required": [
"amount",
"currency",
"phone",
"reference"
],
"properties": {
"phone": {
"type": "string"
},
"amount": {
"type": "number"
},
"worker": {
"type": "string",
"description": "Optional worker id to credit a share."
},
"currency": {
"enum": [
"GHS",
"KES",
"UGX",
"NGN"
],
"type": "string"
},
"reference": {
"type": "string"
},
"payer_name": {
"type": "string"
},
"worker_share": {
"type": "number"
}
},
"additionalProperties": false
}Xaurr Payouts: credit a worker's earnings from your balance (POST /workers/:id/earnings).
| Argument | Type | Description |
|---|---|---|
| amount* | number | |
| reference* | string | |
| worker_id* | string |
{
"type": "object",
"required": [
"worker_id",
"amount",
"reference"
],
"properties": {
"amount": {
"type": "number"
},
"reference": {
"type": "string"
},
"worker_id": {
"type": "string"
}
},
"additionalProperties": false
}Xaurr Payouts: one collection's status (GET /collections/:id).
| Argument | Type | Description |
|---|---|---|
| collection_id* | string |
{
"type": "object",
"required": [
"collection_id"
],
"properties": {
"collection_id": {
"type": "string"
}
},
"additionalProperties": false
}Xaurr Payouts: one payout's status (GET /withdrawals/:id): queued, paid, returned or needs_review.
| Argument | Type | Description |
|---|---|---|
| withdrawal_id* | string |
{
"type": "object",
"required": [
"withdrawal_id"
],
"properties": {
"withdrawal_id": {
"type": "string"
}
},
"additionalProperties": false
}Xaurr Payouts: one worker's status, by their id or by your own reference (GET /workers/:id or /workers?reference=).
| Argument | Type | Description |
|---|---|---|
| reference | string | |
| worker_id | string |
{
"type": "object",
"required": [],
"properties": {
"reference": {
"type": "string"
},
"worker_id": {
"type": "string"
}
},
"additionalProperties": false
}Xaurr Payouts: pay a worker out of their earnings (POST /workers/:id/withdrawals). Test money only.
| Argument | Type | Description |
|---|---|---|
| amount* | number | |
| reference* | string | |
| worker_id* | string |
{
"type": "object",
"required": [
"worker_id",
"amount",
"reference"
],
"properties": {
"amount": {
"type": "number"
},
"reference": {
"type": "string"
},
"worker_id": {
"type": "string"
}
},
"additionalProperties": false
}Xaurr Payouts: add TEST money to your balance (POST /balance/test-topup).
| Argument | Type | Description |
|---|---|---|
| amount* | number | |
| currency* | string | |
| reference | string |
{
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"enum": [
"GHS",
"KES",
"UGX",
"NGN"
],
"type": "string"
},
"reference": {
"type": "string"
}
},
"additionalProperties": false
}Xaurr Payouts: one worker's earnings and payouts (GET /workers/:id/history).
| Argument | Type | Description |
|---|---|---|
| worker_id* | string |
{
"type": "object",
"required": [
"worker_id"
],
"properties": {
"worker_id": {
"type": "string"
}
},
"additionalProperties": false
}Platforms (Xaurr Connect): your fee earnings per currency and the latest ones, for the key's environment (GET /platform/earnings). Use your own platform key.
| Argument | Type | Description |
|---|---|---|
| currency | string |
{
"type": "object",
"required": [],
"properties": {
"currency": {
"enum": [
"GHS",
"KES",
"UGX",
"NGN"
],
"type": "string"
}
},
"additionalProperties": false
}Platforms (Xaurr Connect): every operator connected to your platform, with country, agreed maximum fee and whether they can take live payments (GET /platform/operators). Use your own platform LIVE key.
| Argument | Type | Description |
|---|---|---|
| status | string |
{
"type": "object",
"required": [],
"properties": {
"status": {
"enum": [
"active",
"disconnected"
],
"type": "string"
}
},
"additionalProperties": false
}What a payment costs in Ghana cedis (GET /quote): what the customer pays, the fees, and what you receive.
| Argument | Type | Description |
|---|---|---|
| kind | string | |
| mode | string | |
| amount* | number | |
| method | string | |
| payout_to | string |
{
"type": "object",
"required": [
"amount"
],
"properties": {
"kind": {
"enum": [
"in_app",
"storefront",
"plugin",
"fundraiser",
"rent",
"susu",
"plan",
"bulk"
],
"type": "string"
},
"mode": {
"enum": [
"receive",
"charge"
],
"type": "string"
},
"amount": {
"type": "number"
},
"method": {
"enum": [
"mobile_money",
"bank_transfer",
"card"
],
"type": "string"
},
"payout_to": {
"enum": [
"mobile_money",
"bank_transfer"
],
"type": "string"
}
},
"additionalProperties": false
}Ask for a refund of a paid TEST checkout (POST /checkout-sessions/:reference/refund).
| Argument | Type | Description |
|---|---|---|
| reason | string | |
| reference* | string |
{
"type": "object",
"required": [
"reference"
],
"properties": {
"reason": {
"type": "string"
},
"reference": {
"type": "string"
}
},
"additionalProperties": false
}Money received and sent in the last N days, per currency, completed only (GET /summary). Test key = test money; live key = real money.
| Argument | Type | Description |
|---|---|---|
| days | number | 7 for this week, 30 for this month. |
{
"type": "object",
"required": [],
"properties": {
"days": {
"type": "number",
"maximum": 366,
"minimum": 1,
"description": "7 for this week, 30 for this month."
}
},
"additionalProperties": false
}Answer a question about the Xaurr API from the official docs (checkouts, fees, Connect, Payouts, webhooks, countries). Use this instead of guessing.
| Argument | Type | Description |
|---|---|---|
| question* | string | The question, in plain words. |
{
"type": "object",
"required": [
"question"
],
"properties": {
"question": {
"type": "string",
"description": "The question, in plain words."
}
},
"additionalProperties": false
}Send a signed test.ping to one of your test webhooks (POST /webhooks/:id/test). Verify the X-Xaurr-Signature on your side (integration_example webhook).
| Argument | Type | Description |
|---|---|---|
| webhook_id* | string | From list_webhooks. |
{
"type": "object",
"required": [
"webhook_id"
],
"properties": {
"webhook_id": {
"type": "string",
"description": "From list_webhooks."
}
},
"additionalProperties": false
}The phone numbers, cards and values that complete or fail test payments and payouts, per country and payout speed.
No arguments.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}Sales waiting for your payout schedule, the payout fee and what you will receive (GET /payouts/waiting). Needs a LIVE key: this is real money.
No arguments.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}Recent changes to the Xaurr API, newest first.
No arguments.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 11, 2026.