Prerequisites: Service Account
All Dito APIs require a Service Account (SA) — a generic user registered by Dito’s support team with a non-personal corporate e-mail (e.g.integracao@yourbrand.com). There is no self-service way to create it. Ask your Dito account team to:
- Create a Service Account for your brand;
- Assign it the Cashback Rewards Admin role (required to list cashbacks and balances);
- Grant it access to the Get Profile endpoint of the Profiles API (permissions are granted per endpoint);
- Confirm your brand label (the identifier Dito uses for your brand in API calls).
1. Add your Dito access
- In the Sources tab, click on the “Add source” button located on the top right of your screen. Then, select the Dito option from the list of connectors.
-
Click Next and you’ll be prompted to add your access.
- Service Account E-mail: the e-mail of the Service Account created by Dito’s support team.
- Service Account Password: the password of that Service Account.
- Brand: the brand label provided by Dito for your account.
- Customer IDs: the customer identifiers you want to fetch data for, one per line. Use the same identifiers your systems send to Dito (typically your internal customer ID or CPF).
- Store ID (advanced): optionally filter cashback data to a single store, using the same store identifier sent to Dito.
- Page Size (advanced): number of rewards fetched per page (default 100).
- Click Next.
2. Select your Dito streams
-
The next step is letting us know which streams you want to bring. You can select entire groups of streams or only a subset of them.
Tip: The stream can be found more easily by typing its name.
If a customer in your list doesn’t exist in Dito, the connector logs a warning and skips it — the sync never fails because of an unknown customer.
- Click Next.
3. Configure your Dito data streams
- Customize how you want your data to appear in your catalog. Select a name for each table (which will contain the fetched data) and the type of sync.
- Layer: companies in the Growth plan can choose in which layer the tables with the extracted data will be placed.
- Table name: we suggest a name, but feel free to customize it. You have the option to add a prefix to all tables at once and make this process faster!
- Sync Type: all Dito streams are extracted as FULL_TABLE — the API offers no date filtering, so each run fetches the current data for every configured customer. Read more about Sync Types here.
- Click Next.
4. Configure your Dito data source
- Describe your data source for easy identification within your organization. You can inform things like what data it brings, to which team it belongs, etc.
- To define your Trigger, consider how often you want data to be extracted from this source. This decision usually depends on how frequently you need the new table data updated (every day, once a week, or only at specific times).
- Optionally, you can define some additional settings (if available).
- Configure Delta Log Retention and determine for how log we should store old states of this table as it gets updated. Read more about this resource here.
Check your new source!
- Click Next to finalize the setup. Once completed, you’ll receive confirmation that your new source is set up!
- You can view your new source on the Sources page. Now, for you to be able to see it on your Catalog, you have to wait for the pipeline to run. You can now monitor it on the Sources page to see its execution and completion. If needed, manually trigger the pipeline by clicking on the refresh icon. Once executed, your new table will appear in the Catalog section.
If you encounter any issues, reach out to us via Slack, and we’ll gladly assist you!
Available streams
All date/time values returned by the Cashback API are in Brasilia time (GMT-3). The
custom_data field of profiles is delivered as a JSON string — parse it downstream (for example in a Query) when you need the individual attributes.Fields by stream
Below you’ll find all available data streams from Dito and their corresponding fields:customer_rewards
customer_rewards
Every cashback reward generated for each configured customer. Sync: Full table. Primary key:
customer_id, id.customer_id- Identifier of the customer the reward belongs to, as provided in the Customer IDs configurationid- Unique identifier of the rewardstatus- Current status of the reward (available, locked, used, expired or undefined)value- Maximum amount that can be redeemed for the rewardbalance- Remaining balance of the reward available to be redeemedrate- Maximum percentage of the purchase value that the reward value can be applied tocreated_at- Timestamp when the reward was created (GMT-3)available_at- Timestamp when the reward becomes available for use (GMT-3)due_date- Expiration date of the reward (GMT-3)canceled_at- Timestamp when the reward was canceled, if applicable (GMT-3)order_id- Identifier of the purchase transaction that generated the rewardstore_id- Identifier of the store where the purchase that generated the reward was madecampaign_id- Identifier of the campaign that generated the rewardcampaign_name- Name of the campaign that generated the rewardcampaign_description- Description of the campaign that generated the reward
customer_balances
customer_balances
Current cashback balance breakdown for each configured customer — a snapshot taken at extraction time. Sync: Full table. Primary key:
customer_id.customer_id- Identifier of the customer, as provided in the Customer IDs configurationavailable_balance- Amount of cashback currently available to be consumedunavailable_balance- Amount of cashback that is unavailable because it is still in downtimenext_purchase_balance- Amount of cashback available for the next purchase based on redemption rulesnext_purchase_first_due_date- First expiration date among the rewards that make up the next purchase balance (GMT-3)campaign_id- Identifier of the campaign related to the next purchase balancecampaign_name- Name of the campaign related to the next purchase balancecampaign_description- Description of the campaign related to the next purchase balance
profiles
profiles
Registration data of each customer’s unified consumer profile. Sync: Full table. Primary key:
customer_id.customer_id- Identifier of the customer, as provided in the Customer IDs configurationid- Unique identifier of the profile within the brand, as returned by Ditobrand- Brand identifier the profile belongs toname- Full name of the consumeremail- E-mail address of the consumerphone- Phone number of the consumergender- Gender of the consumerbirthday- Birth date of the consumercreate_time- Timestamp when the profile was created in Ditotime_zone- Time zone of the consumeraddress_street- Street of the consumer’s addressaddress_city- City of the consumer’s addressaddress_state- State of the consumer’s addressaddress_country- Country of the consumer’s addressaddress_postal_code- Postal code of the consumer’s addresscustom_data- Brand-specific custom attributes of the profile (JSON string; each key holds a value and its format)
Campaigns, journeys and messaging data (“réguas”) are not available through Dito’s read APIs — Dito only pushes that information outward via its self-service outbound webhooks. If you need campaign/journey events in Nekt, talk to us about setting up a webhook-based ingestion instead.