File size: 108,649 Bytes
2a86e95
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
Integration Information

How Intelligent Address Formatting Works
Overview
The Shipping API empowers users with the capability to validate both domestic and international addresses before generating labels. This functionality mitigates the risk of failed deliveries stemming from inaccurate address information. As part of our commitment to enhancing delivery services, we are pleased to provide this feature to all our users at no cost.
This documentation elucidates the utilization of this valuable feature and expounds upon the techniques employed by the Intelligent Address Formatter.

Intelligent Address Formatting
Only accurate or complete customer data can lead to a critical issue, often concerning incorrect address information. To address this challenge, we introduce the "format_address_default" parameter in the shipment object of the create-label request. Enabling this parameter activates the Intelligent Address Formatting feature for the associated request.
By activating this feature, the system smartly handles scenarios where requested alterations conflict with a specific courier's capabilities. In such cases, incompatible adjustments are gracefully bypassed, thereby preventing label request rejections.
Beneath, we outline a comprehensive array of methods employed by the Intelligent Address Formatter to rectify these concerns. An illustrative sample of the addressing section within a label request is visualized in the image below.

Methods of Intelligent Address Formatting:
ISO and Country Harmony: The Shipping API seamlessly intervenes when a particular courier necessitates the human-readable country name and its corresponding ISO code. It automatically populates the country name based on the provided ISO code. For instance, "GB" is transformed into "United Kingdom."
Standardization via State Codes: For shipments headed to the US, Canada (CA), or Australia (AU), human-readable county values are converted into ISO format. For instance, "Florida" becomes "FL," and "New South Wales" becomes "NSW."
Phone Country Validation: The Intelligent Address Formatter eliminates symbols from phone numbers (except for "+"). Additionally, an extra check confirms whether the provided number falls within the 11-14 character range for shipments bound for GB. If compliant, the number remains unchanged; if not, it defaults to "01111111111."
Default Phone Number Fill: In cases where a phone number isn't specified in the request, a default value of "01111111111" is automatically inserted.
Rectification of Phone Number Plus Symbol: If your phone number includes a "+" symbol, it is replaced with "00."
Default Email Address Insertion: When no email address is provided, a default value of "[email protected]" is used.
Name Auto-Population: When a "company_name" is provided but not a "name," the "company_name" value is duplicated into the "name" field.
UK Post Code Correction: The system validates and corrects postcode formatting for shipments destined for GB, ensuring accurate presentation to the courier. Adjustments could involve proper spacing between the prefixes and suffixes.
Address Line Length Management: Should Address Line 1 exceed the courier's character limit, it is automatically split into Address Line 2. Similarly, if Address Line 2 exceeds limits, it's divided into Address Line 3.

How to Change Label Sizes
Overview
The dimensions of your label play a crucial role in the shipping process. The label size must be sufficiently spacious to encompass all essential courier-required information. It includes the imperative barcode that needs to be easily scannable. Our Shipping API offers remarkable flexibility in fulfilling your specific label prerequisites. Our system is seamlessly compatible with various prevalent and standardised label formats. It empowers you to swiftly and effortlessly generate shipping labels tailored for diverse couriers and available in multiple dimensions.
This documentation will comprehensively illustrate the process of adjusting the label size and initiating the label request. Furthermore, we will address a selection of frequently asked questions about labels and their associated sizes.
Changing Label Size
To modify the dimensions of your labels, you can easily update the "label_size" value within your "create-label" request. To illustrate the process, we will utilise our Playground environment. This exercise will demonstrate how to change the label size and initiate a label request.
The Playground is a tool to facilitate request submissions directly from our application, granting you insight into the mechanics of communication between your application and the Shipping API. (For a more comprehensive understanding of Playground functionalities, refer to the Help & Documentation page.)
As depicted in the image above, the default setting for "label_size" is "6x4", signifying a label that measures 4 inches in width and 6 inches in length (equivalent to 10 x 15 cm).
If you proceed without any alterations and click "Send Request," the Playground will transmit a request through our Royal Mail test account (as the default Playground configuration is aligned with the Royal Mail endpoint), generating a label.
Clicking "View Label" will display the label generated with the dimensions 6x4.
However, adjusting the "label_size" value to other appropriate formats, such as 4x4 and 8x4, is possible. For more detailed insights, the Setup API Documentation page provides comprehensive guidance on label creation and related subjects.
While we strive to accommodate label size preferences, it's essential to understand that universal support for every conceivable label size across all couriers might not be feasible. While a 6x4 label is widely supported, some couriers might still need to endorse a 4x4 size. If your label requirements deviate from the norm, we encourage you to contact us for personalised assistance.

Frequently Asked Questions (FAQs)
Question: Why does the system still generate a 6x4 label after I've adjusted the label size?
Answer: The system may continue to produce a 6x4 label because the relevant courier might not support the size you entered. Generally, our system defaults to supporting 6x4 labels.

Question: Could printing the label larger than its actual size pose an issue?
Answer: Printing the label slightly larger than its actual size should be fine, but it's advised to stay within the dimensions of half an A4 sheet.

Question: Is it acceptable to shrink the label during printing?
Answer: Shrinking the label could affect the functionality of the barcode. However, if your package is too small for the label, you can wrap the label around the parcel without issue. For instance, if you have a 4x4 box and a 6x4 label, you can overlap the 6x4 label along the edge, ensuring that the essential information remains readable and the barcode remains scannable.

Question: What do the S17 and S19 labels refer to?
Answer: The S17 and S19 labels denote integrated labels on an A4 sheet of paper. These labels are designed for companies that require shipping labels for carriers such as Royal Mail or other primary courier services.


My Account

Overview
My Account is the hub for overseeing your Shipping API account. This section lets you access and review your account particulars and comprehensive billing data.

This guide outlines modifying your account information, including your Company Name and Password. Additionally, it delves into essential topics such as Charge Rates, Credits, Shipment Tracking, and the process of extending invitations to new Users within your account's purview. Lastly, it provides a step-by-step walkthrough on accessing, downloading, and printing invoice details.

Account Details
Navigating to your account page involves selecting "My Account" from the menu situated on the left-hand side.

The first highlighted section is the "Company Name" field. This field contains the name you provided during your account registration on the Shipping API platform. To modify this, click the "Edit Company Name" button. This action prompts a window to emerge, allowing you to input a new company name. Once entered, you can save the changes.

Similarly, the subsequent highlighted section allows you to alter your password. Much like the process above, clicking the "Change Password" button triggers the display of a window. This window permits the configuration of a new password for your account.


Users
You can extend invitations to other users, granting them access to your account's data. It is beneficial when you want individuals from your business or affiliated enterprises to view request logs and related information.

To initiate the invitation process, navigate to the "Edit Users" section and select "Invite New User." Input the recipient's email address, choose the user level, and proceed by clicking "Send Invite." Opting for the "Administrator" role confers complete platform access, while the "Limited" role permits viewing access without the ability to make alterations.

Please beware that using an already registered email account in the system might yield an error, as each user must have a unique email address.

Upon dispatching the invitation, an email will be forwarded to the specified address, marking the invitation's status as "Pending." You can "Delete Invite" or "Resend Invitation Link" through the adjacent icons, particularly if the initial invitation email wasn't received as expected.

Once the recipient receives the email, they should select "Accept & Create Account." This action leads them to the Shipping API registration page. Here, they can input an account and company name and set a secure password for their account.


Credits and Shipment Tracking
In the section labelled "Charge Rates," you'll find a breakdown of the credit costs associated with each API task. It enables you to estimate your monthly credit requirements. For instance, if creating a label consumes one credit under a monthly plan, and you anticipate generating 100 labels within a month, your credit needs will amount to 100 credits solely for label creation.

Moving on to the plan details, you can determine whether you're enrolled in a monthly subscription or utilizing the "pay as you go" model. Additionally, you'll have insight into the remaining credits available for the ongoing cycle.

Pay As You Go: By opting for this choice, you can purchase additional credits whenever you exhaust your current balance or at any time you deem fit. It can be done by simply selecting the "Topup Credits" option.
Monthly Subscription: If you select the monthly subscription, you'll be charged a fixed fee every month, granting you access to a specific allocation of shipments per month.
Furthermore, the "Shipment Tracking" section lets you turn this tracking feature on or off according to your preferences. For more comprehensive information regarding the tracking functionality, please consult the "How to Set up Tracking on Shipping API" document.

Lastly, the invoice history section lets you review and download your invoice details. It can be achieved by clicking the download icon adjacent to the relevant invoice entry.

Help & Documentation
Overview
The purpose of the Help & Documentation page is to provide a centralized resource hub for effectively utilizing the Shipping system. This comprehensive document aims to acquaint you with various sections within the page, including:
Documentation Section: Found under the title "Documentation," this section encompasses the Setup API Documentation. It serves as a detailed guide to assist you in setting up the API.
Video Tutorials: A dedicated page containing video tutorials is also available. These tutorials offer visual guidance to enhance your understanding of the Shipping API system.
Playground Section: This area enables you to simulate label requests, allowing you to familiarize yourself with the process.
Support: Concluding the document, we outline the process for submitting a support ticket. This avenue is at your disposal if you have any further queries or require assistance.
The Help & Documentation page facilitates a smoother experience while utilizing the Shipping system by consolidating these resources.

Help & Documentation
To access the "Help & Documentation" page, click it in the left-hand menu.
As depicted in the image below, the page is divided into three sections that enhance your understanding and utilization of the Shipping system.

Documentation
Our documentation is designed to lead you through every step of our API processes, elucidating the necessary data that needs to be transmitted to initiate requests via our API.

You can access the dedicated API documentation page by clicking here for a more comprehensive understanding. This page provides further insights into the intricacies of our API.

Tutorials
The purpose of these video tutorials is to assist you in getting fully prepared to utilize the Shipping feature via the user interface. We are actively working on expanding our collection of videos to provide you with even more valuable resources.

Playground
The Playground feature allows you to simulate label requests, offering the flexibility to adjust both the data sent and received. This interactive environment gives insights into the underlying processes governing label creation logic.

Simply put, the Playground empowers you to initiate requests directly from our application. It aids in comprehending the intricate mechanics involved when transmitting a request from your application to the Shipping API.

