Skip to content

Payment methods, wallets, and mandates

Tinker Payments normalizes payment orchestration across gateway providers while preserving provider-specific capabilities such as wallets and mandates where available.

Connector coverage

Connect your payment providers and manage payments through Tinker Payments. Available payment methods, countries and currencies depend on your provider accounts and settings. Check the setup instructions for the providers you use.

Stripe checkout supports correlated recovery of an uncertain keyed initiation. The other connectors require a saved provider reference for status checks; a missing reference needs operator investigation. Automatic initiation retries and failover are disabled after an ambiguous result. A second provider using the same rail does not establish independent outage protection.

Payment results and settlement

Check the final payment result before fulfilling an order. Investigate uncertain results before retrying or switching providers. Track settlement and delivery of updates to your app as separate steps.

Refunds are requests Tinker Payments reviews before any money moves (see Refunds). The guide explains supported refund paths and what happens after a request is approved.

Method families

  • Cards: core collection through supported provider-hosted flows; recurring billing is a separate workflow.
  • Mobile money: mobile wallet payment rails (for example, M-Pesa).
  • Bank transfers: availability depends on your provider and payment setup.
  • Wallet balances: subscription wallet flows via wallet endpoints in supported currencies.

Mandates (recurring consent)

Mandates depend on your provider. For recurring charges, store and reference provider mandate identifiers according to your subscription billing policy and local regulations. Treat mandate updates and revocations as lifecycle events in your system.

Conceptual metadata only — not a core API request
{
  "payment_method": {
    "type": "mobile_money",
    "provider": "mpesa",
    "country": "KE"
  },
  "wallet": {
    "currency": "KES",
    "balance_reference": "wal_123"
  },
  "mandate": {
    "id": "mdt_123",
    "status": "active"
  }
}