Skip to main content
This guide covers the Billions integration with Tilda’s Custom Payment Gateway. Use this API URL for your production store:
For sandbox testing, use https://api-sandbox.billions.works/integrations/tilda/create with sandbox credentials. Tilda may require the custom gateway template to be enabled or approved for your project.

1. Create credentials

In the Billions account for your chosen environment, open Settings → API, create an API key, and save both values when they are issued: Use the API key UUID in Login, not your Billions merchant ID. The secret is shown once when the key is created. Its hash, a webhook signature, or a signature from one order cannot replace it. Keep it out of URLs, browser code, and messages. This integration uses a regular Billions API key.

2. Create a Tilda gateway

Open your Tilda site and go to Site Settings → Payment Systems → Custom Payment Gateway → New payment system (for developers). If your project does not show this option, follow Tilda’s custom gateway approval process. The site’s cart currency must match the gateway currency. Changing the cart currency affects the entire Tilda site, not just a test page. Configure electronic receipts according to your merchant’s jurisdiction.

3. Map the order fields

In Advanced settings, set API URL to the production endpoint above (or the sandbox endpoint for testing) and use this field mapping: Order time, phone number, image, and additional fields may be left blank when not needed. url_return is optional. Map Tilda’s generated Notification URL to url_callback; Tilda then sends it with each order, so it does not need to be copied into your Billions dashboard.
The endpoint accepts form fields and redirects to the Billions-hosted checkout after a valid order. A repeated order with the same key, amount, currency, and callback reuses its invoice. Changing those values for the same order returns 409.

4. Configure the order signature

In Tilda’s Order signature settings, select: Billions excludes sign and signature, sorts the remaining non-empty field names, joins their values with | after the secret, and compares the lowercase MD5 digest. Every additional non-empty field participates in the signature. See Tilda’s signature configuration guide.

5. Configure the payment notification

In Tilda’s Notification settings, use the same signature rules as the order and set: Use payment_id, not uuid: the current Billions notification sends the invoice ID as payment_id. The notification is form-encoded and signed using the same secret. Tilda marks the order paid only after receiving a valid notification with the expected order number, amount, and status. A customer returning from the checkout page does not confirm payment.

6. Check the payment flow

Publish a page with a product and shopping cart, then place a small order. The customer should be redirected to a Billions-hosted payment page. After payment, open Tilda → Leads → Order details → Payment and confirm that the order is marked paid. See Tilda’s guide to leads and orders. Before launch, compare the actual Tilda POST and notification against the configured field mapping and signature rules. In particular, confirm how items is serialized: the current endpoint accepts one field value and rejects repeated fields. Also test an invalid signature, changed amount or currency, duplicate orders, expired invoices, and notification retries.