Payments
Accept payments from your app's users with Amba as the rail — your app is the seller, Amba takes a configurable platform fee, and the money settles to your own account.
Amba Payments lets your app collect money from its users. Your app is the seller; Amba is the platform that takes a small, configurable fee on each payment; the money settles to your own connected account. You stay the merchant of record for your sales — Amba never holds your funds.
The flow is two parts:
- Onboarding (developer, one time) — create your connected account and complete a hosted setup link. This collects your business + bank details directly; Amba never sees identity documents.
- Charging (runtime) — your backend creates a payment for an order and gets back a client secret; your app completes the payment on-device with the standard payment sheet, using that client secret.
Payments availability is enabled per platform. If a call reports that payments aren't enabled yet,
run amba payments status — the platform owner finishes enabling it before live payments flow.
Onboarding
Create the account and get a hosted setup link in one command:
This prints your account status and a setup URL — open it to finish (business details + bank account). Status updates automatically when setup completes.
Agents can do the same with two MCP tools:
amba_payments_account_create— create the connected account.amba_payments_create_onboarding_link— get the hosted setup URL (surface it to the human as a copy box).
Check progress any time:
charges_enabled must be true before you can take a payment.
The platform fee
Set a default fee taken on every payment, in basis points (250 = 2.5%):
Pass off to clear the default (each charge must then specify its own fee).
A per-charge fee always overrides the default.
Taking a payment
Create the payment from your backend (server key) so the amount and fee are never set by the client:
amount is in the smallest currency unit (cents). The response carries a
client_secret:
Pass the client_secret to your app and complete the payment on-device with the
platform's standard payment sheet — the client_secret is accepted by any
Stripe-compatible mobile/web payment SDK (e.g. the native payment sheet on iOS
and Android, or Stripe.js on the web). Amba does not ship its own confirm
method; you drive the standard payment UI with the secret. Read a payment's
status with GET /v1/client/payments/intents/:id.
Creating a payment requires a server key, never a client key — the amount and fee are money-moving inputs and must originate from your backend.
Balance & payouts
See what you've earned and what's been paid out to your bank:
Or via MCP: amba_payments_balance, amba_payments_payouts.
Reference
| Action | CLI | MCP tool |
|---|---|---|
| Create account | amba payments setup | amba_payments_account_create |
| Hosted setup link | amba payments setup | amba_payments_create_onboarding_link |
| Account status | amba payments status | amba_payments_account_status |
| Default fee | amba payments set-fee <bps> | amba_payments_set_fee |
| Create payment | — (server-side API) | amba_payments_charge |
| Balance | amba payments balance | amba_payments_balance |
| Payouts | amba payments payouts | amba_payments_payouts |
Developer-side routes mount under /v1/admin/projects/:projectId/payments/*
and require developer credentials (a PAT or console session) — payments
configuration is an owner action.