1
00:00:01,000 --> 00:00:04,610
This accompanies our article on API integration.

2
00:00:05,000 --> 00:00:09,450
What if a system resends a message after the first order was created?

3
00:00:09,720 --> 00:00:14,250
A fictional approved CRM request goes to an administration system.

4
00:00:14,440 --> 00:00:16,170
Its message arrives twice.

5
00:00:16,600 --> 00:00:20,650
Without a stable reference, two draft orders could represent exactly

6
00:00:20,680 --> 00:00:22,010
the same request.

7
00:00:22,280 --> 00:00:26,170
Assign an immutable source reference and store it in the destination.

8
00:00:26,760 --> 00:00:29,930
A mapping table connects the customer reference with the correct

9
00:00:29,960 --> 00:00:33,210
existing customer number in the administration system.

10
00:00:33,480 --> 00:00:35,970
Only approved requests proceed.

11
00:00:36,280 --> 00:00:40,010
Validate required text, customer mapping and date format.

12
00:00:40,520 --> 00:00:44,490
A missing match or invalid date stops processing and receives an

13
00:00:44,720 --> 00:00:46,850
explicit error reason for follow-up.

14
00:00:47,160 --> 00:00:50,650
Searching first does not prevent duplicates when messages run

15
00:00:50,680 --> 00:00:51,650
concurrently.

16
00:00:51,880 --> 00:00:56,250
The destination must enforce a unique external reference even when two

17
00:00:56,280 --> 00:00:59,090
processing attempts start at the same time.

18
00:00:59,400 --> 00:01:01,850
After a timeout, the order may exist.

19
00:01:02,360 --> 00:01:05,130
Check the destination using that reference first.

20
00:01:05,560 --> 00:01:09,735
If the outcome remains unknown, request human review before attempting

21
00:01:09,760 --> 00:01:11,050
to create another order.

22
00:01:11,720 --> 00:01:15,530
Record source reference, processing status and error reason.

23
00:01:16,040 --> 00:01:19,850
An administrator needs to identify completed work and outstanding

24
00:01:19,880 --> 00:01:24,090
exceptions without blindly repeating the whole integration from the beginning.

25
00:01:24,680 --> 00:01:28,970
Test repeated and concurrent messages, missing fields and uncertain

26
00:01:29,000 --> 00:01:29,930
outcomes.

27
00:01:30,200 --> 00:01:34,375
Check current source status too: an old message must not reverse

28
00:01:34,400 --> 00:01:36,490
a newer state in the destination.

29
00:01:36,760 --> 00:01:40,770
A dependable integration needs more than a successful transfer.

30
00:01:41,080 --> 00:01:45,850
Our source article on API integration explains data agreements, error

31
00:01:45,880 --> 00:01:49,850
responses and controlled reprocessing in greater detail.
