# How do I move a project44 v4 tracking client to Dockflow by changing only the URL and the secret?

**URL:** <https://community.dockflow.com/t/how-do-i-move-a-project44-v4-tracking-client-to-dockflow-by-changing-only-the-url-and-the-secret/201>\
**Category:** How-to Q&A\
**Created:** [November 7, 2026, 1:08pm UTC](https://community.dockflow.com/t/how-do-i-move-a-project44-v4-tracking-client-to-dockflow-by-changing-only-the-url-and-the-secret/201 "2026-11-07T13:08:14Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![dockflow](https://community.dockflow.com/letter_avatar_proxy/v4/letter/d/a9a28c/32.png) [@dockflow](https://community.dockflow.com/u/dockflow)\
**Post date:** [November 7, 2026, 1:08pm UTC](https://community.dockflow.com/t/how-do-i-move-a-project44-v4-tracking-client-to-dockflow-by-changing-only-the-url-and-the-secret/201/1 "2026-11-07T13:08:14Z")

</div>

My client uses the project44 v4 token exchange and tracking routes. What has to change?

Two values:

1. Set the base URL to [https://api.dockflow.com/compat/project44](https://api.dockflow.com/compat/project44)
2. Use a Dockflow API key as the client secret. Create the key in the API Console with the Downstream scope.

A worked case, with a fake secret. The exchange returns the secret as the token:

```
POST /compat/project44/api/v4/oauth2/token
grant_type=client_credentials&client_id=my-app&client_secret=prod_acme_FAKE-TOKEN

{"access_token":"prod_acme_FAKE-TOKEN","token_type":"BEARER","expires_in":3600}

```

Start tracking. This answer is shortened:

```
POST /compat/project44/api/v4/shipments/tracking
Authorization: Bearer prod_acme_FAKE-TOKEN

{"identifiers":[{"type":"BILL_OF_LADING","value":"BL-7741"}]}

{"id":"00000000-0000-4000-8000-000000012345",
 "identifiers":[{"type":"BILL_OF_LADING","value":"BL-7741"}],
 "problems":[]}

```

The same identifiers always reach the same shipment. Each container also gets its own child id, which works on the read and delete routes. An identifier type outside the published list answers 400.

Read by that id. Positions, costs and contents stay empty. The webhook routes answer 403, so Dockflow support adds your destination. Each delivery carries the body of the history read and an X-Dockflow-Signature header.

Full field mapping and the signature check:

> **[Migrate from project44 | Dockflow Documentation](https://docs.dockflow.com/migrate/project44/)**
>
> Point a project44 v4 ocean tracking client at Dockflow by changing the base URL and the client secret. Covered routes, field mapping, empty fields, webhooks and tests.
