In-App Purchase
Invoking an in-app purchase is straightforward. You trigger our generic checkout mechanism using an offering UID (also referred to as a purchasable_price_uid) supplied by our team. This single UID defines everything about the charge — the price, the currency, and the billing period — so those values are never trusted from the client.
How it works
-
Get an offering UID from our team. Each UID maps to a specific price record that already carries its own
price,currency, and payment type. Supported currencies areUSD,EUR,GBP, andCHF. -
From the inTandem SDK, navigate to the
paygateproxyroute, passing acartItemsToPurchasearray. Each item in the array describes one offering to purchase:/app/settings/paygateproxy?cartItemsToPurchase=[{"name":"AI Receptionist","billing_period":"monthly","currency":"USD","price":"50.00","offering_uid":"xxxx-xxxx-xxxx"}]The
cartItemsToPurchasevalue is a JSON array, so remember to URL-encode it. -
Only
offering_uiddrives the actual charge. All other fields (name,billing_period,currency,price) are for display only — the real price, currency, and billing period are read from the price record behind the UID, not from the values you pass.
cartItemsToPurchase fields
cartItemsToPurchase fields| Field | Required | Description |
|---|---|---|
offering_uid | Yes | The offering UID supplied by our team. Determines the price, currency, and billing period actually charged. |
name | No (display only) | The offering name shown to the user during checkout. |
billing_period | No (display only) | Billing period label shown to the user (e.g. monthly, annually). Actual period comes from the price record. |
currency | No (display only) | Currency label shown to the user. Actual currency comes from the price record. |
price | No (display only) | Price label shown to the user. Actual price comes from the price record. |
Updated 15 days ago
