Boogi Cashback APIs ## Sections • [Boogi Cashback API Documentation](https://app.theneo.io/boogi/boogi-cashback-apis/boogi-cashback-as-a-service-apis.md): Welcome to the Boogi Cashback API Documentation. Our APIs and webhooks are designed to empower developers to connect users with cashback offers efficiently and securely. View the status of our platform here Getting Started Sign into your dashboard: https://dashboard.boogi.io To begin your integration, review our API Authentication Explore and implement our REST APIs , Webhooks & SDK • [REST APIs](https://app.theneo.io/boogi/boogi-cashback-apis/rest-apis.md): Use these APIs to handle content, customer data and cashback objects Overview The Boogi API is designed on the REST architecture, offering a lightweight and flexible interface for managing content, customer data, and cashback objects. The API uses standard HTTP methods like GET, PUT, POST, and DELETE to handle CRUD operations performed on the system. All API interactions are conducted over HTTPs and respond with JSON-formatted data. By leveraging these APIs, you can send customer data, display your cashback program, and manage end-user cashback objects, among other key functionalities. • [Status codes](https://app.theneo.io/boogi/boogi-cashback-apis/rest-apis/status-codes.md): Boogi uses conventional HTTP response codes to indicate the success or failure of an API request. In general, Codes in the 2xx range indicate success. Codes in the 4xx range indicate an error that failed given the information provided (e.g., a required parameter was omitted, a charge failed, etc.). Codes in the 5xx range indicate an error with Boogi servers (these are rare). • [API Authentication](https://app.theneo.io/boogi/boogi-cashback-apis/rest-apis/authentication.md): The Boogi Cashback API uses API keys to authenticate requests. You can view and manage your API keys in the Boogi Dashboard . Your API keys carry many privileges, so be sure to keep them secure! Do not share your secret API keys in publicly accessible areas such as GitHub, client-side code, and so forth. All API requests must be made over HTTPS . Calls made over plain HTTP will fail. API requests without authentication will also fail. CURL curl http://api.boogi.io/public/rest/api/cashback \ -H "Authorization: Bearer YOUR_API_KEY" \ • [Offers and Rewards](https://app.theneo.io/boogi/boogi-cashback-apis/rest-apis/catalogue.md): The following APIs are used to display offers and retailers to your end users and create the relevant advertising events required. We recommend using the APIs only if you want complete control over how the content is displayed to your end users. The simplest way to implement your offer program into your application is by using our offers SDK. If you have decided to implement your program manually via the API, we recommend you follow the implementation guide for best practices. This guide includes instructions on creating advertising events and activating offers for specific offer types, as well as display best practices. Title Description API Description recommended GET calls to return personalised offers powered by cardlytics program GET calls to return retailers and offers available on your cashback program catalogue GET calls to return retailers and offers available across the Boogi network /advertising/event POST call to create an advertising event such as an offer activation • [Recommended Offers](https://app.theneo.io/boogi/boogi-cashback-apis/rest-apis/catalogue/recommended-offers.md): Return personalised offers to your end users, powered by Cardlytics' inteligent matching engine. Title Description API Description /hero-offers/{endUserId} GET call to return hero offers for a user /served-offers/{endUserId} GET call to return offers for a user /activated-offers/{endUserId} GET call to return activated offers for a user /redeemed-offers/{endUserId} GET call to return redeemed offers for a user /expired-offers/{endUserId} GET call to return expired offers for a user • [Get Hero Offers](https://app.theneo.io/boogi/boogi-cashback-apis/rest-apis/catalogue/recommended-offers/get-hero-offers.md): Retrieves hero offers available to the specified end user. Supports optional page size parameter. • [Get Served Offers](https://app.theneo.io/boogi/boogi-cashback-apis/rest-apis/catalogue/recommended-offers/get-served-offers.md): Retrieves all served offers for the specified end user. Retrieves all served offers for the specified end user. • [Get activated offers](https://app.theneo.io/boogi/boogi-cashback-apis/rest-apis/catalogue/recommended-offers/get-activated-offers.md): Retrieves all activated offers for the specified end user. • [Get redeemed offers](https://app.theneo.io/boogi/boogi-cashback-apis/rest-apis/catalogue/recommended-offers/get-redeemed-offers.md): Retrieves all redeemed offers for the specified end user. • [Get expired offers](https://app.theneo.io/boogi/boogi-cashback-apis/rest-apis/catalogue/recommended-offers/get-expired-offers.md): Retrieves all expired offers for the specified end user. • [Program Catalogue](https://app.theneo.io/boogi/boogi-cashback-apis/rest-apis/catalogue/program-catalogue.md): The program catalogue APIs return offers and retailers, which are in your cashback program. Title Description API Description program/retailer GET call to return a paginated ordered list of retailers in your cashback program program/retailer/{retailerId} GET call to return an individual retailer in your cashback program program/offer GET call to return a paginated list of offers in your cashback program program/offer/{offerId} GET call to return a unique offer in your cashback program program/offer-list/{userId} GET call to return a unique offer in your cashback program • [Get Program Retailers](https://app.theneo.io/boogi/boogi-cashback-apis/rest-apis/catalogue/program-catalogue/get-retailers-1.md): Use the program/retailer GET call to return a paginated ordered list of retailers providing offers in your cashback program. The list is ordered alphabetically by the retailer's name. • [Get Program Retailer by Id](https://app.theneo.io/boogi/boogi-cashback-apis/rest-apis/catalogue/program-catalogue/get-retailer-by-id-1.md): Use the program/retailer/{retailerId} GET call to return an individual retailer providing offers in your cashback program. • [Get Program Offers](https://app.theneo.io/boogi/boogi-cashback-apis/rest-apis/catalogue/program-catalogue/get-program-offers.md): Use the program/offer GET call to return a paginated list of offers in your cashback program. The list is ordered alphabetically by retailer name. • [Get Program Offer by Id](https://app.theneo.io/boogi/boogi-cashback-apis/rest-apis/catalogue/program-catalogue/get-program-offer-by-id.md): Use the program/offer/{id} GET call to return an individual offer by id • [Get User offer list](https://app.theneo.io/boogi/boogi-cashback-apis/rest-apis/catalogue/program-catalogue/get-user-offer-list.md): Use the program/offer-lisr/{userId} GET call to return a personalised list of offers for an end user • [Offer Catalogue](https://app.theneo.io/boogi/boogi-cashback-apis/rest-apis/catalogue/offers-catalogue.md): The offer catalogue contains a list of all available retailers and offers available across our network. Title Description API Description catalogue/retailer GET call to return a paginated ordered list of retailers across the Boogi network catalogue/retailer/{retailerId} GET call to return an individual retailer on the Boogi network catalogue/offer GET call to return a paginated list of offers across the Boogi network catalogue/offer/{offerId} GET call to return a unique offer on the Boogi network • [Get Catalogue Retailers](https://app.theneo.io/boogi/boogi-cashback-apis/rest-apis/catalogue/offers-catalogue/get-retailers.md): Use the catalogue/retailer GET call to return a paginated ordered list of retailers providing offers across the Boogi network. The list is ordered alphabetically by the retailer's name. • [Get Catalogue Retailer by Id](https://app.theneo.io/boogi/boogi-cashback-apis/rest-apis/catalogue/offers-catalogue/get-retailer-by-id.md): Use the catalogue/retailer/{retailerId} GET call to return an individual retailer providing offers on the boogi network. • [Get Catalogue Offers](https://app.theneo.io/boogi/boogi-cashback-apis/rest-apis/catalogue/offers-catalogue/get-offers.md): Use the catalogue/offer GET call to return a paginated list of offers available across the Boogi network. The list is ordered alphabetically by retailer name. • [Get Catalogue Offer by Id](https://app.theneo.io/boogi/boogi-cashback-apis/rest-apis/catalogue/offers-catalogue/get-offer-by-id.md): Use the catalogue/offer/{offerId} GET call to return a unique offer from the Boogi network. • [Advertising events](https://app.theneo.io/boogi/boogi-cashback-apis/rest-apis/advertising-events.md): The following APIs are used to handle advertising events We recommend using the APIs only if you want complete control over how the content is displayed to your end users. The simplest way to implement your offer program into your application is by using our offers SDK. Title Description API Description /advertising/event/batch POST call to create an advertising event in a batch process /advertising/event POST call to create an advertising event such as an offer activation • [Advertising event](https://app.theneo.io/boogi/boogi-cashback-apis/rest-apis/advertising-events/advertising-events.md): Use the /advertising/event POST call to send advertising events for a specific end-user. Our reporting engine utilises this data to track and report back on the engagement of offers to our retailer partners on our publisher channels. • [Advertising events batch](https://app.theneo.io/boogi/boogi-cashback-apis/rest-apis/advertising-events/advertising-events-copy.md): Use the /advertising/event/batch POST call to send advertising events for a specific end-user. Our reporting engine utilises this data to track and report back on the engagement of offers to our retailer partners on our publisher channels. • [End Users](https://app.theneo.io/boogi/boogi-cashback-apis/rest-apis/data.md): End users, are the end users who are interacting with your cashback rewards program. The following set of API's are used to handle CRUD actions for this object as well as the assigning of customer tiers and unique offers. Title Description API Description /end-user POST call to create new end users /end-user/{endUserId} GET call to get an end user /end-user/{endUserId} POST call to update an end user assign offers and tiers REST API calls to assign offers and tiers to users • [Creating End Users](https://app.theneo.io/boogi/boogi-cashback-apis/rest-apis/data/create-end-users.md): Use the /end-user POST call to create end users The Create end users section enables you to add users to your rewards program. These users can then be given custom tiers and unique offers • [Getting an End User](https://app.theneo.io/boogi/boogi-cashback-apis/rest-apis/data/getting-an-end-user.md): /end-user/{endUserId} GET call to get information about an end user This section allows users to retrieve detailed information about a specific end user within the system. By accessing this endpoint, users can access crucial data such as user ID, postal code, country, account details, enrollment information, and more. • [Updating an End User](https://app.theneo.io/boogi/boogi-cashback-apis/rest-apis/data/updating-an-end-user.md): /end-user/{endUserId} POST call to update information about an end user This section allows users to update end-user information, such as postal code, country, and enrollment status. • [Account data](https://app.theneo.io/boogi/boogi-cashback-apis/rest-apis/data/account-data.md): Account data contains information relating to the end user's account information. The following set of API is used to handle CRUD actions for this object Title Description API Description /end-user/{endUserId}/account POST call to create a new account /end-user/{endUserId}/account/{accountId} POST call to update a account /end-user/{endUserId}/account/{accountId} Delete call to update a account /end-user/{endUserId}/account/{accountId}/card POST call to add a new card /end-user/{endUserId}/account/{accountId}/card/{cardId} POST call to update a card /end-user/{endUserId}/account/{accountId}/card/{cardId} Delete call to update a card • [Create Account](https://app.theneo.io/boogi/boogi-cashback-apis/rest-apis/data/account-data/create-account.md): Use the /end-user/{endUserId}/account POST call to create an end user's account • [Update Account](https://app.theneo.io/boogi/boogi-cashback-apis/rest-apis/data/account-data/update-account.md): Use the /end-user/{endUserId}/account/{accountId} POST call to update an end user's account information • [Delete Account](https://app.theneo.io/boogi/boogi-cashback-apis/rest-apis/data/account-data/delete-account.md): Use the /end-user/{endUserId}/account/{accountId} DELETE call to remove an end users account • [Create Card](https://app.theneo.io/boogi/boogi-cashback-apis/rest-apis/data/account-data/create-card.md): Use the /end-user/{endUserId}/account/{accountId}/card POST call to add a card to an endUser account • [Update Card](https://app.theneo.io/boogi/boogi-cashback-apis/rest-apis/data/account-data/update-card.md): Use the /end-user/{endUserId}/account/{accountId}/card/{cardId} POST call to update a card in an endUser account • [Delete Card](https://app.theneo.io/boogi/boogi-cashback-apis/rest-apis/data/account-data/delete-card.md): Use the /end-user/{endUserId}/account/{accountId}/card/{cardId} DELETE call to remove a card in an endUser account • [Assigning offers and tiers to end users](https://app.theneo.io/boogi/boogi-cashback-apis/rest-apis/data/assign-offers-to-an-end-user.md): End users can be assigned offers and tiers for a more unique cashback experience. If we see spend for that use at the assigned offer, cashback offers can be triggered. Title Description API Description /end-user/{endUserId}/assign/offer/{offerId} POST call to assign offer to an end user /end-user/{endUserId}/remove/offer/{offerId} DELETE call to remove offer from an end user /end-user/{endUserId}/assign/tier/{tierId} POST call to assign tier to an end user /end-user/{endUserId}/remove/tier/{tierId} DELETE call to remove tier from an end user /end-user/{endUserId}/view/availableTriggerBasedRules GET call • [Assign offer](https://app.theneo.io/boogi/boogi-cashback-apis/rest-apis/data/assign-offers-to-an-end-user/assign-offer.md): /end-user/{endUserId}/assign/offer/{offerId} POST call to assign an offer to an endUser • [Remove offer](https://app.theneo.io/boogi/boogi-cashback-apis/rest-apis/data/assign-offers-to-an-end-user/remove-offer.md): /end-user/{endUserId}/remove/offer/{offerId} DELETE call to remove an offer to an endUser • [Assign tier](https://app.theneo.io/boogi/boogi-cashback-apis/rest-apis/data/assign-offers-to-an-end-user/assign-tier.md): /end-user/{endUserId}/assign/tier/{tierId} POST call to assign a tier to an endUser • [Remove tier](https://app.theneo.io/boogi/boogi-cashback-apis/rest-apis/data/assign-offers-to-an-end-user/remove-tier.md): /end-user/{endUserId}/remove/tier/{tierId} DELETE call to remove a tier to an endUser • [Assigning and viewing product based rewards](https://app.theneo.io/boogi/boogi-cashback-apis/rest-apis/data/assigning-and-viewing-product-based-rewards.md): How to assign and view product-based rules, and assign and unlock rewards for end users Title Description API Description /{endUserId}/view/availableTriggerBasedRules GET call to view the users avaliable trigger driven rewards /{endUserId}/view/availableSegmentBasedRules GET call to view the users avaliable customer tier based rewards /{endUserId}/view/products GET call to view the users assigned rewards /{endUserId}/assign/triggerBasedRule/{ruleEngineId} POST call to assign that a user has completed a trigger based rule /{endUserId}/assign/product/{productId} POST call to assign a product based reward to a user /{endUserId}/unlock/product/{voucherId} POST call to unlock the unique code / link for a product based reward to use it • [Get Available Trigger based rewards](https://app.theneo.io/boogi/boogi-cashback-apis/rest-apis/data/assigning-and-viewing-product-based-rewards/get-available-trigger-based-rewards.md): Returns TRIGGER rules already assigned to user through trigger events • [Get Available Segment based rewards](https://app.theneo.io/boogi/boogi-cashback-apis/rest-apis/data/assigning-and-viewing-product-based-rewards/get-available-segment-based-rewards.md): Returns SEGMENT rules available based on: User customer tiers Period limits (DAILY/WEEKLY/MONTHLY/YEARLY) Previous assignments in period • [Get Assigned Rewards](https://app.theneo.io/boogi/boogi-cashback-apis/rest-apis/data/assigning-and-viewing-product-based-rewards/get-assigned-rewards.md): Returns products that are currently assigned, locked and not expired • [Assign a trigger](https://app.theneo.io/boogi/boogi-cashback-apis/rest-apis/data/assigning-and-viewing-product-based-rewards/assign-a-trigger-based-reward.md): Creates a TRIGGER assignment entry for future product assignment • [Assign a reward](https://app.theneo.io/boogi/boogi-cashback-apis/rest-apis/data/assigning-and-viewing-product-based-rewards/assign-a-reward.md): Assigns product via selected path: SEGMENT – based on user tiers TRIGGER – from trigger rule MANUAL – direct assignment Returns unlock credential required for voucher reveal. • [Unlock a reward](https://app.theneo.io/boogi/boogi-cashback-apis/rest-apis/data/assigning-and-viewing-product-based-rewards/unlock-a-reward.md): Unlocks voucher using credential returned from assignment. Validations: Publisher ownership User match Still locked Credential match • [Transaction Data](https://app.theneo.io/boogi/boogi-cashback-apis/rest-apis/create-customer-transaction.md): Upload customer transactions to facilitate the cashback matching process Title Description API Description /transaction-enrichment/sync POST call to send transaction data synchronously /transaction-enrichment/async POST call to create an async task to process up to 100,000 transactions /transaction-enrichment/async GET call to see a list of async tasks /transaction-enrichment/async/{asyncId} GET call to see the status of a task • [Add transactions synchronously](https://app.theneo.io/boogi/boogi-cashback-apis/rest-apis/create-customer-transaction/add-transaction.md): The transaction-enrichment sync endpoint allows for the submission of up to 4,000 transactions to be processed synchronously per request. By utilising this API, users can efficiently enrich customer transaction information and access enriched creditor data, as well as additional transaction data. This is also the first step in generating matches for cashback. Use the /transaction-enrichment/sync POST call to send end-user transaction data. This API allows you to send up to 4,000 transactions per request • [Add transactions asynchronously](https://app.theneo.io/boogi/boogi-cashback-apis/rest-apis/create-customer-transaction/asynchronously-add-transactions.md): The transaction-enrichment async endpoint enables the submission of up to 100,000 transactions as a task for asynchronous processing. Use the /transaction-enrichment/async POST call to send up to 100,000 transactions to be processed This API allows you to send up to 100,000 transactions per request • [Get asynchronous tasks](https://app.theneo.io/boogi/boogi-cashback-apis/rest-apis/create-customer-transaction/get-asynchronous-tasks.md): Use the /transaction-enrichment/async GET call to see a list of async tasks • [Get asynchronous task by Id](https://app.theneo.io/boogi/boogi-cashback-apis/rest-apis/create-customer-transaction/get-asynchronous-task-by-id.md): Use the /transaction-enrichment/async/{taskId} GET call to see the status of a task • [Cashback Information](https://app.theneo.io/boogi/boogi-cashback-apis/rest-apis/cashback-ledger.md): The following APIs are used to view cashback objects generated by the system. Title Description API Description /cashback GET call to return a paginated ordered list of cashback objects generated by your program /cashback/user/{userId} GET call to return a paginated ordered list of cashback objects generated by an end user /cashback/{cashbackId} GET call to return a cashback object by it's Id • [Get Cashback](https://app.theneo.io/boogi/boogi-cashback-apis/rest-apis/cashback-ledger/get-cashback.md): Use the /cashback GET call to return a paginated ordered list of cashback objects generated by your program • [Get Cashback by User Id](https://app.theneo.io/boogi/boogi-cashback-apis/rest-apis/cashback-ledger/get-cashback-objects-by-user-id.md): Use the /cashback/user/{userId} GET call to return a paginated ordered list of cashback objects generated by an end-user • [Get Cashback by Id](https://app.theneo.io/boogi/boogi-cashback-apis/rest-apis/cashback-ledger/get-cashback-objects-by-id.md): Use the /cashback/{cashbackId} GET call to return a cashback object by it's Id • [Update Cashback by Id](https://app.theneo.io/boogi/boogi-cashback-apis/rest-apis/cashback-ledger/update-cashback-by-id.md): Use the /cashback/{cashbackId} POST call to update the status of cashback objects you own You can only update cashback objects for offers you own! • [Create Support Ticket](https://app.theneo.io/boogi/boogi-cashback-apis/rest-apis/create-support-ticket.md): Use the /support POST call to generate a support ticket for an end user • [Webhooks](https://app.theneo.io/boogi/boogi-cashback-apis/events.md): Boogi provides real-time notifications to inform our publishers of certain events. Overview Boogi provides real-time webhooks that send certain events to our publishers. You can use these events to inform your end users of the status of cashback objects, and use the content webhook to ensure the offers you store and display to your users are up-to-date How to create a webhook Sign in to your administration dashboard at dashboard.boogi.io with an account that has developer access Go to developers > webhook, and you will see a webpage that contains a table of active webhooks for each type of webhook Click Add New for the type of webhook you are looking to create Provide us with the URL you wish to use for the webhook and select the webhook's scope. Click on the newly created webhook in the dashboard In this view, you can see all the recent events that have hit this webhook and also the webhook signature, which is used to validate and identify the endpoint. Topics Title Description Topic Description Verifying webhook messages Learn how to verify and secure webhook events using your webhook secret Cashback events Learn the different events generated for cashback Content events Learn the different events generated for content • [Webhook signature verification](https://app.theneo.io/boogi/boogi-cashback-apis/events/authentication-1.md): This guide explains how to verify the authenticity of webhook requests by comparing the generated signature to the one provided in the request header. The process uses HMAC (Hash-based Message Authentication Code) with the SHA-256 hashing algorithm to ensure the webhook request is legitimate and has not been tampered with. Prerequisites A webhook secret key ( secretKey ) that is provided by the webhook service. The event ID ( body.id ) from the webhook request. A way to extract the X-BOOGI-Signature header from the incoming webhook request. Overview of the Process To verify the signature of a webhook request: 1 Extract the event ID from the request data Get the id field from the webhook payload (body) which is typically a unique identifier for the event. JSON { "id": "event123456", "data": { ... } } 2 Generate a hash Use the secretKey and the sha256 hashing algorithm to create a hash of the event ID. Apply the HMAC function and output the result in base64 format. Create a hash using the HMAC function with SHA-256 as the hashing algorithm. Apply the secretKey as the key. Use the event ID as the message that is hashed. Output the result in Base64 encoding. 3 Compare signatures The generated hash should match the value in the X-BOOGI-Signature header that is sent along with the webhook request. If they match, the webhook request is verified. • [Cashback Events](https://app.theneo.io/boogi/boogi-cashback-apis/events/cashback-webhook-events.md): As cashback is often not instant due to a number of verification steps to achieve payout, we have developed a system to inform your system when these different verifications occur. You can use this system to inform your end-users of cashback receivables, allowing you to engage with your users further. Webhook Events Title Event name Description cashback.created This event is called when Boogi identifies a potential transaction match for payment-linked cashback cashback.disqualified The event is called when Boogi has identified a cashback match but the user does not qualify for the offer cashback.being.verified This event is called when we begin the verification process with our content providers. cashback.verified This event is called as we hear back from our content providers that the transaction has been verified; for online affiliate links, this will be the first cashback object created. cashback.declined This event is created if the content network decides it is unwilling to payout on this transaction. cashback.received This event is called when we have received the funds from the merchant cashback.paid This event is called when we pay out to your bank account. • [Content Events](https://app.theneo.io/boogi/boogi-cashback-apis/events/content-webhook-events.md): The content webhook is used to update the content you display to your end users, handle information updates, approvals, and activations. Content webhook events Title Description Event name Description OFFER_APPROVED Triggers when an offer has been approved for usage by the retailer OFFER_REMOVED_FROM_PLATFORM Triggers when the offer is removed completely from the Boogi platform OFFER_REMOVED_FROM_PROGRAM Triggers when the offer is removed from your platform on the dashboard OFFER_UPDATED Triggers when the offer is updated OFFER_ACTIVATED Triggers when you activate the offer OFFER_DEACTIVATED Triggers when you deactivate the offer • [User Events](https://app.theneo.io/boogi/boogi-cashback-apis/events/content-events-copy-3.md): The content webhook is used to update user tiers and tier levels. Content webhook events Title Description Event name Description TIER_CREATED Triggers when a new tier has been created TIER_REMOVED Triggers when a tier has been removed USER_ADDED_TO_TIER Triggers when a user has been added to a tier via the dashboard USER_REMOVED_FROM_TIER Triggers when a user has been removed from a tier via the dashboard TIER_CREATED and TIER_REMOVED data model JSON { "id": "6888e04227e1502061f92f5b", "publisherId": "6686ac275e4a7353e6aa88f2", "name": "New tier test", "description": "wedfdg", "paidSubscription": true, "price": 3.099, "createdOn": 1753800770435, "updatedOn": null } USER_ADDED_TO_TIER and USER_REMOVED_FROM_TIER data model JSON { "endUserTierEventData": [ { "endUserId": "chris-1234", "customerTierId": "686e6aaa25d62343c59d0e85" } ] } • [Activation Events](https://app.theneo.io/boogi/boogi-cashback-apis/events/user-events-copy.md): Activation webhooks are used to inform your systems when a user activation is scheduled to expire Content webhook events Title Description Event name Description CLICK_TO_ACTIVATE_OFFER_EXPIRING_SOON A 24 hour warning that the activation event will be deactivating CLICK_TO_ACTIVATE_OFFER_EXPIRED The activation event has now expired CLICK_TO_ACTIVATE_OFFER_EXPIRING_SOON JSON body JSON { "eventType": "CLICK_TO_ACTIVATE_OFFER_EXPIRING_SOON", "publisherId": "6686ac275e4a7353e6aa88f2", "endUserId": "boogi_dashboard", "programOfferId": "66b0c12a94c81e175295d2a9", "offerId": "668f0eca8d286e0e7a430ca4", "retailerId": "668f0eca8d286e0e7a430ca3", "activationDate": 1777497973183, "expiryDate": 1777584373183 } CLICK_TO_ACTIVATE_OFFER_EXPIRED JSON body JSON { "eventType": "CLICK_TO_ACTIVATE_OFFER_EXPIRED", "publisherId": "6686ac275e4a7353e6aa88f2", "endUserId": "boogi_dashboard", "programOfferId": "66b0c12a94c81e175295d2a9", "offerId": "668f0eca8d286e0e7a430ca4", "retailerId": "668f0eca8d286e0e7a430ca3", "activationDate": 1777497973183, "expiryDate": 1777584373183 } • [Boogi SDK](https://app.theneo.io/boogi/boogi-cashback-apis/sdks.md): The Boogi SDK makes launching your cashback rewards program quick and easy within your application. Overview The Boogi SDK is a client-side application that enables you to embed a customisable web view of your program offers into your application. To use the SDK, you need to generate an end-user session token on your server-side application, please use the /end-user/auth/token to generate the token. Installation To install the Boogi JavaScript SDK, use npm: Bash npm install boogi-javascript-sdk Usage Importing the SDK After installing the package, import the Boogi SDK into your JavaScript file: JavaScript import BoogiSDK from 'boogi-javascript-sdk'; Initialization To initialize the SDK, create a new instance of the BoogiSDK class. The BoogiSDK instance provides methods for displaying offers, connecting banks, and managing user connections. JavaScript const boogiSDK = new BoogiSDK(); Displaying Offers Use the displayOffers method to present available offers to a user. This can be used in cases where you want to display financial products, deals, or other offers related to Open Banking. JavaScript boogiSDK.displayOffers('token'); Parameters token : The authorization token for accessing Boogi services. • [Create a User Session Tokens](https://app.theneo.io/boogi/boogi-cashback-apis/sdks/client-authentication.md): Use the /end-user/auth/token POST call to generate an end-user token for the client-side SDKs. • [Implementation guides](https://app.theneo.io/boogi/boogi-cashback-apis/implementation-guides.md): Welcome to the Boogi Cashback API Implementation Guide! If this is your first time working with our platform, don’t worry—we’ve got you covered. This guide will walk you through everything you need to deploy, configure, and maintain Boogi’s APIs step by step. We’ve designed this guide with you in mind, so whether you’re part of a development team or just diving into this project, you’ll find clear instructions to get up and running quickly. You’ll also learn how to tailor the integration to your company’s specific needs and ensure it operates seamlessly within your environment. If you encounter any issues or have questions along the way, our team is here to assist you. Just reach out—we’re ready to make this as straightforward as possible for you. Let’s get started! Title Description Steps Link What is Boogi What is Boogi - Guide Setting up your management dashboard for the first time Setting up your dashboard - Guide Historical data sharing API Approach: Historical data sharing API - Guide CSV Approach: Historical data sharing CSV - Guide Implementing end user API's in your customer onboarding flow Implementing end users - Guide Implementing your offers catalogue Full SDK Approach: Full SDK implementation - Guide Custom API Approach: Offer catalogue API implementation - Guide Implementing transaction processing Handling transactions for card programs: Card transactions - Guide Handling customer cashback Implementing cashback events - Guide Setting up support tickets Implementing support tickets - Guide • [What is Boogi](https://app.theneo.io/boogi/boogi-cashback-apis/implementation-guides/what-is-boogi.md): Boogi is a modern rewards platform designed for FinTechs, startups, and financial institutions to embed spend-linked cashback offers into their applications. Through our powerful APIs and webhooks, developers can seamlessly enable their users to earn cashback rewards from their everyday spend, driving revenue growth while enhancing user satisfaction, acquisition, and retention. As the fastest-to-implement cashback solution on the market, we take pride in providing a smooth and efficient integration experience, empowering development teams to focus on delivering value and innovation to their users. Core Systems Boogi’s platform relies on several core systems that ensure seamless functionality for cashback operations. Each of these systems plays a crucial role in processing, managing, and delivering cashback rewards effectively. Below is a breakdown of the core components: Title Description System Description Management dashboard The Boogi Management Dashboard offers an intuitive interface to manage your cashback programme. It lets you create offers, track transactions, review payouts, and monitor user cashback activity. The dashboard also simplifies key operations with our built-in ticket support streamlines customer query handling, and all need actions for software development End user enrollment The end user enrollment system is used to specify which of your customers you want to include in your cashback rewards program. Once your customers are enrolled, you can use this system to segment customers via tiers and apply unique offers leading to a more personalised experiance. Offers and rewards The offers and rewards system is our direct interactions with our offer suppliers to enable you to provide the best possible offers to your customers. Advertising events Advertising events are used to report end user interactions with cashback offers to report engagement back to our merchant partners. This data then feeds into our customer recommendation engine. Transaction data processing Transaction data is what powers our cashback rewards solution, we process the raw transaction data provided by your cards to target recommended offers to your customers and as trigger points for payment linked rewards Cashback rules engine and ledger The cashback rules engine and ledger checks if an end user meets the requirements to earn a cashback offer and handles the monitoring of the cashback lifecycle before a payment is made to that user. You can use the ledger to identified owed cashbacks Catalogue SDK The catalogue SDK is our super fast implementation that enables you to implement our catalogue and advertising events in a day, with colour customisation to make it fit the needs of your business. How developers can interact with Boogi Developers can interact with Boogi’s cashback platform in three flexible ways: REST APIs to programmatically manage offers, users, and transactions; Webhooks to receive real-time updates on cashback events, offer changes, and user changes; and our Graphical SDKs to easily embed Boogi’s offer's catalogue and advertising events into your application Title Description Technology Link to docs REST API's Link to APIs Webhooks Link to webhooks SDK's Link to SDK's • [Setting up your dashboard](https://app.theneo.io/boogi/boogi-cashback-apis/implementation-guides/setting-up-your-dashboard.md): This section guides you through configuring your Boogi dashboard environment to initiate the integration process. During development, you’ll have access to a sandbox account, which allows you to test your setup with pre-approved offers and simulate events using your webhooks. When you are ready to go live, change the API keys, and you will be ready to launch. Title Description Required components Boogi management dashboard: https://dashboard.boogi.io Required team System admin Developer Estimated time 2 hours Step 1 - Gain access to the dashboard Contact your system administrator to generate an account for you in the boogi dashboard Check your emails for an email from no-reply@boogi.io inviting you to join your company boogi account Create an account and log in Step 2- Setup your sandbox environment Verify if your account is currently in sandbox mode. To do this, check the top right corner for a box that says sandbox mode or switch your toggle to put the account in sandbox mode Step 3 - Adding offers to your cashback program In the sidebar go Cashback & Promotions > cashback program. On this page you will see all avaliable cashback offers, as this is your first time you will see an empty table On the sidebar go Offers hub > Intergrated catalogue. On this page you will see all the offers we currently have avaliable via our offer partners. In this section you can filter by Payment linked, Affiliate linked or click to activate offers in the catalogue. You can either apply for all offers from a retailer or view the retailer for more information If you select view retailer you can the select the offer you want to apply for On this page you can see some more offer information like who the offer is for Existing Customers (Has spent at this retailer in the last 12 months) or New customers (Not spent at the customer in the last 12 months) as well as the required amount needed to spent to trigger cashback and other bits of information. Select if you want to make this offer avaliable to all users, certain user tiers or manually set the offer to the end user. As your in sandbox mode this offer will be made avaliable immediately otherwise it would appear pending go back to the the cashback program and you should see your avaliable offers. Repeat for as many offers as you would like. Step 4 - Create your first API key In the sidebar go Developers > API keys to get to the API key's page Click the create key button and in the sidebar give the key a name Once you click save, note down the API key generated. For security reasons we do not display this key again. You can now use this API key to authenicate and access our REST API's for more information, about authenication please click here. Step 5 - Creating your first webhook In the sidebar go Developers > Webhooks to get to the webhook page Click the create webhook button and enter in a webhook url and select the events you want to see, to play around and test the diffrent events I recommend using https://webhook.site/ to generate a test URL In your new webhook page you will see a section, called event list which will show all events that have occured for the webhook, you can click the test webhook to send events to your webhook. • [Historical data sharing - API approach](https://app.theneo.io/boogi/boogi-cashback-apis/implementation-guides/copy.md): For our targeting engine to work, we require 12 months of historical transaction data for all the customers you want to enrol on your rewards program. To achieve this, we need to consume all the end-user information you wish to include in your production rollout, as well as share 12 months of historical transaction data. Our teams will then process this data, ensuring that your customers receive the best possible offers. This process requires approximately 1 week of work from your team and 6 weeks of work from the Boogi team, so it should be completed as soon as possible during the implementation process. Title Description Required components Transaction data and customer data access Required team Developer Estimated time 1 week - client 6 weeks - Boogi and suppliers Section 1: End user data Step 1 - Import the end user data via API Using the production API add all the users you want to enroll in Boogi by creating a script that uses the create end user endpoint from the REST API's Section 2: Historical transaction data Step 1- Import the historical transaction data via API Using the production API, import all the historical transaction data for each user you have added containing all transactions over the last 12 months (including Authorized, cleared, and returned using the async transaction endpoint from the REST API's . Make sure to set the parameters to historical in the request. • [Historical data sharing - CSV approach](https://app.theneo.io/boogi/boogi-cashback-apis/implementation-guides/historical-data-sharing.md): For our targeting engine to work, we require 12 months of historical transaction data for all the customers you want to enrol on your rewards program. To achieve this, we need to consume all the end-user information you wish to include in your production rollout, as well as share 12 months of historical transaction data. Our teams will then process this data, ensuring that your customers receive the best possible offers. This process requires approximately 1 week of work from your team and 6 weeks of work from the Boogi team, so it should be completed as soon as possible during the implementation process. Title Description Required components Transaction data and customer data access Required team Developer Estimated time 1 week - client 6 weeks - Boogi and suppliers Section 1: End user data Step 1 - Generate the end user data csv Download the end user data sharing CSV from the dashboard in Developer > Historical data sharing Map accordingly to your end user schema in your system and export the following CSV to your implementation lead Boogi will then upload this data to the system. Step 2 - Generate the account data csv Download the account data sharing CSV from the dashboard in Developer > Historical data sharing Map accordingly to your account schema in your system and export the following CSV to your implementation lead Boogi will then upload this data to the system. Step 3 - Generate the card data csv Download the card data sharing CSV from the dashboard in Developer > Historical data sharing Map accordingly to your card schema in your system and export the following CSV to your implementation lead Boogi will then upload this data to the system. Section 2: Historical transaction data Step 1- Generate the historical transaction data csv Download the transaction data sharing CSV from the dashboard in Developer > Historical data sharing Map accordingly to your transaction schema in your system and export the following CSV to your implementation lead. Boogi requires 12 months of historical transaction data for all the enrolled users you have setup Boogi will then upload this data to the system. • [Implementing end user API's](https://app.theneo.io/boogi/boogi-cashback-apis/implementation-guides/implementing-end-user-api-s.md): This section outlines when to implement specific end-user APIs within the customer lifecycle. We do not collect or require any personally identifiable information (PII). End-user data is used exclusively to accurately attribute cashback offers to the correct users through our partners and our retailers. Title Description Required components REST API's Required team Developer Estimated time 2-3 days Stage 1 - New user onboarding flow When a customer joins your card program and has completed their KYC checks to set up an account and card, we recommend that you also onboard them into the cashback rewards program. To do this, you can use the create customer endpoint . Stage 2 - New account flow When a customer has a new account added for whatever reason, this should be mapped accordingly to Boogi's system so we can allocate cashback offers to that particular account for that end user. To do this, you can use the create account endpoint . Stage 3 - New card flow When you give a customer a new card this should be mapped to an end user so we can identify the user that made a purchase. This is done by the create card endpoint Stage 4 - Updating / offboarding a user To update a user's information you can use the update user endpoint. If that user has then left the program you can mark that uses enrollment as ended by putting a value in the enrollmentEndDate field. Stage 5 - Updating / offboarding an account To update / remove an account you can use the following endpoints: update account and delete account Stage 6 - Updating / offboarding a card To update / remove a card you can use the following endpoints: update card and delete card • [Full SDK implementation](https://app.theneo.io/boogi/boogi-cashback-apis/implementation-guides/sdk-implementation.md): The simplest way to integrate the cashback program into your application is by using our Offers SDK. This approach removes the need to configure multiple endpoints manually. Boogi manages the standard offers catalogue on your behalf, ensuring a streamlined and efficient setup. Title Description Required components REST API and offers SDK Required team Developer Estimated time 0.5 day's Step 1: Adding the offers SDK to your platform First, configure your SDK's colours by going to Developer > SDK and set the colours to match your application Next, download the correct SDK for your application and follow the ReadMe to set it up correctly in your application Step 2: Using your SDK In your application's backend setup, set up a User Session Token endpoint to generate a user session token that you can call when you want to load the Boogi SDK for a particular user. Put the code in the SDK for that user programtically and you will see all the relevant offers for that end user. That's it Boogi will handle the relevant advertising events, recommended offers, user tiers and segmentation automatically allowing you to focus on more important stuff. • [Offer catalogue API implementation](https://app.theneo.io/boogi/boogi-cashback-apis/implementation-guides/offer-catalogue-api-implementation.md): If you require more control over your implementation, you will have to take the more complex route of implementing via our API's and webhooks to generate the same result as the SDK. This requires more detailed work with your account manager, who will need to perform some API mapping of your UX design to ensure the right advertising events occur in the correct spaces. Title Description Required components REST API's, Content webhooks Required team Developer, UX designer Estimated time 2 weeks Relevant API's and Webhooks Program offers API's Recommended for you API's Advertising events API's Content event webhooks Additional resources Example catalgoue design and API mapping Step 1 - Caching your non targeted offers To ensure fast delivery of content to your users we recommend that you cache your active program offers list. To do this we recommend setting up a content webhook to handle real time content changes to your program. To faciliate this setup a content event webhook and then use the id provided in that event to hit the GET program offer API to save and store the offer content to your database which you can then serve to your end users. Step 2 - Aligning your design to include a targeted offers section When designing your UX ensure you have a custom section for recommended offers that are based on that uniques user. We have provided an example UI design for you to view here Step 3 - Mapping your UX to our advertising events Share your UI design with your account manager to map the relevant API calls required to build this implementation. Boogi has provided an example based on our own SDK of what API calls need to be provided. Step 4 - Implementation based on the mapping Implementing the API's based on the mapping document provided by your account manager Step 5 - Testing Testing that your advertising events are generating correctly with your account manager. • [Handling card transactions](https://app.theneo.io/boogi/boogi-cashback-apis/implementation-guides/handling-card-transactions.md): Boogi leverages your customers’ transaction data to power cashback functionality. To enable this, you must send ALL transaction data to Boogi using the Transaction Enrichment API. This guide will help you integrate with our transaction APIs to pass cleared and authorised transactions, both of which are required to facilitate cashback on your card program. Title Description Required components REST API Required team Developer Estimated time 3 days Required data for card transactions To put it simply, we want all the fields given in the core transactionRequest object and the additionalCardData field. If you have any questions about this, please contact your account manager, who will be happy to assist you. Handling AUTH transactions To create a seamless customer experience, we recommend that you process AUTH transactions as quickly as possible, allowing customers to earn cashback as close to real-time as possible. To achieve this, we recommend using the SYNC transaction enrichment API endpoint , which you can hit every time you receive an AUTH transaction, triggering the cashback creation process. Some points to note: The SYNC endpoint can take up to 4000 transactions per request, Set authId to null for auth transactions in the transaction request Please provide an auth code if provided by your BaaS provider By default we do not respond with the enriched data as it increases latency howver you are more then welcome to toggle it on in your requests if you want to provide more transactional insights to your customers Handling CLEARED (Settled) transactions and open banking data As CLEARED and open banking data is a batched process via your BaaS providers we recommend you use our ASYNC transaction endpoint as this is not required to be processed in real time, meaning you can handle this asyncronosly and you can poll our ASYNC endpoints to get updates on the status of these requests if needed. We use the settled transactions to perform additional veirification and it is requested by some our retail partners. Some points to note: The AYNC endpoint can faciliate up to 100,000 transactions per request For CLEARED transactions you are required to link this to a unique Auth transaction via your given id By default we do enriched data and once the task is complete you are welcome to use the enriched data to enhance your applications. • [Implementing cashback events](https://app.theneo.io/boogi/boogi-cashback-apis/implementation-guides/implementing-cashback-events.md): When Boogi first identifies a cashback object from customer transaction data, it begins the cashback fulfilment lifecycle . You can monitor this activity via the cashback webhook and via the cashback API. We have made this process as transparent as possible to ensure the accurate reporting of cashback receivables for your business and provide seamless tracking and management throughout the end-to-end process. This guide will walk you through setting up and listening to the webhook, as well as explaining what each event means. In the additional resources, we have also provided recommended UX for an end-user cashback page and different ways you can payout to your end user and the associated risks. Title Description Required components REST API, Cashback webhook Required team Developer UX designer Estimated time 3 days Additional resources Cashback payouts UX Payout flows Listening to cashback events Step 1 We use an event driven approach to cashback fufilment, meaning we will notify your sytem when we have identified our updated cashback objects. To setup your webhook please follow the cashback webhook guide here . Title Description Event name Description cashback.created This event is called when Boogi identifies a potential transaction match for payment-linked cashback cashback.disqualified The event is called when Boogi has identified a cashback match but the user does not qualify for the offer cashback.being.verified This event is called when we begin the verification process with our content providers. cashback.verified This event is called as we hear back from our content providers that the transaction has been verified; for online affiliate links, this will be the first cashback object created. cashback.declined This event is created if the content network decides it is unwilling to payout on this transaction. cashback.received This event is called when we have received the funds from the merchant cashback.paid This event is called when we pay out to your bank account. Step 2 We recommend you store the cashback events in your own database as you can display the status of earnt cashback to your end users. If you need further data from the events you can use the cashback API to get more information. Step 3 Once Boogi has marked a cashback object as paid it means we have paid out to you as a business and it is your responsibility to faciliate the “last mile delivery” of cashback to your end users by either crediting it to that users account, converting it to point or something of the same value. If you want to payout to your clients earlier this is also doable but you are taking on the risk internally. We have provided a payout diagram which shows all the diffrent potential ways you can do this as a business. How best to display cashback earnings to end users Displaying how users see there earnt and pending cashback is really up to you. We have provided a standard UX design but feel free to customise this to meet your own internal needs. • [Implementing and handling support tickets](https://app.theneo.io/boogi/boogi-cashback-apis/implementation-guides/implementing-support-tickets.md): Support tickets is a crucial part of the Boogi system as it allows you to easily handle customer queries related to Boogi's transaction matching and cashback engine Title Description Required components REST API, Required team Developer, UX designer Estimated time 3 days Implementing your support ticket system Designing your support UX We recommend setting up a similar design to the Monzo cashback support please see a link to an example design Setting up the API on your platform To generate a support ticket please use the following API Handling issues in support In the dashboard go to support section to see your open tickets. In this section you can see multiple actions that you can take on a queried transaction and the offer they want to match it to. Action types Title Description Action Description NO_ISSUE_IDENTIFIED This action is used if there is no issue and the system has worked correctly used if you user has requested cashback for an offer not relevant to the transaction IDENTIFIED_MISSING_OFFER_DATA This action is used if you have identified that a transaction should match to an offer but the offer is missing key information (MIDs) to match correctly IDENTIFIED_TECHNICAL_ISSUE This action is used if you believe there is a technical fault rather then a configuration issue RE_RUN_TRANSACTION This action is used to re-sync a transaction post any updates to offer configurations to try and rematch the transaction to the offer. GENERATE_CASHBACK This action is used to try and regenerate a cashback object but does not release the object to the end user and wider system giving you a chance to check prior to release in the support dashboard RELEASE_CASHBACK This action is used to release the generated cashbacks to the end user RESOLVE_QUERY This action resolves and closes the query ESCALATED_TO_BOOGI This action esclates to Boogi if you feel you are unable to resolve the query internally Handling missing cashback workflow See query in support page Check if transaction and offers should match. If they shouldn't match mark as NO_ISSUE_IDENTIFIED Check if the MID exists in the transaction from the offer provided If the MID does not exist mark as IDENTIFIED_MISSING_OFFER_DATA and put in MID into the offer RE_RUN_TRANSACTION to see if the offer now match to the transaction GENERATE_CASHBACK to validate that the cashback is created / disqualified RELEASE_CASHBACK to the user RESOLVE_QUERY • [Setting up customer segmentation](https://app.theneo.io/boogi/boogi-cashback-apis/implementation-guides/setting-up-customer-segmentation.md): To maximise the use of Boogi, we recommend segmenting your customer base and rewarding them accordingly. This is useful because it unlocks new types of cashback and reward-based campaigns you can run for your customers, as shown in the Boogi playbooks document provided by your account manager Title Description Required components REST API, Dashboard Required team Engineer, System admin Estimated time 1 day Step 1 - Setting up your customer segments Log in to the management dashboard at https://dashboard.boogi.io Go to end users > customer segments Click create segment (tier) and segment customers according to your business's needs Step 2 - Segment your cashback program Once you have created your segments, you can assign cashback offers to only be available to certain customer segments To do this, go to an offer, click edit, select customer tiers and select the tiers you want this offer to be available for, then click save. Now, only end users who are in that customer segment tier can earn cashback from those offers. Step 3 - Setup your product based rules Segments also enable you to setup product based rules like a monthly coffee to be avaliable to certain customer segments. To do this go to Perks and rewards > Perks workflows, and create or edit an existing workflow Set the workflow to a segment based rule Select the relevant customer tiers End users can now see the relevant rewards they can claim via /{endUserId}/view/availableSegmentBasedRules Step 4 - Assigning and removing users to customer segments To assign an end user ensure they are already enrolled into Boogi Using the /end-user/{endUserId}/assign/tier/{tierId} to assign users to a customer segment Using the /end-user/{endUserId}/remove/tier/{tierId} to removes users from a customer segment