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

  1. 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 are USD, EUR, GBP, and CHF.

  2. From the inTandem SDK, navigate to the paygateproxy route, passing a cartItemsToPurchase array. 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 cartItemsToPurchase value is a JSON array, so remember to URL-encode it.

  3. Only offering_uid drives 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

FieldRequiredDescription
offering_uidYesThe offering UID supplied by our team. Determines the price, currency, and billing period actually charged.
nameNo (display only)The offering name shown to the user during checkout.
billing_periodNo (display only)Billing period label shown to the user (e.g. monthly, annually). Actual period comes from the price record.
currencyNo (display only)Currency label shown to the user. Actual currency comes from the price record.
priceNo (display only)Price label shown to the user. Actual price comes from the price record.
📘

Important

The supported payment_type for an offering is only monthly, annually, or single_charge.



Did this page help you?