TECHNICAL TASK (TT)
Integration of the accounting system with the InBoost platform
1. Purpose of integration
To automate data exchange between the company's accounting system and the InBoost platform for:
- maintaining the customer database
- operating the bonus program
- transferring purchase events
- avoiding data duplication
- controlling the correctness of synchronization
2. Customer synchronization
2.1 Logic of operation
1. The system should periodically search for customers in InBoost.
2. If a customer exists in InBoost but is absent in the accounting system — it is necessary to create the customer in the accounting system.
3. If the customer exists in both systems:
- transfer the purchase history for the last 3 months (without duplication);
- transfer the current bonus balance.
2.2 Customer identification
Customer identification is performed by phone number.
3. Bonus program
3.1 Bonus updates
When the bonus balance changes in the accounting system, it is necessary to:
- send the new amount of bonuses to InBoost
- use the InBoost API
The transfer should be performed with each change of the bonus balance.
4. Bonus accrual
When accruing bonuses, the system should:
- send the bonus accrual code to the InBoost Webhook.
Requirements:
- implement protection against duplication
- the accrual code is transmitted only once.
5. Bonus redemption
When redeeming bonuses, the system should:
- send the bonus redemption code to the InBoost Webhook.
Requirements:
- implement protection against duplication
- the redemption code is transmitted only once.
6. Post-purchase events
After making a purchase, it is necessary to:
1. send the purchase event to the InBoost Webhook;
2. perform a separate API request with purchase details.
Requirements:
- the event is transmitted only once
- event duplication is not allowed.
7. Notification of bonus expiration
The system should:
1. generate a list of customers whose bonuses will expire soon;
2. generate one webhook request;
3. transmit the list of customer phone numbers.
8. Customer data (field mapping)
When creating or updating a customer, it is necessary to store:
- phone number
- first name
- last name
- date of birth
- source of acquisition
- specialty
9. Technical requirements
The integration should use:
- InBoost REST API
- Webhook events.
10. Logging
It is necessary to implement:
- logging of all API requests
- logging of errors
- logging of event duplication cases.
11. Protection against duplication
For the following events, a unique event ID should be used:
- purchases
- bonus accruals
- bonus redemptions
This is necessary to avoid reprocessing of events.
12. Synchronization frequency
The recommended frequency of system operation:
- customer synchronization — every 10–30 minutes
- bonus transfer — in real time
- purchase event transfer — in real time.
13. Expected result
After the integration is implemented, the following should be ensured:
- automatic synchronization of customers
- correct operation of the bonus program
- transfer of purchase events to the system
- absence of data duplication
- stable integration between systems.