Найважче в інтеграціях — узгодити статуси
Оплата “успішна” у платіжці, але “pending” у CRM. Доставка “створена”, але трек‑номер ще не повернувся. Якщо немає єдиної моделі статусів і правил синхронізації — з’являються дублікати, ручні правки і скарги клієнтів.
1) Джерело правди
- Платіж — джерело правди: платіжний провайдер.
- Відправка — служба доставки.
- CRM — агрегує, але не “вигадує” статуси.
2) Подієва модель
- Події: payment_succeeded, payment_failed, shipment_created, shipment_delivered.
- Webhooks приймаємо швидко (ACK) і обробляємо через чергу.
3) Дедуплікація і ідемпотентність
- eventId з провайдера + зберігання “оброблено/ні”.
- Idempotency‑Key на створення відправки/інвойсу.
4) Помилки і ретраї
- Ретраї з backoff для 5xx/таймаутів.
- Dead‑letter для подій, що не можуть бути оброблені автоматично.
Підсумок
Стабільна зв’язка “платіжка‑доставка‑CRM” працює, коли є модель статусів, події, дедуплікація і ретраї. Тоді синхронізація стає передбачуваною, а підтримка — спокійною.