Button
Datafly Signal reports completed orders to the Button Order API server-to-server, with the Button attribution token so Button can credit the publisher that referred the customer.
Prerequisites
Get your API key
Your Button API key is in the Button Dashboard under Settings. Signal sends it as the HTTP Basic username with an empty password.
Keep the attribution token
In apps, read the token from the Button Merchant Library (ButtonMerchant.attributionToken) and send it as the btn_ref property on the purchase. Signal does not yet capture Button’s landing parameter on the web.
Configure in Signal
Configuration Fields
| Field | Required | Description |
|---|---|---|
application_id | No | Not used by the Order API (the API key authenticates it). Leave blank. |
api_key | Yes | Your Button API key (Button Dashboard > Settings). Sent as the HTTP Basic username with an empty password. |
Management UI Setup
- Go to Integrations > Add Integration > Button.
- Choose a preset: Default (
default), Retail (ecommerce), Travel (travel). - Fill in the fields above and click Save.
Request format
A purchase:
POST https://api.usebutton.com/v1/order
{"btn_ref":"srctok-abc123","currency":"GBP","customer":{"email_sha256":"86e0b9e56c17cc4d12387e1949b85053fbe73bc3ce5a1188713a9d300cc6133d","id":"crm-user-9","is_new":true},"line_items":[{"description":"Parka","identifier":"SKU_1","quantity":2,"sku":"SKU_1"},{"description":"Gloves","identifier":"SKU_2","quantity":1,"sku":"SKU_2"}],"order_id":"ORD-1001","purchase_date":"2025-09-22T00:13:20Z","total":25999}Amounts are integers in the currency’s minor units (259.99 GBP is 25999).
Event Mapping
| Signal event | Vendor event | Presets |
|---|---|---|
purchase | order | Default, Retail, Travel |
booking_completed | order | Travel |
Identity
btn_ref (from the btn_ref property, then the btn_ref click or collected ID) attributes the order. Button asks brands to report every order, so orders without a token are sent too. The customer’s email is sent as customer.email_sha256 (SHA-256 of the trimmed, lower-cased address); no plaintext personal data is sent.
Consent
The Order API has no consent field. Assign a consent category to the integration in Signal if Button delivery should depend on consent.
Troubleshooting
| Problem | Solution |
|---|---|
| Totals too high | Button’s total should exclude tax and delivery; Signal sends the purchase value as it arrives. Send a net value. |
| Refunds | Refunds and cancellations are not sent to Button yet. |
Blueprint
The Button blueprint version is 0.3.0. It was last reviewed against the vendor’s documentation on 2026-09-23.