How Harbor works

Basic points

These are the important points that you need to understand from how Harbor works.

  • Harbor towers do not use the internet. We use Bluetooth instead.

  • That is why we use a mobile SDK (iPhone, Android, React Native). To establish a session with the Towers and use the tokens to open the lockers.

  • The rest of the interactions happen between your backend and Harbor. Things like get locations availability, make a reservation, get a token to open a locker, and etc.

  • A Location is a physical address that contains Towers.

  • A Tower has a defined number of Lockers.

  • A Locker is the compartment where you can store items.

Flow for a delivery

Let’s see how all parts interact to achieve a dropoff.

sequenceDiagram participant Harbor participant Backend participant SDK participant Tower Backend->>Harbor: Ask for sdk token Harbor-->>Backend: Send sdk token Backend-->>SDK: Send token to mobile SDK SDK->>Tower: Creates session with Tower Backend->>Harbor: Ask for Dropoff locker token Harbor-->>Backend: Send Dropoff locker token Backend-->>SDK: Send Dropoff locker token rect rgb(191, 223, 255) SDK->>Tower: Use dropoff token to open the locker Note left of Tower: Locker gets open Note left of Tower: User insert item <br/>and close locker SDK->>Tower: Close session with Tower end
  • Harbor is our Harbor API.

  • Backend is your backend service.

  • SDK is the Mobile SDKs integrated with your mobile App.

  • The tower is a single tower of the Harbor Public Network.

So as you can see, your backend is responsible for sending the SDK authorization token and the open locker tokens to the mobile App.
The mobile SDK will use the authorization token to start a session with the Tower, and the open locker token to open the locker in the tower.
To make a pickup the flow is analogous, but asking for a pickup locker token instead of a dropoff locker token

Locker Statuses

It is essential for you, as a service provider, to understand what every locker status means. There are 6 possible statuses for a locker.

  • Available: It is available for any service provider to use.

  • Reserved: Is assigned to the creator of the reservation. Given this, no one can ask for a drop-off locker token, except the reservation creator. If no drop-off locker token is asked, the locker will be available once the reservation expired (or you can explicitly cancel a reservation).

  • Rented: It happens when a service provider asks for a drop-off locker token. Now the locker is assigned to the service provider.

  • Occupied: A drop-off open token was used. It is assigned to the service provider. It takes a pickup open token been used to get available the locker.

  • Released: A service provider wants to release a locker in state Rented. It will finally get available when anybody connects with that tower.

  • Out of service: Not available to use and not assigned to anybody.

Now that you have an idea of how this works, let’s get your credentials and a Tower board to integrate! Get credentials and Hardware