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
Amba takes a platform fee on every payment, and your project's tier sets its minimum. The percentage part is rounded up, and the fixed part is in the payment currency's smallest unit (30 = $0.30 on a USD payment):
| Tier | Minimum platform fee per payment |
|---|---|
| Free | 5% of the amount + 30 minor units |
| Pro | 4% of the amount + 30 minor units |
| Scale | 3.5% of the amount + 30 minor units |
| Enterprise | 3.5% of the amount + 30 minor units |
You can raise the fee. Set a default taken on every payment, in basis points (1000 = 10%):
A per-charge fee (application_fee_amount or platform_fee_bps) overrides
the default. Whatever you ask for, a payment takes at least the tier minimum:
a lower fee, a fee of 0, or no fee at all is raised to it. Pass off to clear
the default, and every payment then takes the minimum. A payment too small to
cover the minimum is refused with 400 FEE_EXCEEDS_AMOUNT. The account read
(amba_payments_account_status) shows your tier's minimum as
platform_fee_minimum.
A refund (amba_payments_refund) returns the refunded amount to your customer
from your balance. Amba keeps the platform fee it took on the payment.
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.