It's important to note that the functionality of the Playground extends beyond just simulating label requests. Should you utilize authentic API credentials within the Playground, be aware that the courier will charge your account, as it effectively submits a request.

To better understand how to use the Playground feature, kindly click on the following link to access our dedicated playground documentation page: Playground Documentation. This resource will provide detailed instructions on effectively utilizing this interactive tool.


Contact Support
We encourage you to contact our team for assistance if you still need to locate the answers you've been seeking within our available help materials. Initiating this process involves clicking on the "Get in Touch" button.
 
Upon clicking, you will be directed to a dedicated page where you can provide specific details and elucidate the nature of the question or issue you're encountering. Once you've comprehensively outlined your concern, you can submit your ticket. Rest assured, our support team will promptly engage with you to address your query.


API Reports Page

Overview
The API Reports page provides the means to oversee connection endeavours undertaken by an individual API account. This functionality empowers you to create comprehensive reports encompassing several aspects: the tally of your call instances, the count of prosperous label applications, and the count of unsuccessful ones.

This guide will demonstrate the process of producing and comprehending a report within the API Reports page of the Shipping.

Generate Report
To initiate the creation of an API report, select "API Reports" from the menu on the left-hand side.

Subsequently, opt for the specific API account you intend to retrieve the report. Following this selection, click the "Generate Report" button.

This action will furnish you with a comprehensive overview of statistics about various categories of requests initiated through your designated API account.


Filters
The information presented on this page is initially based on a 7-day timeframe. Nevertheless, you can modify this scope by utilizing the filtering mechanism accessible through the "Show Filters" button.

Upon generating the report, it will exhibit the API Calls data within a predefined date range. Illustrated in the accompanying image, you'll notice a segment dedicated to the manual configuration of your desired date range.

Additionally, situated beneath this section is a feature allowing seamless navigation between different accounts. This feature streamlines the process of switching API accounts.


API Report
Endpoint URL: This denotes the destination in the Courier API where your request is directed. By inspecting the URL, you can extract valuable insights, such as the targeted courier and the purpose of the requests, which may involve tasks like label creation or label cancellation.

Call Count: This figure represents the aggregate count of label requests dispatched through the courier.

Successful Requests: This category showcases the count of requests executed successfully via the courier.

Failed Requests: Within this category, you can observe the tally of failed requests during transmission.


Plugins

Anansi

Overview
With Anansi, safeguarding your shipped parcels becomes a breeze. Anansi offers comprehensive coverage against loss, damage, and theft, irrespective of the courier service you choose. To guarantee the protection of your shipments, integrate the Anansi plugin into your shipping platform. You can sign up to Anansi through this page. This documentation will guide you through a straightforward, step-by-step process to set up automatic insurance for the parcels 
ed through various courier services.

Accessing the Plugins Page
Click the "Plugins" button in the left-hand menu to access it.

Anansi Installation
To initiate the installation process, click on the Anansi icon. If you have any prior installations, they will be displayed in the pop-up window. If not, the system will prompt you to add a new connection. Click on "Add New" to proceed.

In this section, you'll be prompted to provide the following details, each explained below:

Is Active: Toggle this option to activate or deactivate the plugin. If set as active, the plugin will be available for use; otherwise, it won't affect shipments.
API Account: Choose the API Account you want the plugin to work with. Further information about API Accounts can be found on the dedicated documentation page.
Anansi API Key: Paste the API key obtained from Anansi here, or leave it empty to use the default API key.
Policyholder ID: Obtain this ID from the Anansi platform and paste it into this field.
Sign Up for Anansi: Clicking this button redirects you to the Anansi sign-up page.
After clicking "Create," your connection details will be saved, and you'll return to the previous pop-up page. Here, you can view the connection you just created and choose to activate or deactivate it, edit the details, or delete the connection using the available options.

For those utilising the Anansi plugin through API with JSON requests, note the following:

"shipment": {"plugin_validate_anansi": true}: You can check and validate shipment insurability with Anansi using this key. If insurable, label creation proceeds; otherwise, a 400 status includes Anansi's reason for the failure.


API Request Records
 
API Request Logs

Overview
The API Request Logs page provides a comprehensive overview of incoming requests from individual API users to the system. This page is a central hub for reviewing the various API requests directed at your system.

Within this documentation, we will guide you through effectively utilising this page and its accompanying features. This guide will cover essential tasks such as conducting searches within the requests, interpreting log files, and comprehending request particulars like response codes.

Defining View
Upon successfully logging into your Shipping dashboard, navigate to the "API Request Logs" page by selecting it from the menu on the left-hand side of the interface.

To begin, you have the flexibility to customize the content displayed on the API Request Logs page. On the top right corner, you'll find a button that, when clicked, enables you to select the specific options you wish to have displayed. Utilize this feature to indicate your preferences for the content you want to view. Additionally, you can determine the visibility of specific columns through the "Column Selector" and designate your chosen filters in the "Filter Selector" section.

Search Bar
To conduct searches within your API requests, take advantage of our distinct search parameters, namely "REQUEST_ID" or "ID," both accessible to the left of the "Search" button.

REQUEST_ID: This identifier is determined by the user within their request. Typically, it corresponds to the UNIX timestamp denoting the request time. You can adopt this approach in scenarios where the "request_id" aligns with the request time. Moreover, the "request_id" content in your request JSON can be configured as per your requirements.

ID: The Courier API system assigns a unique global ID to each specific request. This numeric identifier is sequential and perpetually increasing. For instance, if a request bears an ID of "51," the subsequent request will be assigned an ID of "52."

Filtering by Date
You also have the option to specify a particular date range for viewing API requests. As demonstrated in the image below, selecting a date range within which our requests are present becomes necessary when the default date range does not yield any results.

To modify the date range, click on the calendar icon in the screen's top-right corner.

You will find two distinct options: one permits manual selection of a date range directly from the calendar, while the other provides a convenient "Fast Date Picker." The latter offers a variety of pre-defined date ranges frequently used, such as "This Week," "Last Week," "This Month," and more. It empowers you to swiftly narrow down your API request logs according to your needs.


Filters
Filters are powerful tools to fine-tune your search amidst the array of requests.

Request URL: The Request URL corresponds to the Courier API endpoint to which your request is directed. You can retrieve API Requests containing the specified keywords by inputting either the complete URL or a portion of it. It's unnecessary to input the entire request URL to apply this filter effectively. For instance, typing "RoyalMail" in the search field will display a comprehensive list of requests linked to Royal Mail. Similarly, if you seek "create-label" requests, a simple "create" filter will suffice.
API Account: Should you function as a reseller or agency, managing Courier API on behalf of diverse clients, the potential for multiple API user accounts exists (these accounts can be established in the "API Accounts" section). In this context, the API Account filter allows you to select the specific API account(s) for which you wish to evaluate requests.
Response Code: This pertains to the HTTP response code assigned to requests. By specifying the code within this filter, you can zero in on API requests of interest. For instance, entering and selecting the "400" code, as depicted in the image below, will exclusively present a list of requests bearing this particular response code.

Request Details
Once you've selected your desired date and applied filters, a comprehensive list of requests and their corresponding details will be presented. As illustrated in the image below, this section encompasses a range of more information and features, each of which we will examine individually:

Date Time: This field displays the precise date and time when the requests were transmitted.
Request Method: This column showcases the HTTP request methods employed for each request. Typically, these methods include GET and POST requests.
Request Authenticated: The numerical value here corresponds to the API user ID. As shown in the subsequent image, this number is distinct for each API account.
Duration (ms): This field denotes the duration between the moment the server received the request and the subsequent transmission of the response, with the time interval measured in milliseconds.
Furthermore, additional fields exist like ID, Request ID, Request URL, and API Account. These have been previously discussed within this documentation's "Search" and "Filters" sections.

Response Code
The Response Code refers to the HTTP response code. While sending requests, you may encounter several common response codes, each with its distinct implications:

200: This code signifies that the request has been successfully processed.
400: Indicating a client error, this code denotes that the server is unable or unwilling to proceed with the request due to perceived issues with the client's input.
401: This code reflects an incomplete client request arising from a lack of valid authentication credentials for the specified resource. Among the most frequently encountered errors on the Courier API, this isn't a system flaw but rather an indication that the submitted information does not match the required criteria.
500: This code indicates an unexpected server condition that hinders the fulfilment of the request. It's often employed when no other error code precisely fits the situation.

Logs
When you click on the Logs icon associated with any given request, you'll notice two distinct sections: "Request Data" and "Response Data." These sections provide insight into both the data sent and received. In the following areas, we'll delve into the details of the codes in both the request and response data.

Request Data: This section encompasses the body of the request sent to the Courier API. Below is an example of Request Data:
 { 
        "testing": true, 
        "auth_company": "",
        "request_id": "", 
        "format_address_default": true, 
        "shipment": { 
                "label_size": "6x4",
                "label_format": "pdf", 
                "generate_invoice": false, 
                "generate_packing_slip": false, 
                "courier": { 
                        "posting_location": "9000257150"
                } , 
                "dc_service_id": "ROYALMAIL-CRL1-P", 
                "collection_date": "2021-11-03T16:00:00", 
                "reference": "DC1234567890", 
                "delivery_instructions": "Leave on the porch", 
                "ship_from": { 
                        "name": "John Doe", 
                        "phone": "01377455180", 
                        "email": "[email protected]", 
                        "company_name": "Despatch Cloud Ltd", 
                        "address_1": "Unit 76", 
                        "address_2": "Warfield Road", 
                        "address_3": "", 
                        "city": "Driffield", 
                        "postcode": "YO25 9QF", 
                        "county": "East Yorkshire", 
                        "country_iso": "GB", 
                        "company_id": "", 
                        "tax_id": ""
                } , 
                "ship_to": { 
                        "name": "Jane Doe", 
                        "phone": "01377455180", 
                        "email": "[email protected]", 
                        "company_name": "Despatch Cloud Ltd",
                        "address_1": "Unit 76", 
                        "address_2": "Warfield Road", 
                        "address_3": "", 
                        "city": "Driffield", 
                        "postcode": "YO25 9QF", 
                        "county": "East Yorkshire", 
                        "country_iso": "GB"
                } , 
                "parcels": [
                        {
                                "dim_width": 20, 
                                "dim_height": 40, 
                                "dim_length": 40, 
                                "dim_unit": "cm", 
                                "items": [
                                        { 
                                                "description": "Test Item One", 
                                                "origin_country": "GB", 
                                                "quantity": 1, 
                                                "value": 20, 
                                                "value_currency": "GBP", 
                                                "weight": "0.6", 
                                                "weight_unit": "kg", 
                                                "sku": "TEST0001", 
                                                "hs_code": "12345"
                                        } , 

                                        { 

                                                "description": "Test Item Two", 
                                                "origin_country": "GB", 
                                                "quantity": 1, 
                                                "value": 5, 
                                                "value_currency": "GBP", 
                                                "weight": "0.4", 
                                                "weight_unit": "kg", 
                                                "sku": "TEST0002", 
                                                "hs_code": "12345"
                                        } 
                                ]
                        } 
                ]
        } 
 } 


