Account

Export all of this account's data (wallet-verified, tenant-isolated)

GET/v1/account/export

Returns a complete, versioned JSON snapshot of everything this account owns: profile, API-key/session metadata (never token material), policies, delegations, intents, the double-entry ledger, prepaid credits and balance, events, webhook configuration and failures, auto-topup rule and authorization metadata (never the EIP-3009 signatures), venue credential metadata (never the sealed ciphertext), PM orders and positions, audit records, and an R2 statement object manifest. Authenticated ⇒ wallet-verified; RLS scopes it to your account. Unbounded sections are capped (see truncated).

Responses

200The account data export

  • export_version integer (required)
  • generated_at string (required)
  • truncated string[] (required)
  • account object (required)
  • api_keys object[] (required)
  • sessions object[] (required)
  • policies object[] (required)
  • delegations object[] (required)
  • intents object[] (required)
  • ledger_entries object[] (required)
  • payment_credits object[] (required)
  • balance object,null (required)
  • events object[] (required)
  • webhooks object (required)
  • auto_topup object,null (required)
  • venue_credentials object[] (required)
  • pm_orders object[] (required)
  • pm_positions object[] (required)
  • audit_log object[] (required)
  • statements_manifest object (required)

403Requires a session or an unrestricted credential

Example

curl -X GET https://api.cofferline.com/v1/account/export \
  -H "authorization: Bearer $TOKEN"

Offboard this account: type-to-confirm, revoke everything, scrub PII, retire in place

POST/v1/account/offboard

Wallet-verified account closure. Echo your wallet address in confirm_wallet_address (type-to-confirm). Suspends the account, revokes every API key AND session (including the calling credential), flips delegations to revoked with owner-submittable uninstall/invalidate calldata, zeroes every venue-credential ciphertext, removes the auto-topup rule and arrows (with cancellation instructions — deleting the row does NOT revoke the signatures on-chain), removes the webhook secret and dead-letters, scrubs the account's contact field, and marks the account offboarded. The row is NOT deleted: the append-only ledger, events and intents FK into it, and those books plus the audit trail of money movement are retained by design. R2 statement objects are deleted by the housekeeping sweep (they are regenerable re-derivations of the retained ledger). Idempotent: re-running an already-offboarded account is a no-op that returns the same retirement facts. Requires a session or admin-scoped key.

Request body

  • confirm_wallet_address string (required)
  • reason string

Responses

200Offboarded; finish any on-chain revocation with the calldata

  • offboarded true (required)
  • address string (required)
  • offboarded_at string (required)
  • deleted object (required)
  • retained string[] (required)
  • scheduled string[] (required)
  • delegations_revoked object[] (required)
  • cancellation object
  • note string (required)

400The confirmation address does not match the authenticated wallet
403Requires a session or admin-scoped key

Example

curl -X POST https://api.cofferline.com/v1/account/offboard \
  -H "authorization: Bearer $TOKEN" \
  -H "content-type: application/json" \
  -d '{"confirm_wallet_address":"…"}'