Two identities, one link
You never need the user’s global Swapnice user id to start. The connection session is the Plaid-Link-style step that binds the two records after the user authorizes.
A Swapnice consumer account can later have wallet or bank linking inside Swapnice. That stack is not part of the Partner API and is never returned to partners.
Connection session
created → authorized → completed, or expired / revoked.
Sessions expire. Do not reuse an expired session_id. Create a new one.
Consent receipt
After the user accepts, persist the receipt. This is what later events must cite.terms_version and privacy_policy_version so you can prove which policy the user saw.
Inspect current grants with GET /v1/customers/:id/effective-consent.
Purposes in product language
A user who granted
personalization has not granted every other purpose. The same event can be stored for one purpose and unusable for another.
Pilot recommendation: request personalization and analytics. Add other purposes only when the product actually uses them.
Revocation
reason is one of user_request, partner_request, policy_change, account_disconnected, other.
What happens immediately:
- New events for a revoked purpose return
consent_required - Profile reads that pass that
consent_purposereturn403 - The partner product must stop using that customer’s intelligence for the revoked purpose
202 plus a workflow_id). Archive and workflow records update asynchronously. Poll GET /v1/workflows/:id.
You can revoke a subset of purposes or the entire receipt.
Collection notice
Your connect UI should say, in language the user understands:- Which app is asking
- Which purposes, in the table above — not raw scope strings
- That they can disconnect later
- That they can revoke a purpose without deleting the rest of the connection
What consent does not cover
Consent to the Partner API does not grant access to:- Wallet, Dwolla, or Plaid credentials
- Government identification
- Precise home address
- Another partner’s users or raw events
- The right to resell the consolidated Swapnice profile