"testing": This employs a registered auth marked with "yes" in the UI, often utilized for testing purposes. If test credentials are used, or the courier's testing URL is the target, this parameter is set to false by default.
"auth_company": It corresponds to the Company field registered in the UI. It acts as an identifier for the courier on your account. It's essential when managing multiple accounts with the same courier.
"request_id": This value is randomly generated within our playground, but you can set it as desired. This ID assists in locating requests within your CourierAPI account dashboard.
"format_address_default": Set to "true," this feature aids in resolving common address formatting errors within the API. However, the exact validation methods may vary among different couriers.
"label_size": You can select from sizes such as 6x4 or 8x4 or even consult S17 and S19 label sizes. Additional information regarding label creation, various label sizes, and more can be found in the Documentation.
"generate_invoice"/"generate_packing_slip": These options allow for generating a commercial invoice or a packing slip. If a 6x4 packing slip is required, you can also opt for that.
"dc_service_id": This pertains to the ID of the courier service preset. These presets consist of specially configured codes granting access to specific services each courier offers. For further details, you can refer to the Courier Directory document.
"collection_date": This represents the expected collection date of the parcel. Usually, it reflects the current date along with a timestamp.
"reference": Customers can set a reference when submitting a shipment request. This reference can be displayed on the label or bill. For instance, you might use the Order ID of the shipment.
"delivery_instructions": If the courier supports delivery instructions and you possess specific instructions from your client, you can provide them here. This customer-driven field allows you to leave directions for the delivery driver, such as "Leave on the porch" or "Deliver to my neighbor if I'm not home."
"country_iso": Recipient address Country ISO code. Refer to the "ISO 3166-1 alpha-2" list for clarification.
"company_id": Company number for Companies House (consignor), necessary for international shipments.
"tax_id": VAT number with issuing country, required for international shipments.
"eori_id": Economic Operators Registration and Identification number (EORI), typically VAT number with trailing 000s, necessary for international shipments.
"description": Item description, as in your inventory system or website. E.g., "Blue Monster Doll."
"origin_country": ISO code of where the item was initially imported; consult the "ISO 3166-1 alpha-2" list.
"sku": Item identifier in your inventory system, like "TOY40."
"hs_code": International standard codes for classifying shipped items.
Response Data: This section encapsulates the body of the response received from the Courier API. Here's an example of Response Data:
 { 
        "type": "PDF", 
        "request_id": "329303e4a51eb6cb8b9fc159d93bef407cd7d01d", 
        "tracking_codes": [
                "280069786000801841ADF"
        ], 
        "tracking_urls": [
                "https://www.royalmail.com/track-your-item#/tracking-results/280069786000801841ADF"
        ], 
        "uri": "https://storageserversam.s3.eu-west-2.amazonaws.com/courierapi/rm_Y5XdcWDihjNwQmwut1NP.pdf?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIA2GR3ABGL2AFT4WNM%2F20211103%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20211103T133407Z&X-Amz-SignedHeaders=host&X-Amz-Expires=3600&X-Amz-Signature=85a9807a3e352318920722b73cfa748176357323e1eb17fe4c93df47f3d7e40d", 
        "key": "rm_Y5XdcWDihjNwQmwut1NP.pdf", 
        "dc_request_id": 46411175, 
        "tracking_request_id": 46411175, 
        "tracking_request_hash": 1934866789, 
        "label_size": "6x4", 
        "courier": "RoyalMail", 
        "dc_service_id": "ROYALMAIL-CRL1-P"
 } 


"tracking_codes": The courier supplies this code for tracking purposes.
"tracking_urls": If used alongside the Channel API, this information can be pushed back to compatible platforms like eBay, Amazon, Shopify, and more.
"uri": An array of URLs the courier provides for customers to track their shipments. Not all couriers support this feature. The URI has a 1-hour expiration time.
"key": This is used to regenerate the PDF in case the URI expires.
"tracking_request_id" / "tracking_request_hash": These parameters are helpful when making the get-tracking request, which retrieves tracking updates from the Tracking API if the Tracking API supports the courier.
By thoroughly examining these sections, you can understand the data interactions between your system and the Courier API. If there's anything else you need assistance with, please don't hesitate to let us know.

Request Logs
Request Logs offer a comprehensive view of a request's journey from inception to culmination. It includes tracking how numerous requests are initiated, transmitted, and processed until the final response is obtained and presented. A window will appear when selecting a specific request, showcasing key details like Date Time, ID, Method, URL, Duration (ms), and Status (Response Code) of the API request.

Clicking the "View logs" button unveils the logs for requests flowing between the Courier API and the courier's servers, displayed as both Request Data and Response Data.

Request Data: This section encompasses the requests despatched from the Courier API to the courier's servers.
Response Data: In this section, you gain visibility into the responses received by the Courier API from the courier's servers.


API Accounts

Overview
Upon completing your registration with Shipping API services, your initial step involves establishing an API user account. The central objective of the API Accounts page is to oversee the administration, modification, and removal of API accounts, facilitating the subsequent label generation process.
This documentation will comprehensively acquaint you with all the segments and functionalities accessible on the API Accounts page. Our guide will encompass initiating a fresh API account, deactivating it if necessary, and integrating authentication details—courier credentials. Furthermore, an exploration of the Keys & Tokens, View Shipments and Actions sections will also be presented.

Accessing the API Accounts Page
Select the prominently marked "API Accounts" button in the left-hand menu.
Creating a New API Group
Employing an API Group allows you to cluster API Accounts together within the groups you establish. It proves advantageous when you aim to categorize the accounts you possess alongside the authentications you've implemented.
This procedure closely resembles the creation of API Accounts, but it's notably more streamlined.
To initiate this process, select the "Create" button in the page's upper right corner. Following this, opt for "Create API Group" from the dropdown menu that appears. A window will materialize at the centre of the screen, prompting you to assign a name to your group. Upon naming, finalize the process by clicking the "Create Group" button.

Subsequently, you gain the ability to generate fresh API Accounts within the newly formed group or transfer existing API accounts from other groups into this newly established one.

Kindly be aware that all API Accounts need to reside within an API Group. You must create one before creating an API Account.


Creating a New API Account
The "API Accounts" page comprehensively lists API accounts associated with your user profile. It's possible to have multiple API accounts linked to a single user. Depending on your usage scenario, you might only require one API account as an individual API user. However, if you function as a reseller or an agency, managing the Courier API on behalf of different clients, the option exists to maintain multiple API user accounts.
Access the "Create" button in the upper right-hand corner to initiate creating a new API account. From the ensuing dropdown menu, select "Create API Account."
After opting for "Create New API Account," furnish a Name for the account and generate a unique key within the ensuing window. This key is exclusive to your account. While you won't need to input it directly into your requests, it's advisable to store it securely. Although infrequently required, this key becomes essential for specific applications, such as internal applications within the DC framework.
Upon completing these steps, finalize the process by selecting "Save Changes." Subsequently, your freshly generated API account will be visible on the page, ready for utilization.

Registering New Auths
Upon obtaining your API credentials for the courier service, the next step involves registering them with the Courier API. This process ensures that your credentials are securely stored within the Courier API system, eliminating the necessity of including them with each request. These credentials are your authentication details for the courier, and to integrate a courier into the Courier API, you need to register a new authentication.
To begin registering a new authentication, navigate to the "API Account" page and locate the "View Registered Auths" section. Adjacent to this, you'll find a plus icon – click on it.

Triggering the plus icon initiates a dropdown menu containing courier names.
You can choose the specific courier or couriers you have in mind by inputting the corresponding courier authentications. After selecting the courier, proceed to complete the necessary fields.

Company: You can add a company name for differentiation purposes. This field is handy if you possess multiple accounts associated with the same courier; adding a company name aids in distinguishing between these accounts.
Testing Flag: Ensure that the Testing field aligns with your current mode. If you're operating in a testing environment, mark this field as "Yes"; otherwise, leave it as "No."
Credentials: Enter any courier-specific information required in these dedicated fields.
Once you've diligently filled in these details, finalize the process by clicking "Save Changes." Congratulations, you've now effectively registered a new authentication within the system.

Viewing Registered Auths
Click the "View Registered Auths" option to access your registered authentications.

Upon opening the pop-up, you can review both the "View Presets" and "Details" associated with each authentication. Should the need arise, you can also remove registered authentications by clicking on the red bin icon.

View Presets: This option lets you observe the presets configured for the courier linked to the registered authentication. Clicking on "View Presets" will seamlessly redirect you to the service directory of the chosen courier. Within this directory, you can review existing presets or establish new ones.
Details: Through the "Details" button, you can delve into the specifics of the authentication. It encompasses information such as the username and password or API keys. Moreover, you can make alterations to these details as required.
Trash Bin Icon: The trashbin icon facilitates the removal of an authentication from your API Account. This action can be performed whenever deemed necessary.

