Pass the four checks
Who does this: the integration engineer at your organisation.
There is no form to fill in and nobody to ask. You make four real calls, in order, and ITS records each one as it arrives. When it has seen all four, it certifies you by itself.

Use one declaration for all of this and keep it separate from anything else you test. If you also want to try amendments, attachments or cancellation, create different declarations for those — mixing them makes both the progress display and your own results unreadable.
The order is fixed, because each check needs the state the previous one created. You cannot record a departure for a declaration that was never lodged.
Check 1 — Connect
Read one declaration through the gateway. It is the smallest call that exercises the whole path, and it changes nothing if it goes wrong.
The call itself is in Authentication, which covers getting a token and attaching your certificate. Ask for a single declaration:
GET /etd?page-number=1&page-size=1
It worked when the Connect step shows all three of its conditions met: the token accepted, the certificate fingerprint matched, and a 200 returned. An empty list counts — it means ITS understood you and had nothing to show you.

The status panel checks the two identities separately, which is what makes it useful: if OAuth is accepted but the certificate did not match, your credential is fine and the problem is the certificate or the host you attached it to.
If the token is refused, the problem is your credential. If the certificate is refused, the problem is your certificate or the host you attached it to. The connection status panel separates the two, so read which one failed before changing anything.
If a read times out, send it again. Reads change nothing, so repeating one is always safe. That is not true of the next three.
Check 2 — Lodge a declaration
Send one valid declaration through the gateway. ITS creates the serial number itself; do not send one. The serial that comes back is how you refer to this declaration from now on.
See Lifecycle and stamps for what a declaration contains.

It worked when the reply carries a serial number, and the step shows the request accepted, a serial issued and the declaration recorded. "Request accepted" without "Serial number issued" means ITS took the call but rejected its contents — read the response body for which field.
If the reply never arrives, do not simply send it again. Unlike a read, this call creates something, and the declaration may exist even though you never saw the answer. Search for it first. If it is there, use it. Only if nothing was created should you resend, and then with the same idempotency key as the first attempt. A second certification declaration is a mess to unpick.
Checks 3 and 4 — Departure and exit
These two use the serial number from check 2. Departure means the goods have been released and have left your customs office. Exit means they have left your country and the declaration passes to the next one.
- Record the departure, with the station details the call asks for.
- Record the exit, naming the country that receives the goods next.

The journey status panel on the right is the one to watch: it shows the three states in order, so you can see which endorsement ITS actually received.

It worked when the journey status shows the declaration submitted, then departed, then exited.
If a reply is lost, read the declaration before doing anything else — it will tell you which of the two was recorded. Do not swap the order, and never lodge a second declaration to work around a timeout on the first.
Certification begins on its own once the exit succeeds. There is nothing further to send and nobody to notify.
Watching your progress
Your workspace counts the checks off as they arrive, and so does the Secretariat's view. Both read the same record, and neither can be edited: there is no evidence pack to submit and no manual certification step to request.
| What ITS recorded | What it means |
|---|---|
CONNECT | Your first successful read arrived. |
SEND_ETD | Your declaration was accepted and given a serial number. |
DEPART_ETD | The departure was recorded. |
EXIT_ETD | The exit was recorded. |
CERTIFIED | All four seen. Production access is still a separate decision. |
ITS also emails each one as it is observed, with the subject AfCFTA ITS sandbox: event observed for your organisation. Those are notifications, not evidence. If a message and the progress display disagree, the progress display is right.