Skip to main content
Restricted — requires a sponsorship program. See the Sponsorship API overview for access and auth.
Two independent things can be true about one of your members:
  1. They are connected to you. They completed the OAuth flow, so you can read their profile, sea time and vessels, and you receive their webhooks.
  2. You sponsor them. You hold a seat for them, they have DSS Premium, and the seat appears on your invoice.
Each is granted and ended by its own call. Neither implies the other.

What each one does

Connecting a member does not grant Premium and does not open a seat. A member who connects and is never provisioned stays on DSS Free: you can read their sea service, and they cost you nothing.

Running a free tier

This is what the separation is for. If you offer a free membership alongside a paid one, your free members connect through the same OAuth flow as your paying ones — connecting is what makes their sea service appear in your product — and only the paying ones get a POST. A member can move between your tiers as often as they like. POST is idempotent on email, so re-sending an already-sponsored member is a no-op rather than a second seat; a POST after a DELETE opens a new seat and starts billing again from that date.

Why a downgrade keeps the connection

Ending a seat is a billing change. The member is still your member — they have just moved to a plan you do not sponsor — so they keep their DSS account on the Free tier, you keep reading their sea service, and their vessel tracking keeps running. If you want the connection to end, that is a separate decision with its own call. Either the member disconnects themselves, or you send member-left with account_deleted, which both closes the seat and revokes their consent and tokens.

Reconciling

Because a seat exists only when you have provisioned it, the seats you hold and the lines you are billed for are the same set. Every invoice line carries the sponsorship_id of the seat it bills, and GET /v1/partners/sponsorships returns those same ids, so an invoice reconciles against the roster line by line.