Keys & Tokens
Upon selecting this button, you'll encounter two distinct sections: the "Account Key" segment and a section dedicated to Tokens.
Account Key: As previously discussed in this document, when generating a new API account, a unique key is generated exclusively for that account. In this section, you can both "Re-Generate Key" and "Reset Key." 
A word of caution: Should you choose to reset the key while it's concurrently in use by your applications, it will lead to a disruption, necessitating an update to the key with a fresh one. This action might be taken to revoke access. Nevertheless, we advise using tokens, which yield a similar outcome. Tokens offer the advantage of enabling you to create multiple instances, each serving different use cases.
Tokens: Tokens are indispensable for crafting authentication requests via the API. They serve as identifiers for requests originating from specific API users. Consequently, a token associated with the relevant API user is essential to verify a request's authenticity. Within this section, you can review previously generated tokens or generate new ones. To create a fresh token, click the "Create Token" button.
Following this, assign a name to your token and proceed by selecting "Create Token" once again.
Upon preservation, your newly minted token will become visible on the lower part of the screen. The corresponding token value can be found here. If, at any point, you desire to eliminate a particular token, you can do so by clicking on the adjacent bin icon.

View Shipments
Upon selecting the "View Shipments" button, a redirection will take place, guiding you to the Shipments page. An encompassing list of all shipment requests dispatched by the specific API account will be visible here.
For a deeper understanding of shipments and a comprehensive exploration of the Shipments page, we recommend consulting the Shipments Document.

Actions
Disable: You can deactivate one or multiple API Accounts at your discretion by selecting the "Disable" button. Deactivating an API account will restrict its access. Once deactivated, the button will transition to green and display "Enable," facilitating the reactivation process for future utilization.
Change Group: This functionality empowers you to transfer the chosen API account to a different API Group, facilitating organized management.
Delete API Account: If needed, you can erase an API Account or multiple accounts by clicking the bin icon adjacent to the "Disable" button.

Webhooks

Overview
Web applications communicate through API calls, where requests yield responses, and webhooks serve as automatic event triggers that promptly relay information. Unlike API calls requiring periodic data polling, webhooks provide real-time event notifications. This document will guide you on creating and utilizing webhooks within the Shipping API, alongside an overview of the Webhooks page's features.

Accessing the Webhooks Page
To navigate the webhooks page, click the "Webhooks" button in the left-hand menu.

Creating a Webhook
To initiate the webhook creation process, click the "Create Webhook" button in the top-right corner. Subsequently, a pop-up window will appear, prompting you to input the necessary details:

Name: Provide a unique name for your webhook, which can be anything you prefer.
Event: Here, you can select the specific events you want to receive notifications from the application. Options include:
shipment.created: Notifies you whenever a shipment request (label request) is made.
shipment.cancelled: Reports on any canceled shipments in the receiver application.
auth.registered: Alerts you each time a new authentication is registered on your Courier API account, which can be managed on the "API Accounts" page.
shipment.tracked: Informs you when a shipment is tracked in the receiver application, provided you have enabled tracking in your account settings.
API Account: Choose the relevant API account to associate with this webhook. API accounts can be configured on the "API Accounts" page.
Method: Select the HTTP request method for your webhook, typically either PUT or POST. The majority of webhooks use POST to transmit data.
URL: To set up the webhook, input the URL where the Shipping API should deliver its requests. You can obtain this webhook URL from the destination application to which you wish to send data. If you don't have a specific application, consider using an example like Webhook.site and utilize the provided URL. You can find more information about it in this section.
Headers: This section is optional but allows you to include additional headers if the target application requires it. Click "Add Header" to add a header and complete the necessary fields.
Once you've filled in these fields, click "Create Webhook." You'll then be prompted to enable the webhook. If you intend to use it, click "Enable Webhook." Following this confirmation, you can view the webhook you've just created.

Editing a Webhook
Status: This column displays the current status of webhooks, which can be either "Active" or "Inactive." You can toggle the status of each webhook by clicking the corresponding icon to "Enable" or "Disable" it. Please note that if a webhook is inactive, no notifications will be sent by the receiver application.
Edit: Modify webhook details by clicking the "Edit" button next to it.
Test: To ensure your webhook is functioning correctly without needing to test API requests and credit consumption, you can test it. Click the related icon, and you'll be presented with the "Request Data" for the specific event (e.g., creating a shipment request) and the subsequent "Response Data" from the receiving application (e.g., Webhook.site). You'll receive a message indicating the success or failure of the test.
Jobs: Access the "Webhook Jobs" page by clicking the icon associated with each webhook. Here, you'll find information such as:
Try Count: Indicates how many attempts have been made to send data to the webhook URL.
Date Triggered: Specifies the exact date and time when the webhook event was triggered.
Request Log ID: A unique identifier for the request in our system.
Last Response Code: Displays the HTTP response code for requests, showing the most recent response code from the Shipping API about that webhook.
API Logs: Click the relevant icon in this column to access the "API Request Log" page for more detailed information about the webhook. Additional information on API Request Logs can be found in the dedicated document.
Logs: This section contains the webhook request logs. Click the associated icon to view the URL, Method, and Response Code details. For a more comprehensive view of the "Request Data" and "Response Data" of the webhook, click "View Request & Response."
Delete: To remove a webhook, click the bin icon at the end of the row.

Webhook Website and Connection
To acquire your unique URL, visit https://webhook.site/ and use it within the Shipping API. After sending a test notification through the test function, you can verify its presence on the platform, confirming the successful functionality of the webhook you've set up.


Email Settings

Overview
This documentation provides a comprehensive guide to configuring email settings in your Shipping API account, explicitly focusing on integration with MailGun. You will learn how to access the Email Settings section, create a new account, fill in account details, including the MailGun API Key, Domain, and API Base URL, and retrieve these MailGun-specific values from your MailGun account. Following these steps will ensure the successful configuration of your Courier API Email Settings, enabling efficient email notification delivery through MailGun.

Accessing the Email Settings Page
Navigate to the "Notifications" button on the left-hand menu, and select the highlighted "Email Settings" tab in the screen's top right corner.

Creating a New Account
Choose the desired account type from the options available on the left side of the screen, including Mailgun, Amazon SES, or Sendgrid. After selecting your preferred service, click the "Create Account" button to initiate the account creation process. Subsequently, click the highlighted section to access and expand the details of the newly created account, revealing the fields that require completion. Retrieve the essential credentials from your chosen platform, and then conclude the setup by clicking the "Save Account Details" button.

Obtaining API Credentials from Mailgun
To acquire the "MailGun Domain" value, log in to your MailGun account, and from the list of domains, select the one you intend to use. Copy the corresponding domain address and paste it into the designated "MailGun Domain" field within your Shipping API Email Settings.

For obtaining the "MailGun API Key" and "MailGun API Base URL" values, you have two options: you can either click on the desired domain, as indicated in the highlighted area, to navigate directly to the API key generation page or navigate through the left-hand bar by clicking the "Sending" tab and then proceed to the "Overview" page.
Locate and select the API section on this page, providing you with the required credentials. Subsequently, paste these acquired values into their respective fields: "MailGun API Key" and "MailGun API Base URL" within your Shipping API Email Settings.

If you are using a Sandbox, make sure that the recipients are authorized in the Mailgun dashboard.


Obtaining API Credentials from SendGrid
Log in to your SendGrid account and access the "Settings" section. You can do this by clicking on "Settings" in the dashboard or using this direct link: SendGrid Settings.
On the "API Keys" page, locate and click the "Create API Key" button, which is positioned in the top right corner.
Follow the provided instructions to generate an API key. Be aware that the generated API key will be visible only once for security reasons, so copy and paste it into the "API Key" field within your Shipping configuration.
Ensure you have a trusted sender by navigating to the "Settings" section again and selecting "Sender Authentication." Alternatively, use this link: Sender Authentication in SendGrid.
On the "Sender Authentication" page, you have two options:
Authenticate a domain, allowing you to send emails from any address under a domain you control.
Verify a single sender, enabling you to send emails exclusively from a specific address.
After completing the sender authentication, copy the approved email address and paste it into the "Test Sender" field within your Shipping settings.
Before saving your settings, click the "Test Settings" button to verify your configuration functions correctly.
In the "Name" field within Shipping, you can enter any label that helps you identify this as your SendGrid account. This field is for your reference.

Obtaining API Credentials from Amazon SES
To set up Amazon SES as your email provider, you must obtain the Test Sender, Region, Key, and Secret details. Follow these steps to complete the setup:

Log into your AWS account and ensure the selected region aligns with your intended usage. You can do this by expanding the region menu located in the top right corner of the AWS console.
Next, create an IAM (Identity and Access Management) user with the "AmazonSESFullAccess" policy. You can initiate this process by visiting the IAM User Creation link.
Follow the steps outlined in the provided GIF or instructions on the page. After successfully creating the IAM user, click the "Download .csv" option and securely store the downloaded CSV file on your computer. This CSV file contains your Key and Secret credentials.

As the second step in setting up Amazon SES as your email provider, please follow these instructions:
 
To initiate the "Create Identity" process, which authorizes a sender email or domain, go to the Amazon SES Dashboard page.
You'll encounter two identity options on the SES Dashboard: verify an entire domain or a specific sender email address. After providing all the necessary information, click the "Create Identity" button at the page's bottom right corner.
After completing this step, you must validate the email address or domain. To do this, you must request production access from the SES Dashboard. Click "Account dashboard" on the left-hand menu to navigate this page. You'll find the "Request production access" button in the top section of this page. Click it to finalize the process.
While on your dashboard, you can identify your AWS region in the dropdown menu. Interact with the button at the top right corner; the selected region will be highlighted in orange. For example, it might appear as "eu-west-2." You'll use this region information in your Shipping configuration's "Region" section.
In the last section, you'll find an example of how to input your information into Shipping. The "Name" field can be any label you prefer. Use the email address you used during the Amazon SES setup as the "Test Sender." Follow the region instructions mentioned above in the "Region" section. Retrieve the "Key" and "Secret" from the CSV file. You can test and save the connection once you've completed all these steps.


Email Templates
Overview
We take immense pride in a standout feature – the Email Template Creation capability. This feature empowers you to craft a limitless array of personalised and pre-designed templates, which are invaluable for sending notifications to your customers regarding their shipments via the Shipping API.
This document is your comprehensive guide to the suite of tools for crafting bespoke email templates. In essence, we'll walk you through creating an email template and demonstrate how to incorporate text, images, GIFs, HTML code, and more into your templates.
Accessing the Email Templates Page
To access the Email Templates page, click the "Notification" button in the left-hand menu and then choose the "Email Templates" tab from the top-right corner of the page.

