---
title: API's & JSON Check List
slug: apis-and-json-check-list
docTags: WX-732KZOub96_R0NW2HX
createdAt: 2026-03-19T15:44:04.871Z
---

Wildfire API & JSON feeds allow partners to access Wildfire's data-rich affiliate network coupons and cashback opportunities, for partners building their own offer walls, extensions, marketing efforts, and more.&#x20;

Ensure you read through the essential information:

1. &#x20;Regarding our API & JSON structures:&#x20;
   1. [Getting to know the Wildfire JSON Data Feeds](docId\:bBIWQH1XlmeJK6kLSnMkA)
   2. [Syncing Commission Data via API and Callbacks](docId\:kFGi2mirk7rikyMt72ljP)
   3. &#x20;[Coupon Data JSON Structure](docId\:bgHGJznC6ERQN_u55dUCj)&#x20;
   4. [Working with Wildfire Coupon Data](docId\:JA2byX6fk44e3vc7REKJm)&#x20;
2. How to Handle Multiple Countries:&#x20;
   1. [Country filtering and multiple applications](docId:8tnDOXmQ4Z4AFjxrFA0LN)&#x20;
3. How to build links and tracking codes for cashback:
   1. [Creating links](docId\:joeXXcuDNgXRac8Q7AfJi)&#x20;
   2. [Tracking Code (TC) Parameter](docId\:pl3-PhzaUBMp4KwTmQUkx)&#x20;

Feel free to reference this checklist:&#x20;

**Preparation & Setup Logic**

- [ ] **If paying out users, install the Postman Collection**: Use the pre-built collection with the included pre-request script to automatically generate the required HMAC authentication headers for API testing.
- [ ] **Ingest Sample Data**: If live traffic is not yet active, ingest the Public Commission Sample Data (where ApplicationID is 0) to validate your dashboard’s ability to parse and display status changes

**Coupon Data Feed Logic**

Because the Coupon Data Feed provides raw data, the following logic must be implemented in the partner application:

- [ ] **Coupon Data Feed - Normalize Descriptions:** If the Code field is null, parse the Description field to extract coupon code patterns.
- [ ] **Coupon Data Feed - Manual Country Filtering:** The feed is not pre-filtered by region. Partners must filter coupons using the provided country codes to match the user's location.
- [ ] **Coupons Data Feed -** **Date Validity Management:**

:::Paragraph{listStyleType="circle" indent="2"}
Suppress expired promotions.
:::

:::Paragraph{listStyleType="circle" listStart="2" indent="2"}
Handle "coming soon" promotions (future start dates).
:::

:::Paragraph{listStyleType="circle" listStart="3" indent="2"}
Interpret "Year 3000" end dates as "No Expiration."
:::

- [ ] **Coupons Data Feed - Language Handling:** Filter or translate coupons if the merchant passes codes in a language not supported by your UI (e.g., US merchants passing Spanish coupons).

**Merchant & Rate Logic Feed&#xA0;**

- [ ] **Identify rate types:&#x20;**&#x50;ERCENTAGE vs. FLAT. *If a rate is FLAT, check the Currency field (e.g., USD, CAD, EUR).&#xA0;*
- [ ] **Cache Refresh Rate:&#x20;**&#x49;mplement a scheduled task to refresh the Merchant Data Feed at least once every 24 hours. *Optional: Refresh Coupon Data Feeds every 6 hours to capture short-lived offers*
- [ ] **Disclaimer Logic:&#x20;**&#x59;our UI must display "Up to \[X]%" and include disclaimers that rates are subject to change

**Link Construction&#xA0;**

- [ ] **Device ID Generation -** Your system must call POST /device to generate a Device ID for each unique user context before constructing links
- [ ] **If doing Cashback - User Attribution (tc parameter) -&#x20;**&#x54;o attribute a sale to a specific user in your system, you must append \&tc=\[Your\_User\_UUID] to the tracking link. Wildfire will return this value in the commission report
- [ ] **Deep Linking** - When linking to a specific product page, you must URL-encode the target URL and append it as the last parameter (\&url=...) to prevent truncation by browsers
- [ ] **Multi-Country Overide -&#x20;**&#x49;f your application serves users in multiple countries but uses a single App ID, you must detect the user's location and append \&pc=\[CountryCode] (e.g., \&pc=CA) to tracking links to force the correct merchant program

**Compliance Logic**

- [ ] **Accommodate Stand-down Logic -&#x20;**&#x52;egularly ingest the stand-down-policy JSON feed. This contains a list of domains and URL parameters (e.g., afsrc=1) that indicate a user is already affiliated with another publisher
- [ ] **Accommodate Session Suppression** - If a user visits a URL matching the Stand-Down list, your application (extension) must suppress all activation prompts for the duration of the user's session (typically 1 hour)

**Commission Reporting & Payout Logic**

- [ ] **Signature Verification:&#x20;**&#x57;hen receiving a Callback (webhook), calculate the SHA-256 HMAC of the request body using your Callback Key, then compare it to the X-Wf-Signature header to verify authenticity.
- [ ] **De-Duplication:** Callbacks fire on every status change. Your system must upsert (update or insert) records by CommissionID to avoid creating duplicate entries for the same transaction.
- [ ] **Reconciliation (Failsafe)**: Callbacks are "fire and forget" (no retries). You must implement a nightly batch job that uses the Commission API to fetch records modified in the last 24 hours and ensure any missed webhooks are captured.
- [ ] **Status Management**: Do not release funds to users while the status is PENDING or CONFIRMED. Wait for the status to change to **PAID** (or **READY** if you assume the risk) before crediting user wallets.
- [ ] **Split Handling (v4 API)**: They need to handle the split payout and Offer presentation.  You will see two SplitPart values: APPLICATION (your share) and DEVICE (the user's share)



