Overview
Use the Customer Rebates API to retrieve rebate records with pagination. Results include metadata, campaign, payout, merchant details, and core customer contact details so you can power post-purchase workflows, customer lifecycle analytics, rebate velocity reporting, and reconciling payouts.
Method:
GET-
URL:
https://{{Base_URL}}/customers/rebatesAsk your account manager for the full URL
Auth:
API-KEY: ••••••(Header)
Benefits
Check if a rebate customer exists in Brij.
Check if a rebate is in pending, approved, denied, or paid status.
Build dashboards for finance/accounting teams with payout status, amounts, and payment provider info.
-
Feed CRM/CDP/BI with clean, paged records of customer data to:
Enable customer lifecycle journey & general analytics.
Centralize rebate velocity reporting across brands and campaigns.
How to Use
-
Call the endpoint with optional pagination & filtering parameters:
limit(integer): max records per page (e.g.,100)page(integer): page index (e.g.,1)-
emails(string): one or multiple emails to search as a comma separated listexample: emails=info@brij.it
-
example: emails=info@brij.it,demo@brij.it
which is actually sent as: emails=info%40brij.it%2C%20demo%40brij.it
-
phones(string): one or multiple phone numbers to search as a comma separated list. Always include the country code without the +.example: phones=16198675309
-
example: phones=1619
this will return numbers within this area code. you can do the first parts of a number but only if the beginning is included. phones=5309 will not return the above results using this parameter, use the 'search' parameter for partial matches of the end of a phone number instead.
-
search(string): a search term to find possible matches using any part of a phone number. This does not yet search partial matches of emails, that will be added in a future update.example: search=619
-
createdFrom(string, optional): To search for rebates created within a certain time period, use these date parameters. This filters using the Rebate Initiation Date, which is when the customer submitted their phone number to begin the registration flow.example: createdFrom=2025-10-01
example: createdFrom=2025-10-01T11:03:14.482-06:00
-
example: createdFrom=2025-10-01T17:03:14.482Z
which is actually sent as: 2025-10-01T17%3A03%3A14.482Z
-
createdTo(string, optional): end date of the time period being filteredexample: createdTo=2025-12-31
-
Include your API key in the
API-KEYheader.API keys can be created within the Brij platform under Settings > Integrations and scrolling to the bottom. This feature is not included in all plans, please speak with your Account Manager to enable it.
The Customers Read permission is needed for this endpoint.
-
Parse the response:
data: array of rebate objects as shown belowlimit: echo of your requested limitpageInfo: pagination metadatareturnedCount: number of records in this page
Example (cURL)
curl --location 'https://{{Base_URL}}/customers/rebates?limit=100&page=1&createdFrom=2025-10-01T00%3A00%3A00.000Z&createdTo=2026-03-31T23%3A59%3A59.999Z' \
--header 'API-KEY: ••••••' \Primary Response fields (high-level)
On a successful request, the API will return a JSON response with the following structure:
-
data (array): An array containing registration objects, each with the following fields:
-
Rebate ID: Unique identifier for each rebate. Even if the customer does 4 rebates, each will have a unique ID. -
Rebate Initiation Date: Date when the rebate was created, meaning the customer phone number was submitted. -
Rebate Submission Date: Date when a valid receipt was submitted, starting the review process. -
Rebate Approval Date: Date when an admin approved the rebate from within Brij, confirming the receipt meets the campaign criteria -
Payment Date: Date when the rebate payout was sent to the customer. -
Payout Amount: Dollar value paid to the customer, including $ symbol. 'null' if payment was not made. -
Rebate Status: Current status of the rebate. Values can be: Initiated, Pending, Approved, Denied or Paid. -
Campaign Start & End Dates: Designated in the Brij experience, the dates between which the Rebate experience is live. After the end date, the experience redirects to the brand's website. -
Customer Phone Number: Phone number of the customer. Optionally collected using "Complete Profile", "Purchase Details", or a Form Module per the experience registration step configuration. -
Merchant Address: This is extracted from the receipt when available -
Receipt URL: clickable URL to view the receipt image -
Additional fields related to customer preferences, device information, and experience details.
- See Below.
-
Example Response
{
"data": [
{
"Rebate Initiation Date": "15 August 2025 10:03 PM UTC",
"Rebate Submission Date": "15 August 2025 10:03 PM UTC",
"Rebate Approval Date": "15 August 2025 10:03 PM UTC",
"Rebate Denial Date": null,
"Payment Date": "15 August 2025 10:03 PM UTC",
"First Name": null,
"Last Name": null,
"Phone Number": "\"+1 555 123 4567\"",
"First Engagement": "15 August 2025 10:03 PM UTC",
"Last Engagement": "15 August 2025 10:02 PM UTC",
"Total Engagements": 4,
"Latitude": null,
"Longitude": null,
"Country": null,
"Region": null,
"City": null,
"Brand": "\"Brand Name\"",
"Experience Name": null,
"Brij ID": "GTC3",
"Product No./ SKU": null,
"Campaign Name": "\"New Rebate payout\"",
"Rebate Terms": "\"Buy 1 Get $2 Cash Back\"",
"Campaign Start Date": "14 August 2025 7:00 PM UTC",
"Campaign End Date": "15 September 2025 6:59 PM UTC",
"Max Rebate Amount": "$ 2",
"Payout Amount": "$2",
"Rebate Status": "Paid",
"Approval Method": "Manual",
"Payment Status": "PAID",
"Payment Method": "Paypal API",
"Payer Account": "@venmo-account",
"Payout Order": null,
"Payment Provider": "Venmo",
"Paypal Transaction ID": "ABC-ABCD-A3nsdhtALDiFzWaIQteu",
"Approved by": null,
"Merchant Name": "Meijer",
"Merchant Address": "\"2333 S. Center Rd.\"",
"Merchant City": "\"Burton\"",
"Merchant State": "\"MI\"",
"Merchant Zip Code": "\"48519\"",
"Purchase Date": null,
"Receipt(s)": "\"https://api.twilio.com/2010-04-01/Accounts/ACda39c04sdger34574fbb7db7fg5e2a/Messages/MMaa735d9d2sdfh5756h014567af2d267/Media/MEd40769d31826548435b5a53f179e6gh\"",
"Single SMS Consent": "True",
"Rebate ID": "AWiI",
"Denial Justification": null
},
{
"Rebate Initiation Date": "22 January 2026 1:56 PM UTC UTC",
"Rebate Submission Date": "24 November 2024 12:00 AM UTC UTC",
"Rebate Approval Date": null,
"Rebate Denial Date": "26 February 2026 7:54 PM UTC UTC",
"Payment Date": null,
"First Name": null,
"Last Name": null,
"Phone Number": "\"+1 555 867 5309\"",
"First Engagement": "26 February 2026 7:54 PM UTC UTC",
"Last Engagement": "22 January 2026 1:53 PM UTC UTC",
"Total Engagements": 3,
"Latitude": null,
"Longitude": null,
"Country": null,
"Region": null,
"City": null,
"Brand": "\"Brand Name\"",
"Experience Name": null,
"Brij ID": "P13S",
"Product No./ SKU": null,
"Campaign Name": "\"Email Communication Test\"",
"Rebate Terms": "\"Buy 1 Get $11 Cash Back\"",
"Campaign Start Date": "24 September 2025 6:00 AM UTC UTC",
"Campaign End Date": "25 September 2026 5:59 AM UTC UTC",
"Max Rebate Amount": "$ 45",
"Payout Amount": null,
"Rebate Status": "Denied",
"Approval Method": "Manual",
"Payment Status": null,
"Payment Method": "Paypal API",
"Payer Account": "@venmo-account",
"Payout Order": null,
"Payment Provider": "Venmo",
"Paypal Transaction ID": null,
"Approved by": null,
"Merchant Address": "\"123 Sesame St\"",
"Merchant City": "\"Los Angeles\"",
"Merchant State": "\"CA\"",
"Merchant Zip Code": "\"90210\"",
"Purchase Date": "24 November 2024 12:00 AM UTC UTC",
"Receipt(s)": "\"https://base-url.s3.us-east-1.amazonaws.com/files/r4nd0mstri17g.png\"",
"Single SMS Consent": null,
"Rebate ID": "GIj0",
"Denial Justification": "\"Testing denial reasons\""
}
],
"limit": 100,
"pageInfo": "Page 1 of 1",
"returnedCount": 2
}FAQ & Troubleshooting
What status codes should I expect?
200 OKon success. Handle non-200s per your HTTP client’s error logic.
Why is returnedCount less than limit?
You’re on the last page or there were fewer results than requested. Use
pageto iterate.
How do I get all rebates?
Iterate
pageuntilreturnedCountis 0 (or less than yourlimit) and don't include any date filter parameters.
Which fields are guaranteed?
Field presence can vary by rebate, as data collection is configurable per experience in Brij; always code defensively for optional fields.
-
If no records are found, the response will be similar to below
{ "data": [], "limit": 100, "pageInfo": "Page 1 of 0", "returnedCount": 0 }
I don’t see payout details for some rebates.
Fields like payment provider, transaction ID, or payer account may be blank until processing fully completes. Rebate approval and payout are different steps, so a rebate can be approved and not yet paid.