Creating a Template
To initiate the creation of a new template, click on the "Create Template" button in the top-right corner of the page. This action will lead you to a fresh, blank template page. Your initial step should be naming your template, which can be done through the page's top-left corner.

Variables & Usage
You'll access a JSON-structured list of variables by clicking the "Variables & Usage" button, conveniently located next to the naming field. This functionality enables you to incorporate shipment data seamlessly into your template content by inserting these variables. For practical guidance on utilising variables and implementing loops, refer to the provided examples in the "Usage" tab.

Example Variable:
Your Tracking Code with {$courier} is {$trackingCode}. It will arrive at {$shipment->ship_to->postcode}.
Example Loop:
{foreach $items as $item}
You ordered {$item->quantity} of {$item->description}
{/foreach}
It's important to note that we employ Smarty 3 as the template engine for this process, and you can find further details in the Smarty 3 Documentation for a more in-depth understanding.

Email Editor
Observing the multitude of tools and elements available on the right-hand side of the page, it becomes evident that these resources are instrumental in simplifying crafting your email content. Let's delve into how to harness these tools to construct your preferred template.

You have two options for utilising these elements:

Drag & Drop: You can drag and drop one of the elements from the "Content" section into the blue box.
Select & Add: Alternatively, click the blue box and choose the desired element from the available options.

Content
The "Content" section comprises two categories: "Basic" and "Premade" blocks, each offering various elements for crafting your email templates.

Basic:

Text: This element adds a text box to your template, enabling text input and editing via the tools displayed atop the text box and within the right-hand "Content" section.
Image: You can incorporate images into your email template using this element. After adding it, customise the image box by uploading it from your computer or selecting a free stock image from Pexels. Options include creating folders, selecting and deleting images in the file manager, and additional settings in the "Content" section.
GIF: This element allows the addition of GIFs to your email template. You can change the default GIF by clicking on the image box and choosing from options like GIPHY or providing a custom source URL.
Button: Use this element to add clickable buttons linked to URLs. Button text, link, shape, and color options are available in the "Content" section.
Divider: Add dividers to separate content within your template. Customise line style, color, and background color by clicking on the divider element.
Spacer: This element inserts space between other template elements. You can adjust the spacer height and background color.
Social: Incorporate social media icons into your email template with this element. Customise icon styles, sizes, and padding, and even upload custom icons. The "Is Share URL" option streamlines social media sharing by prepopulating messages and images.
Video: Add videos from YouTube or Vimeo by entering the respective links.
HTML: Embed HTML code into your email template using this element. Access the HTML Content section for code input.
Premade:

Header: Drag and drop the "Headline" to insert a headline, allowing HTML code input for customising the header.
Content: This option provides predefined Title, Paragraph, Buttons, and Divider elements for easy inclusion in your template.
Footer: By dragging and dropping "Company Footer," you can add a predefined footer to your template.
Additionally, there are "Structure" and "Setting" sections. The "Structure" option lets you choose from predefined design structures, such as one, two, three, or four elements in a row, simplifying the placement of your desired elements.

In the "Setting" section, you can access a list of settings applicable to the entire template, not just specific elements, streamlining global adjustments to your template's appearance and behavior.



Options
Located on the top bar, you'll find essential buttons to enhance your template design experience:

Redo & Undo: These buttons empower you to redo or undo your actions, ensuring precise control over your template's evolution.
Preview: By clicking this button, you can visualise your template in a rendered state, precisely as it would appear to your customers.
Save: The save button is crucial on the far right side of the bar. Your template changes remain unsecured until you click this button. Once saved, you can revisit your templates anytime to view your creation.
Options: Once you're back at the templates page, clicking the options button reveals a menu offering choices like copying, editing, and deleting your template. Copying simplifies template creation by allowing you to retain the parts you need for your new template, saving you valuable time and effort.

An Example Email Template
We've designed a basic email template example that can provide you with valuable insights. Below, we'll break down the elements used and their order to simplify replicating or creating a similar email template with a comparable structure.

1. Header with Company Logo:We've incorporated a picture field at the top, where you can insert your company's logo and adjust its size.
2. Divider:We've added a divider below the company logo to create a visual separation between sections.
3. Personalized Message Text Field:In the next section, you'll find a text field. It is where you can include a meaningful message using available variables. These variables fetch data for each order, enabling you to craft personalized emails for each customer.
4. Divider:Another divider follows the personalized message section, maintaining visual clarity.
5. Social Media Links and Additional Text Field:The subsequent section combines both text and social media fields. Here, we've customized the social media links for our company. You can easily modify this field to include as many platforms as possible. Furthermore, if you wish to include a platform unavailable in the presets, you can upload a custom logo and tailor it to your needs.
 
With just a few straightforward steps, our user-friendly graphical interface empowers you to create visually appealing and personalized emails that resonate with your customers.

History

Overview
Welcome to the "Customer Notifications History" page, your central hub for tracking the status of notifications (emails) sent to customers. Here, you can view a comprehensive list of notifications, including sent, failed, canceled, and pending messages, and take action accordingly. Explore options to check the details of past communications and cancel pending notifications.


This guide will help you make the most of these features and understand the intricacies of Notification details within the Shipping API.


Accessing the Notification History Page
To navigate this page, click the "Notifications" button in the left-hand menu. Once on the Notifications page, locate and click the "History" tab in the top-right corner, as indicated in the GIF below.






Notification Details
Here's a concise description of the critical elements on this page:


 
ID: The Notification Job ID increments with each new notification creation.
Name: The "Notification Name" assigned to the notification you created on the Notification page.
Execution Time: This represents the scheduled time for email delivery or when an email is canceled or fails, allowing you to specify a delay after the triggered status.
Recipient: Displays the recipient's email address.
Mail Account: Indicates the selected mail account associated with the notification.
Status: Reflects the current status of the notification:
Pending: Signifies that the notification is awaiting its scheduled send time, as specified in the delay settings.
Completed: Indicates that the notification was successfully sent.
Cancelled: Denotes a notification that was canceled before sending.
Failed: Marks a notification that failed to send for any reason.
Log: Clicking on the icon in the "Log" column allows you to access the logs associated with the specific notification, redirecting you to the "API Request Logs" page.
Preview: Clicking the preview icon enables you to view the rendered email as the recipient will receive it.
Cancel: If the notification is pending, you can cancel it by clicking on the related bin icon.
Filters: Utilize the filters at the top of the page to refine your results based on specific criteria, mirroring the functionality of the filters found in the Notification tab.

Notifications
Overview
Welcome to our Shipping API documentation, where we present a powerful feature enabling you to send notifications triggered by specific events. With this functionality, you can effortlessly inform your customers about shipment milestones such as booking, dispatch, and delivery. It enhances the post-purchase experience and provides a valuable avenue for gathering user feedback on your business.
In this guide, we will walk you through creating notifications. We'll introduce you to the options on the Notifications page and demonstrate how to manage and edit your notifications effectively.
Accessing the Notifications Page
Click the "Notifications" button from the left-hand menu to access it.

Creating a Notification
Click the "Create Notification" button in the page's top right corner.
If you encounter an error message indicating the need to configure an email template or email account before proceeding, you must set these up before creating a notification. Refer to our "Email Templates" and "Email Settings" pages for detailed instructions on how to do this.
Upon clicking the "Create Notification" button, a window will appear where you can configure the filters and details for your notifications:
Notification Name: Choose a name for your notification; it can be anything you prefer.
API Account: Select the API account for which you wish to enable the notification feature.
Linked Couriers: After selecting the API account, specify the courier or couriers you want to notify customers about triggered events.
Parameter: By default, "Tracking Status" is selected as the parameter, but you can add another parameter by clicking the "Add Parameter" button. The additional parameter available is "Delay Time."
Tracking Status: Choose the tracking status or statuses you want to trigger customer notifications. For more information about tracking statuses, refer to our "Tracking API" document.
Delay Time: Specify the time delay, in days, after the triggered status for the email to be sent. For example, if you select "Delivered" as the tracking status and enter "7D" in the "Delay Time" field, the email will be sent seven days after we receive notification of delivery. This option allows you to send emails requesting reviews, for instance.
Once you have filled in these fields, click "Continue" to proceed to the next page.
On the next page, you'll configure additional details for your notification:
Subject Line: This is the subject of the emails that will be sent. Customize it to reflect the purpose of the email, such as "Please leave a review."
Mail Account: Choose one of the mail accounts you previously created on the "Email Settings" tab.
Sender Name: Enter the email sender's name as you want it to appear in the email.
Sender Email: Provide the sender's email address, which will be shown as the "from" address. Note that this email address should be defined in your mail provider settings.
Email Template: Click the pencil icon to access the Email Template tab and select one of the templates you created earlier.
After filling in all the necessary fields and selecting the desired template, click "Create Notification."
Congratulations! You have successfully created the notification, which will now appear in your list of notifications.

Notification Options
Let's explore the various options available for your created notifications:
Status: You can set the notification as "Active" or "Inactive" by clicking the button adjacent to it.
Play Button: To ensure your notification has been configured correctly, click on the test button associated with that notification. It allows you to test the notification, and the system will provide feedback on whether the test was successful or unsuccessful.
Edit: If you need to change a notification, click the pencil icon in the edit column to access the editing options.
Delete: If you wish to remove a notification, you can do so by clicking on the trash bin icon.

Filters
Filters are crucial in refining your search results based on your specific requirements. Here's an overview of the available filter options:
Name: If you're looking for a notification with a particular name or a part of it, you can input the name in this field to narrow down your search results.
Status Trigger: This filter allows you to view notifications with specific trigger statuses, such as "Booked," "Collected," "Delivered," and more. Select the desired status(es) to filter the results accordingly.
Mail Account: If you've added multiple mail accounts and need to focus on specific ones, use this filter to isolate the desired mail account(s).
API Account: To view notifications associated with particular API accounts, make your selection from this filter.
Linked Couriers: With this filter, you can specify the courier(s) for which you want to view related notifications.
Status: If you want to differentiate between "Active" and "Inactive" notifications, you can use this filter to display notifications based on their status.
Additionally, you can choose which columns are visible to you by accessing the "Column Selector." Similarly, you can customize which filters are displayed in the "Filter Selector" section, represented by the highlighted circle icon between the filter columns and the "Create Notification" button.


