Issuers
Issuer identities
A saved issuing party with a verified contact mailbox and an ordered set of payout addresses. Referenced from a deposit request by issuer_id; the request snapshots the party at issuance.
Issuer#
idiss_ idnamestring- Unique per account, case- and whitespace-insensitive.
contact_emailstring- Lowercased.
detailsstring | nullemail_verified, email_verified_atboolean, timestamp | null- Set by the confirm route. Reset by a contact_email change.
payout_addressesPayoutAddress[]- Association order. First is the default for issuer_id-only creates.
created_at, updated_attimestamp
{
"id": "iss_0198f80c-2222-7dc1-a369-90556a64f700",
"name": "Acme LLC",
"contact_email": "billing@acme.example",
"details": "Acme LLC, 1 Market St, Springfield",
"email_verified": true,
"email_verified_at": "2026-09-06T12:05:00Z",
"payout_addresses": [
{ "id": "pa_0198f80c-…", "address": "0x1111111111111111111111111111111111111111", "label": "Treasury", "created_at": "2026-09-06T12:00:00Z" }
],
"created_at": "2026-09-06T12:00:00Z",
"updated_at": "2026-09-06T12:05:00Z"
}PayoutAddress#
idpa_ idaddressstring- EIP-55. Unique per account.
labelstring | null- ≤20 characters.
created_attimestamp
Constraints#
- A request cannot carry an identity whose mailbox is unverified.
- Editing an identity does not touch issued requests.
- An identity with issued requests cannot be deleted.
- Identities with no payout addresses settle to the account wallet.
Routes#
- POSTCreate an issuer/v1/issuers
- GETList issuers/v1/issuers
- GETGet an issuer/v1/issuers/{id}
- PATCHUpdate an issuer/v1/issuers/{id}
- DELETEDelete an issuer/v1/issuers/{id}
- POSTSend the verification code/v1/issuers/{id}/verify/email/start
- POSTConfirm the verification code/v1/issuers/{id}/verify/email/confirm
- PUTSet payout addresses/v1/issuers/{id}/payout-addresses
- POSTSave a payout address/v1/payout-addresses
- GETList payout addresses/v1/payout-addresses
- DELETEDelete a payout address/v1/payout-addresses/{id}