> ## Documentation Index
> Fetch the complete documentation index at: https://docs.digitalseaservice.com/llms.txt
> Use this file to discover all available pages before exploring further.

# How membership is granted

> Connecting a member and sponsoring a member are separate. What each one does, and how to run a free tier alongside a paid one.

> [!NOTE]
>
> **Restricted — requires a sponsorship program.** See the
> [Sponsorship API overview](https://docs.digitalseaservice.com/sponsorships/overview.md) 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

| | Granted by | Ended by | Gives |
| - | - | - | - |
| **Connection** | The member completing [OAuth](https://docs.digitalseaservice.com/authentication.md) | The member disconnecting, or [`member-left`](https://docs.digitalseaservice.com/sponsorships/member-left) with `account_deleted` | Read access to their record, and their webhooks |
| **Sponsorship** | [`POST /v1/partners/sponsorships`](https://docs.digitalseaservice.com/sponsorships/provision) | [`DELETE /v1/partners/sponsorships/{id}`](https://docs.digitalseaservice.com/sponsorships/remove) | DSS Premium for the member, a billable seat for you |

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`.

| Event on your side | What you call | What DSS does |
| - | - | - |
| A free member connects | OAuth only | Links the accounts. The member stays on DSS Free. No seat. |
| A paying member connects | OAuth, then `POST /v1/partners/sponsorships` | Links the accounts, then grants Premium on the sponsorship call |
| A free member upgrades | `POST /v1/partners/sponsorships` for the already-connected account | Grants Premium. The connection is untouched. |
| A paying member drops to free | `DELETE /v1/partners/sponsorships/{id}` | Ends the seat and returns them to DSS Free. **The connection, tokens and webhooks continue.** |
| A member leaves you entirely | [`member-left`](https://docs.digitalseaservice.com/sponsorships/member-left) with `account_deleted` | Ends the seat and the connection |

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`](https://docs.digitalseaservice.com/sponsorships/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`](https://docs.digitalseaservice.com/sponsorships/reconciliation) returns those
same ids, so an invoice reconciles against the roster line by line.

## Related

* [Provision a seat](https://docs.digitalseaservice.com/sponsorships/provision.md)
* [Remove a seat](https://docs.digitalseaservice.com/sponsorships/remove.md)
* [Member left](https://docs.digitalseaservice.com/sponsorships/member-left.md)
* [Reconcile your roster](https://docs.digitalseaservice.com/sponsorships/reconciliation.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.