Smart Shipping

Overview
The Shipping API streamlines the process of selecting delivery services by enabling you to establish predefined shipping criteria. These criteria can be tailored to parcel dimensions, weight, value, or destination region. Once these rules are configured, the Shipping API intelligently allocates the most suitable service for your shipment. The Smart Shipping functionality within the Courier API empowers you to define these rules.
This documentation will guide you through setting up these rules using the Smart Shipping page within the Shipping API. We will also provide a comprehensive explanation of how this feature operates.
Accessing the Smart Shipping Page
To access the "Smart Shipping" feature, click the corresponding button in the left-hand menu.

Creating a Rule Group
Before creating a smart rule, you need to establish a rule group. To do this, follow these steps:

Select an API Account.
Click the "Create" button.
Choose "Create Rule Group" from the options provided.
A popup window will appear, prompting you to give the rule group a name. Once you've provided a name, click the "Create Group" button to complete the process.

Creating a Smart Rule
To begin, follow these steps to initiate the process:

Choose Your API Account: Select the API account you intend to work with.
Create a New Rule:
Click on the "Create" button.
Opt for the "Create Smart Rule" option.
Afterwards, the system will prompt you to input essential information for the rule:

Rule Priority: The priority assigned to a rule is crucial, as it dictates the order in which rules are executed. A zero (0) priority signifies the highest precedence, with higher numbers indicating lower priority. For instance, if you have two rules, one with a priority of 5 and the other with a priority of 0, the rule with a priority of 0 will be applied first when the filter criteria match.
Rule Name: Provide a unique name for your rule. You have the flexibility to choose any name that suits your needs.
Group Name: Select one of the groups you have previously created to categorize and filter your rules.
Once you've filled in these details, proceed to the following steps:

Set Parameters:

Click on "Set Parameters."
Choose a "Parameter Type." The available fields will vary based on your parameter selection.
To include multiple parameters, click the "Add Parameter" button.
For example, you can set parameters for "Price" within the range of £5-£10, "Weight" between 1-3 KG, "Channel" as Amazon, and "Supported Country" as UK. The courier specified in this rule will process any package meeting these criteria.
Set Output Service:

Click "Set Output Service."
You will be presented with options to select the desired "Courier," "Auth," and "Courier Preset" for use when the criteria you established in the previous step are met.
Configure Failover Service:

To ensure continuity during technical issues with your primary courier choice, you can configure a "Failover Service." This feature automatically switches to an alternative courier and service when no response is received from the primary courier or when the primary courier does not accept the label. The failover service will be activated in such situations to ensure your operations keep running smoothly without any issues.
Finalize and Create Rule:
Once all the parameters and services are configured to your satisfaction, click "Create Rule."
Your newly created rule will appear under the selected group. Within the group section, you have the flexibility to activate or deactivate it and edit or delete the rule as needed.


Courier Directory

Overview
Within the Courier API, we incorporate frequently used service presets for each courier. Our system continually updates these presets to ensure that our customers can readily access the latest and most popular services. We refer to these as "System Presets" within the Courier API. It eliminates the need to search for service codes or manually add them to your account. Your task is to select the desired presets, allowing your parcel to be sent using the chosen service.
This documentation will provide you with insight into the Courier Directory segment. Here, you can review the available system presets for a particular courier. Additionally, we will guide you through adding a courier service to the Courier API and creating your custom presets. Finally, we'll walk you through the steps of utilizing the courier presets when initiating a shipment request.
Courier Directory
To access the system presets, navigate to the "Courier Directory" page by selecting it from the menu on the left-hand side.
The Courier Directory page comprehensively lists all integrated couriers within the Courier API. To explore the system presets available for a particular courier, click on the respective courier's logo in the directory.
The primary objective of the Courier Directory is to enable you to utilize our pre-configured system presets and create custom presets tailored to each of your API accounts. These service presets are pre-defined codes designed to grant access to each courier's services.
For instance, selecting "DPD" will reveal a compilation of all the system presets corresponding to the available services offered by DPD.
Custom Presets
Kindly consult our specialized page on custom presets to gain insights into this functionality.

How to Use Courier Presets
Within the Courier API, we've developed a virtual environment known as the Playground. This feature enables you to initiate requests directly from our application, providing an experiential understanding of the processes involved when transmitting a request from your application to the Courier API.
It's important to note that when utilising actual API credentials in the Playground, there's a possibility of incurring charges from the courier to submit requests.
For instance, examining the request illustrated in the image below, we've employed "ROYALMAIL-CRL1-P" as the "dc_service_id".
You'll find the utilised preset upon navigating to the "Courier Directory" and selecting Royal Mail.
Upon selecting the "DC Service ID," we automatically submit the following data within the courier JSON on your behalf: "Service Level" (01), "Service Code" (CRL1), and "Service Format" (P). The only non-submitted value is the Posting Location. This exception is due to the Posting Location being the sole variable. These three parameters remain constant for the specific service, whereas the variable aspect is the Posting Location.
A custom preset named "Royal Mail 24 Test" is generated, with "RM24TEST" as the DC Service ID. Instead of inputting "ROYALMAIL-CRL1-P" or any other Service ID, you can now utilise the "RM24TEST" service designation within the Playground.
Observe that we've omitted the "courier" JSON section, as the necessity to specify the Posting Location is obviated by "RM24TEST". When you transmit the request, the label is generated in the customary manner (RM24), yet you're no longer required to include a Posting Location.
You have two options: employ our standard-format Service IDs and include the Posting Location in the courier JSON with each request, or you can configure one or two services as custom options linked to a specific API Account.
These alternatives achieve the same outcome, yet the latter option demands less effort and offers a workaround if this poses a challenge.
The service directory offers various capabilities to facilitate streamlined data transmission, minimising the need to juggle various codes.

Courier Specifics
As mentioned in this documentation, the particulars necessary for presets can vary among couriers. You can familiarize yourself with these requirements for each courier by referring to the Courier Specifics Documentation.

For instance, upon accessing the "DPD" service directory and examining a preset, you'll notice that the Network Code remains consistent and no additional JSON data is needed for the requests. Hence, the only requisite is to have the courier credentials for authorization.
Alternatively, when reviewing the Hermes Corporate presets, you'll observe that this courier has no mandatory fields.
However, when considering Royal Mail, there are essential elements such as the Posting Location, Service Level, Service Format, and Service Code.
As demonstrated earlier, all of these can be conveniently managed through a custom preset to simplify the process for your convenience.


How to Add a Courier Service
Overview
Our range of courier integrations boasts diverse service options, including popular choices like Proof of Delivery (POD), Saturday delivery, and next-day delivery. The Courier API simplifies this process by providing commonly used service presets for each courier, continually updating these presets to offer up-to-date and sought-after services. These are known as "System Presets" within the Courier API system. You're spared from seeking service codes or manually adding them to your account.

You can select your preferred options and your parcel will be assigned the chosen service. This document will guide you through adding a courier service to the Courier API. Specifically, we'll delve into the Courier Directory section, where you can readily access the available system presets for any courier.

Creating Custom Courier Presets
To access the system presets, navigate to the "Courier Directory" page by selecting it from the menu on the left-hand side.
The Courier Directory page overviews all available courier integrations within the Courier API. To view the predefined system presets for a specific courier, click on the corresponding courier's logo within the directory.


The primary purpose of the Courier Directory is to enable the utilization of existing system presets and the creation of custom presets tailored to individual API accounts.

System presets are preconfigured settings granting access to each courier's distinct services.
For instance, upon clicking on the DPD entry, you will be presented with an inventory of the available system presets associated with DPD.
If the desired service preset is not found among the provided options, you can add it yourself. Before proceeding, ensure you have chosen the appropriate API account if you manage multiple accounts.
To create a custom preset, locate the "Create Preset" button in the upper-right corner of the interface.
Subsequently, provide the requisite details, including preset name, service ID, anticipated lead time, and mandatory fields specific to the chosen courier.
It's worth noting that the information required for presets may vary across different couriers. You can check the next section to learn more about the courier specific requirements.
Should you wish to apply this new preset selectively, you can mark the "Apply restrictions to this preset" checkbox and define rules by selecting specific parameters:
Within this section, you can tailor your shipments by directing them through a new service preset based on weight, dimensions, value, and more. For example, you can designate a preset for shipments exceeding £40 but falling below £120 or restrict it to shipments destined for certain postcode regions.
Furthermore, you have the option to designate the countries where this preset will be applicable:
If you possess multiple API accounts and intend to extend this new preset's availability, check the "Add to multiple accounts" checkbox. Proceed to select the relevant API accounts, or use the "All Accounts" button to apply this change across all your accounts
Upon finalizing all the configurations, click "Create Preset." The newly established preset will be listed with a "custom" label, signifying a custom service exclusive to the associated account.
Feel free to revisit the courier directory whenever necessary to access the courier you've tailored a custom preset for. Here, you can edit or delete your custom presets as needed.

Courier Specific Documentation
It's important to note that presets' particulars can vary across couriers.
To gain insight into these distinct requirements and specifics for each courier, refer to the dedicated documentation page for it.
This resource provides comprehensive information about each courier's preset's unique details and criteria.

How to Set up Tracking on Shipping API

