{
  "meta": {
    "generated": "2026-09-21",
    "source": "lib/capabilities.ts",
    "idScheme": "capability:<id>"
  },
  "note": "marketDependent means availability varies by country. Settlement is deliberately not market dependent: it works everywhere.",
  "capabilities": [
    {
      "id": "capability:collection",
      "name": "Accept payments",
      "summary": "Charge a mobile money wallet, card, bank account or PayPal.",
      "status": "live",
      "marketDependent": true,
      "audience": "business",
      "apiRoute": "/v1/payments",
      "docs": "https://ultraner.com/docs"
    },
    {
      "id": "capability:checkout",
      "name": "Hosted checkout",
      "summary": "A payment page Ultraner hosts, with every method the payer can use.",
      "status": "live",
      "marketDependent": true,
      "audience": "business",
      "apiRoute": "/v1/pay",
      "docs": "https://ultraner.com/resources/payments/universal-checkout"
    },
    {
      "id": "capability:payment-links",
      "name": "Payment links",
      "summary": "A shareable link or QR that takes a payment with no integration at all.",
      "status": "live",
      "marketDependent": true,
      "audience": "business",
      "apiRoute": "/v1/business",
      "docs": "https://ultraner.com/docs"
    },
    {
      "id": "capability:disbursement",
      "name": "Payouts to a wallet",
      "summary": "Send money to a payer's mobile money account.",
      "status": "live",
      "marketDependent": true,
      "audience": "business",
      "apiRoute": "/v1/disbursements",
      "docs": "https://ultraner.com/docs",
      "caveat": "Live in Tanzania today; the other markets are being brought up one verified rail at a time. Not to be confused with settlement, which works everywhere."
    },
    {
      "id": "capability:settlement",
      "name": "Settlement to a bank account",
      "summary": "Move your balance to your own bank account by wire.",
      "status": "live",
      "marketDependent": false,
      "audience": "business",
      "apiRoute": "/v1/settlements",
      "docs": "https://ultraner.com/docs"
    },
    {
      "id": "capability:escrow",
      "name": "Escrow",
      "summary": "Hold a payment until delivery is confirmed, then release it.",
      "status": "live",
      "marketDependent": false,
      "audience": "business",
      "apiRoute": "/v1/escrow",
      "docs": "https://ultraner.com/resources/platforms/escrow"
    },
    {
      "id": "capability:subscriptions",
      "name": "Recurring billing",
      "summary": "Charge on a schedule, on mobile money, card or PayPal.",
      "status": "live",
      "marketDependent": false,
      "audience": "business",
      "apiRoute": "/v1/recurring",
      "docs": "https://ultraner.com/help/manage-subscriptions",
      "caveat": "Mobile money sends a fresh prompt each interval, because African networks store no card on file. Card and PayPal charge automatically."
    },
    {
      "id": "capability:invoicing",
      "name": "Invoices",
      "summary": "Issue an invoice and collect against it.",
      "status": "live",
      "marketDependent": false,
      "audience": "business",
      "apiRoute": "/v1/invoices",
      "docs": "https://ultraner.com/docs"
    },
    {
      "id": "capability:payroll",
      "name": "Payroll and batch payouts",
      "summary": "Pay up to 500 people in one submitted batch.",
      "status": "live",
      "marketDependent": true,
      "audience": "business",
      "apiRoute": "/v1/payroll",
      "docs": "https://ultraner.com/docs",
      "caveat": "Reaches a wallet only where disbursement is live; otherwise settle and pay onward."
    },
    {
      "id": "capability:split-payouts",
      "name": "Split payouts (Streamline)",
      "summary": "Onboard your own sellers, take a cut, and pay out the rest.",
      "status": "live",
      "marketDependent": false,
      "audience": "business",
      "apiRoute": "/v1/business/streamline",
      "docs": "https://ultraner.com/docs",
      "caveat": "Refunding a split payment reverses the platform fee too. If the money has already been withdrawn the balance can go below zero, and it has to be topped up before any further payout."
    },
    {
      "id": "capability:fx",
      "name": "Currency conversion",
      "summary": "A payer pays in their currency, you are credited in yours.",
      "status": "live",
      "marketDependent": false,
      "audience": "business",
      "apiRoute": "/v1/fx",
      "docs": "https://ultraner.com/help/adaptive-pricing"
    },
    {
      "id": "capability:cross-border",
      "name": "Cross-border payments",
      "summary": "A payer in one market paying a business in another.",
      "status": "live",
      "marketDependent": true,
      "audience": "business",
      "apiRoute": "/v1/crossborder",
      "docs": "https://ultraner.com/docs"
    },
    {
      "id": "capability:refunds",
      "name": "Refunds",
      "summary": "Return a payment to where it came from.",
      "status": "live",
      "marketDependent": true,
      "audience": "business",
      "apiRoute": "/v1/payments",
      "docs": "https://ultraner.com/docs"
    },
    {
      "id": "capability:webhooks",
      "name": "Webhooks",
      "summary": "Signed events when anything moves, so your system stays in step.",
      "status": "live",
      "marketDependent": false,
      "audience": "business",
      "apiRoute": "/v1/business",
      "docs": "https://ultraner.com/help/receive-a-webhook"
    },
    {
      "id": "capability:promo-codes",
      "name": "Promo codes",
      "summary": "Your own discount codes, applied by the customer at checkout.",
      "status": "live",
      "marketDependent": false,
      "audience": "business",
      "apiRoute": "/v1/business",
      "docs": "https://ultraner.com/help/promo-codes"
    },
    {
      "id": "capability:catalog",
      "name": "Products and prices",
      "summary": "Define what you sell once, then charge from it.",
      "status": "live",
      "marketDependent": false,
      "audience": "business",
      "apiRoute": "/v1/business",
      "docs": "https://ultraner.com/docs"
    },
    {
      "id": "capability:entitlements",
      "name": "Features and entitlements",
      "summary": "Check whether a customer's subscription grants access to something.",
      "status": "live",
      "marketDependent": false,
      "audience": "business",
      "apiRoute": "/v1/business",
      "docs": "https://ultraner.com/docs"
    },
    {
      "id": "capability:qr",
      "name": "QR payments",
      "summary": "A printed or displayed code that opens your checkout.",
      "status": "live",
      "marketDependent": true,
      "audience": "business",
      "apiRoute": "/v1/qr",
      "docs": "https://ultraner.com/docs"
    },
    {
      "id": "capability:bill-pay",
      "name": "Bill payments",
      "summary": "Pay a utility or service bill from a balance.",
      "status": "live",
      "marketDependent": true,
      "audience": "consumer",
      "apiRoute": "/v1/bills",
      "docs": "https://ultraner.com/docs"
    }
  ]
}