Overview
Integrating your operational systems with a shipping API service empowers your processes with seamless access to real-time shipment tracking information. Leveraging the capabilities of the Courier API, this integration facilitates the effortless retrieval of shipment tracking details. The Courier API inherently incorporates a dedicated function that enables monitoring shipments from their despatch initiation to their final delivery destination. This documentation outlines the procedural framework required to successfully configure and deploy this robust tracking feature within your system.
Dashboard and Enabling Shipment Tracking
The shipping module offers an inherent shipment tracking capacity, accessible through the dedicated Tracking Dashboard interface. To initiate access to the Tracking Dashboard, log into your account. The default presentation will redirect you to the Shipping Dashboard upon successful login.
If the Tracking Dashboard is not immediately visible upon account login, it indicates that your account's tracking feature has yet to be activated. In such cases, activation becomes a prerequisite and must be completed before utilisation.
To activate the tracking feature, navigate to the "My Account" button within the left-hand menu. Locate the "Additional Addons" section highlighted within the interface. Here, the feature configuration resides. Utilise the provided button to toggle the activation state, turning the tracking functionality on or off.
Upon successful activation, return to the dashboard through the left-hand menu. You will find two distinct buttons in the upper-right corner: "Shipping Dashboard" and "Tracking Dashboard."
With activation complete, accessing the Tracking Dashboard becomes feasible by selecting the relevant button, enabling seamless engagement with the comprehensive tracking capabilities.
Shipment Tracking Dashboard
With access successfully established to the Tracking Dashboard, you can shift your focus to effectively tracking shipments within the system.
The visual representation below provides an insightful display of shipment details, predominantly encompassing today's shipments by default. To inspect shipments from alternative dates, the date picker positioned on the upper right-hand side of the screen proves to be a valuable tool. This feature offers a dual function: the ability to manually select dates from the calendar and the convenience of employing rapid date picker options, each offering predefined time spans such as "Today," "Yesterday," "This Week," "Last Week," and others.
Upon date filtering, a comprehensive presentation of tracking results materialises. These results encapsulate various aspects ranging from the quantity of despatched shipments to the corresponding statuses. These statuses encompass categories such as "Delivered on Time," "Late Delivery," "Exception," and "Failed."
The "Shipments Per Hour" graphical chart is noteworthy among the displayed information, which visually portrays shipment distribution across the selected time interval. Each shipment status is distinguishably colour-coded. Additionally, the dashboard houses two supplementary charts below: "Delivery Performance by Region" and "Active Deliveries by Tracking Status."
Chart Insights: Dive into the "Shipments Per Hour" chart to identify peak shipping times. Adjust your operations to manage high-demand periods more effectively.
An effective filtering bar is nestled on the left side of the date filter. This feature empowers users to precisely narrow down the displayed shipments based on personalised criteria. Notable options within this filtering bar encompass:
Couriers: Facilitates the selection of specific couriers for tracking purposes.
Friendly Service Name: Enables searches for shipments linked to specific courier presets via the Friendly Service Name filter. Service IDs or preset names can be input here. For example, the "IPX-DPDND" Service ID or the corresponding name "DPD Parcel Next Day" can be utilised. Reference to the "How to Add a Courier Service" document can provide further insights into courier services and presets.
API Account: Allows the selection of API accounts for tracking, which is particularly useful when multiple accounts are in use.
To Country: Offers the ability to focus on shipments destined for particular countries.
Tracking: Permits the tracking of shipments with specific statuses, including but not limited to "Booked," "Collected," and "Delivered."
On-Time/Late: Facilitates tracking shipments with defined time-based statuses such as "Expected Late," "Expected On Time," "Delivered Late," or "Delivered On Time."
These filtering options allow users to tailor their tracking experience to align with their specific requirements.

Print More on 6x4: API Quick Guide

Overview

This document outlines how to enhance the printing of information on a 6x4 thermal paper using API customisation, achieved by adjusting keys such as "label_size" and "generate_packing_slip" to include order details, item specifics, and quantities on a single packing slip.
Efficient 6x4 Printing
To enable the printing of additional information on a 6x4 paper size using the API, adjust the following keys in the API request:
"shipment": { "label_size": "8x4", "generate_packing_slip": true }
Once these keys are configured as specified, the output can still be printed on a 6x4 paper. This customisation appends the order reference number ID and the individual items within the package to the bottom of the paper. The printed details include the SKU, Item Description, and quantity (qyt) for each item.
It's important to note that this method can accommodate up to three items within a single shipping slip; however, if an attempt is made to include more than three items, an additional 6x4 paper will be utilised.
To observe the real-time functionality of this customisation, you can experiment with it in our API playground. Navigate to the API Playground and follow the steps outlined below to gain insights on effectively implementing this feature:
In the API request's shipment section, ensure "label_size" is set to 6x4 and "generate_packing_slip" is set to false.
Click "Send Request" then "View Label" to generate and view the shipping slip.
Observe the shipping label without the packing slip at the bottom.
Return to the API playground and modify "label_size" to "8x4" and "generate_packing_slip" to true.
Click "Send Request" again, followed by "View Label."
Witness the inclusion of a packing slip at the bottom on the same 6x4 roll used for shipping labels.
You can apply the same keys in your API requests for similar outcomes, compatible with any courier.
Requesting Low-Volume Royal Mail Tracking
If you ship between 25,000 and 300,000 items annually and wish to utilise Royal Mail's parcel tracking application, follow these steps to request Low Volume Royal Mail Tracking:
Contact Your Account Manager
Initiate the process by reaching out to your designated account manager. Inform them of your interest in low-volume Royal Mail Tracking. Your account manager will facilitate the connection with Royal Mail API support.
Connect with Royal Mail API Support
Your account manager will put you in contact with Royal Mail API support. This team will guide you through the steps to enable low-volume royal mail tracking for your shipments.
Register for an App
Following instructions from Royal Mail API support, proceed to register for an application on the Royal Mail Developer Portal at https://developer.royalmail.net/. This registration is a crucial step in obtaining the required credentials for tracking.
Create an Application
Once registered, create a new application on the Royal Mail Developer Portal. This process will generate a client key and secret unique to your application.
Obtain Client Key and Client Secret
After creating the application, note the provided client key and secret. These credentials will be used during the authentication process for both Royal Mail and Click and Drop APIs.
Configure Authentication
Enter the client key and client secret in the authentication section of your Royal Mail or Click and Drop API settings. This configuration is essential to enable tracking functionality for your shipments.
Limitations of Low-Volume Tracking: Remember that Low Volume Royal Mail Tracking has limitations, allowing only two daily tracking events spaced 12 hours apart. Be mindful of this restriction when planning and managing your tracking activities.
Following these step-by-step instructions, you'll successfully request and set up low-volume Royal Mail Tracking for your shipping operations. Contact Royal Mail API support for further assistance if you encounter any challenges.

API Documentation
Getting Started Documentation
Welcome to the comprehensive documentation guide for setting up and utilizing our API's GET and POST methods. This page is your gateway to understanding the intricacies of integrating and interacting with our API to retrieve and submit data effectively. Whether you're a seasoned developer or just starting on your coding journey, this documentation offers clear and concise instructions, examples, and insights into harnessing the full potential of our API.
Here, we will guide you through every facet of the process, from establishing the initial connection to making both GET and POST requests efficiently. Whether your goal is to extract valuable information from our server or to contribute and manipulate data, this documentation equips you with the necessary knowledge to achieve your objectives.
Throughout this guide, you'll find detailed explanations of the various API endpoints available for GET requests. It will enable you to acquire the data you need effortlessly. Additionally, we'll delve into the intricacies of using POST requests to transmit and store your information within our system. Each method will be accompanied by illustrative examples and sample code, facilitating a quick grasp of the concepts and their integration into your projects.
We understand the value of a clear and straightforward integration process, so we've designed this documentation to cater to developers of all experience levels. Whether you're an individual coder working on a personal project or a team member contributing to a complex application, you'll discover the guidance you need within these pages.
Feel free to navigate through the dedicated sections for each method, utilizing the provided links to access specific details swiftly. If you encounter any obstacles or have questions, our support team is ready to assist.
Let's embark on this journey of API integration collectively and unlock the potential of seamless data exchange through our GET and POST methods. Click here to delve into the specifics of each method and initiate the process of building robust applications that leverage the capabilities of our API.
Courier Specifics Documentation
Each courier has unique fields you must know before making API calls.
Whether you're an experienced logistics professional or new to shipping and delivery, this documentation offers insights, instructions, and examples to empower you with the knowledge required for successful API integration.
Here, we'll walk you through communicating with various courier services. Each courier requires specific fields for API calls, and this documentation ensures you understand these details. As you explore this guide, you'll find explanations and parameters for each courier's GET and POST methods. Practical examples and sample code are included to facilitate smooth implementation.
Navigate the sections for each courier using the provided link. Should you have questions, our support team is ready to assist.
Creating Labels in Playground
Overview
The Playground serves as a simulation platform for label requests, aiding in understanding label creation logic and sending requests to the Courier API. It also accommodates other courier label submissions and real API credential usage (which can incur charges) while allowing label modification and validation through the API Dashboard or Shipment page.
Creating a Label
The Playground provides a platform for simulating label requests and manipulating outgoing and incoming data. It aids in comprehending the underlying logic governing label creation.
In essence, the Playground facilitates the transmission of requests from our application, aiding in the comprehension of the process involved in sending requests from your application to the Courier API.
However, the functionality of the Playground extends beyond the simulation of label requests exclusively. It's essential to note that utilizing real API credentials within the Playground will result in charges being applied to your account by the courier for request submission.
By default, the Playground features a Royal Mail endpoint. However, you can also leverage it to submit label requests to other couriers. For instance, without altering any settings, clicking "Send Request" will forward a request through our Royal Mail test account, generating a label in return.
Selecting "View Label" lets you examine the generated label, a Royal Mail label directed to our head office in Driffield.
Should you wish to modify this information to validate the functionality of your account, adjustments can be made to the "API User" and "API Token". Employing the same credentials registered on the API Accounts page and inputting them (as demonstrated in the image below), then initiating another "Send Request" action within the Playground, will generate another label.
https://documentation.despatchcloud.com/link/516#bkmrk-subsequently%2C-visiti
 
Subsequently, visiting the Courier API Dashboard or the Shipment page will reveal the label you've successfully generated.

Dashboard

Overview
The Shipping API Dashboard is a centralized hub for your system's activities. It provides a comprehensive view of the shipment processes, supported by informative charts and graphs that offer a snapshot of your shipment reports.
Within this documentation, we will elucidate the practical utility of this page and provide a comprehensive breakdown of its various sections. Finally, we will acquaint you with the Tracking Dashboard, elucidating how to effectively enable and harness its tracking capabilities.
Shipping Dashboard
Accessing the dashboard is straightforward; it serves as the homepage upon logging into your platform. If you navigate to other pages and wish to return to the dashboard, click on the "Dashboard" button on the left-hand side. By default, the "Shipping Dashboard" will be visible upon entering this page.
At the top of the page, you'll find a set of filters, a potent tool for refining your shipment search. Here's a comprehensive breakdown of these filter parameters:
Couriers: This option allows you to choose courier services for your review specifically.
Friendly Service Name: Employ this filter to search for shipments linked to a particular courier preset. You can input either the Service ID or the name of the preset. For example, you can enter "IPX-DPDND" as the Service ID or "DPD Parcel Next Day" as the name. Refer to the "How to Add a Courier Service" document for a more in-depth understanding of courier services and presets.
API Account: This filter is relevant for retailers or individual API users with a single API Account. However, resellers or agencies managing Shipping API for multiple customers may have various API user accounts (configurable in the "API Accounts" page). Use this filter to select the API account(s) you wish to examine.
To Country: Choose the desired country or countries to focus on shipments destined for a specific location.
You'll find the date picker on the right side of the filters. This feature empowers you to specify the date range for your search. To adjust the date range, click on the calendar icon. You have two options:
Manual Date Range: Select a date range from the calendar.
Fast Date Picker: This convenient feature provides preset date range options commonly used, such as "This Week," "Last Week," "Month," and more.
Directly below the filters, you'll encounter the general statistics section. Here, you can view the percentage and number of shipments based on your chosen date and filters. This section offers insights into total completed, cancelled, and failed creations.
Beneath the general statistics section, you'll find the "Shipments Per Day" chart. This chart provides a comprehensive breakdown of the selected dates, categorizing them by day. It includes completed, cancelled, failed, and average shipment stats.
Further below, you'll encounter pie charts representing shipments per courier, per courier service, and country. Hovering over these pies reveals a detailed breakdown of the entries. Clicking the "Expand" button for any charts opens a window displaying comprehensive information about the respective pie charts.
You'll find the "API Account Request Summary" section on the bottom left of the screen. This table presents an overview of all the API accounts you've selected via the filter and their general statistics for the chosen dates. It includes the number of completed, cancelled and failed shipments. Clicking the "View" button for any entry here takes you to the "Shipments" page, displaying only the selected API account for the chosen dates. For further details about the "Shipments" page, refer to our documentation.
Finally, on the bottom right side of the screen, you'll encounter the "Shipments Created by Courier Service" section. It provides a comprehensive breakdown of the selected couriers and services, including their percentages, indicating how many shipments were created using each courier.
Tracking Dashboard
The initial step is to enable tracking via your account settings to make the Tracking Dashboard visible. For comprehensive guidance, kindly consult our "How to Set up Tracking on Shipping API" documentation page.
Once you have successfully activated access to the Tracking Dashboard, you can concentrate on efficiently monitoring shipments within the system. The visual representation below furnishes an informative display of shipment details, primarily focusing on today's shipments by default.
Similar to the Shipping Dashboard, the Tracking Dashboard also incorporates filters, as discussed in the preceding section. In addition to those, there are two additional fields, elaborated upon below:
Tracking: This field allows you to track shipments with specific statuses, including but not limited to "Booked," "Collected," and "Delivered."
On-Time/Late: This field facilitates tracking shipments with defined time-based statuses such as "Expected Late," "Expected On Time," "Delivered Late," or "Delivered On Time."
Beneath the Tracking Dashboard, you'll find the "Shipments Per Day" or "Per Hour" chart, depending on the date range you've selected. It illustrates the distribution of shipments across the chosen time interval, with each shipment status clearly distinguished by colour coding for ease of interpretation.
Furthermore, the dashboard features two supplementary charts: "Delivery Performance by Region" and "Active Deliveries by Tracking Status" and "Delivery Performance by Courier Service." By clicking the "Expand" button in the top right corner of these fields, you can view them in full-screen mode, making it effortless to examine the details by hovering over the sections.
Shipments
Overview
The Shipments page provides a centralised view of your shipment data, offering crucial details like courier service, request date, and reference. You can delve deeper into API request records and parcel tracking information, with options to cancel shipments, view and print labels, and access product specifics. Custom views introduce additional columns tailored to your preferences for added customisation, enhancing your overall shipment management experience.
Accessing the Shipments Page
Click the "Shipments" button in the left-hand menu to access it.
Selecting Views
It's important to emphasize that you have complete control over the content and layout of the Shipments page, allowing you to tailor it to your preferences. To select your preferred display, click on the highlighted circular button in the page's upper-right corner.
You have the flexibility to choose from three distinct views, allowing you to customize the columns and filters visible to you:
Standard View: This is the recommended default view, ideal for users who wish to focus on essential information for efficient shipment tracking.
Advanced View: The advanced view is tailored for developers and those who require in-depth access to shipments' request and response details.
Custom View: With the custom view, you can craft a personalized display by selecting specific options. You can choose which columns to display using the "Column Selector" and determine which filters are visible in the "Filter Selector" section according to your preferences.
Searching and Filtering
On the right side of the search bar, you can search through your shipments using three distinct search parameters; here's a breakdown of these parameters:
DC_REQUEST_ID: This unique reference we generated allows you to identify and reference individual shipments. In the shipment list, it appears as 'ID.'
REFERENCE: The customer sets this field when creating a shipment request. Customers have the flexibility to define this reference as needed, though we recommend avoiding duplicates to ensure clarity.
TRACKING_CODE: This corresponds to the courier's tracking code, which can be used to trace shipments.
Additionally, you'll find the date picker on the far right side of the search bar. This feature enables you to specify the date range for your search. To adjust the date range, click on the calendar icon. You have three options:
Manual Date Range: You can select a date range from the calendar.
Fast Date Picker: This convenient feature offers preset date range options commonly used, such as "This Week," "Last Week," "Month," and more. 
Time Picker: If needed, you can even narrow your search to a specific hour.
You'll find the filters section below the search bar, a powerful tool for refining your shipment search. The filters available will vary depending on the chosen view. Here's a comprehensive overview of these filter parameters:
Couriers: This option allows you to select specific courier services for your scrutiny.
Friendly Service Name: Utilize this filter to search for shipments associated with a particular courier preset. You can input either the Service ID or the name of the preset. For example, you can enter "IPX-DPDND" as the Service ID or "DPD Parcel Next Day." For a deeper understanding of courier services and presets, refer to the "How to Add a Courier Service" document.
To Name: Use this filter to locate parcels sent to a specific recipient by entering their name.
To Company: Enter the company name to identify shipments sent to a particular company. It corresponds to the "company_name" in label requests as the shipment's contact details.
To Postcode: Locate parcels delivered to a specific postcode by entering the postcode.
To Country: Select the desired country or countries to narrow shipments to a specific destination.
API Group & Account: This filter is relevant for retailers or individual API users with only one API Account. However, resellers or agencies managing Shipping API for multiple customers may have multiple API user accounts (configurable in the "API Accounts" page). Use this filter to choose the API account or accounts you wish to examine.
Account Name & Number: For courier resellers, customers are assigned "Account Name" and "Account Number" values when setting up their accounts. These values are defined if a request originates from a customer's customer. In such cases, select a specific "Account Name" or "Number" to review shipments related to that account exclusively.
Response Result: You can filter shipments based on whether they have succeeded or failed.
Tracking: Refine shipments by specific statuses such as "Booked," "Collected," "Delivered," and more using the Tracking filter.
On-Time/Late: To focus solely on shipments with specific time-related statuses like "Expected Late," "Expected On Time," "Delivered Late," or "Delivered On Time," make your selection here.
Cancelled: The Shipping API offers the capability to cancel labels sent (details on cancelling labels are provided later in this document). This filter lets you view shipments that have been cancelled or are still active by choosing "Yes" or "No."
Archive: Exclusively display archived and inactive shipments using this filter's "Yes" or "No" option.
Shipment Details
You'll find a comprehensive display of shipment details on the Shipments page. Let's take a closer look at the information presented, moving from left to right:
Courier Service: This column provides information about the courier service used for each shipment.
Request Date: Displays the date when the shipment request was made.
Reference: This field contains the reference associated with each shipment provided by the customer during the shipment request.
Response Result: If you click the "See Requests" button, you will be directed to the "API Request Records" page, offering a comprehensive view of all information related to this request.
Tracking Section: This section provides tracking information for each parcel sent via a tracked service. Clicking "See History" opens a window with detailed tracking information, including: 
Shipment: The customer's reference for the shipment.
Tracking Code: The unique code provided by the courier for tracking purposes.
On-Time Status: Indicates whether the shipment is expected to be on time or late.
Tracking Status: Depending on the courier and parcel status, you may encounter various statuses, including:
Booked
Collected
At Hub
In Transit
Out for Delivery
Failed Attempt
Delivered
On Hold
Address Issue
Returned to Sender
Tracking Expired
Cancelled
Awaiting Customer Collection
Authentication Failed
Please note that not all couriers support all these statuses, and some may not provide tracking updates. "Booked" and "Delivered" statuses are typically supported by all couriers.
Cancel: Allows you to initiate the cancellation of a shipment, with the cancellation request forwarded to the courier.
Label: Clicking this option redirects you to a new tab where you can view and print the shipment label.
Info: Provides detailed information about the label, including product dimensions (Width, Length, Height, and Weight in metric units), SKUs contained within the shipment, and the Tracking Code.
Custom View: If you opt for a custom view, additional columns become visible, such as "To Name," "To Company," "To Postcode," "To Country," "Reference," and "API Account" (also "Account Name" and "Account Number" if selected). These columns correspond to the filters discussed in this document's "Filters" section, offering further customization options.
Downloading CSV
To obtain a report of your shipments, click the "Download CSV" button in the top right corner, as illustrated below. An Excel-format file will be generated for you, and within moments, it will initiate the download process. Please note that the download duration may vary depending on the selected data size, so it might take a while, as indicated in the image below. Once the file is ready, it will be delivered to your email address, allowing you to access and download it.