Ask for an invitation
Menu

API reference

Merchant, team and keys

GET /v1/merchant returns the merchant, its tier, its limits and how much of each is used.

What the API may change here is deliberately narrow. Dashboard only, with a signed-in member and where noted a passkey: the settlement asset (it decides where takings land), rails on or off, the fee bearer default, verification, owners, any role that holds a wallet key (Owner, Finance), passkeys, and closing the account.

API keys can be listed, created, rolled and revoked by a full secret key or by a restricted key with keys:write. A key can never create a key with a scope it does not itself hold. Every key creation, roll and revocation emails all Owners.

The merchant object

JSON

{
  "id": "mer_93r9sfyrrm5km287343znd4f",
  "object": "merchant",
  "livemode": true,
  "created": "2026-09-02T09:15:44.020Z",
  "name": "Acme Coffee Roasters",
  "slug": "acme",
  "profile_url": "https://pay.orrerie.com/m/acme",
  "country": "US",
  "business_type": "company",
  "support_email": "help@acme.example",
  "tier": "unverified",
  "restricted": false,
  "settlement": {
    "mode": "convert",
    "asset": "base:usdc"
  },
  "fee_bearer": "payer",
  "default_order_expiry_seconds": 3600,
  "rails": {
    "orrerie_app": true,
    "relay": true,
    "direct": true
  },
  "app_pay_allowed": true,
  "branding": {
    "logo": "file_xn5cz8fk5zmyx3kp37rvddgs",
    "accent_color": null
  },
  "limits": {
    "order_max": {
      "amount": "1000.00",
      "currency": "USD"
    },
    "rolling_30_days_max": {
      "amount": "5000.00",
      "currency": "USD"
    },
    "lifetime_max": {
      "amount": "20000.00",
      "currency": "USD"
    },
    "open_orders_max": 50,
    "outside_payouts_daily_max": {
      "amount": "1000.00",
      "currency": "USD"
    },
    "payout_batch_rows_max": 0,
    "members_max": 2,
    "live_keys_max": 2,
    "webhook_endpoints_max": 1,
    "requests_per_minute": 60
  },
  "usage": {
    "rolling_30_days_paid": {
      "amount": "1284.50",
      "currency": "USD"
    },
    "lifetime_paid": {
      "amount": "1284.50",
      "currency": "USD"
    },
    "open_orders": 3,
    "outside_payouts_today": {
      "amount": "0.00",
      "currency": "USD"
    },
    "members": 2,
    "live_keys": 1,
    "webhook_endpoints": 1
  }
}
Table: The merchant object
FieldMeaning
tierOne of unverified, verification_pending, verified, verification_failed.

The member object

JSON

{
  "id": "mem_ceh1wpzdrpk13cnpcjy9w0fa",
  "object": "member",
  "livemode": true,
  "created": "2026-09-02T09:15:44.020Z",
  "user": "usr_yrwyak6zrppn5310bxms89nv",
  "email": "owner@acme.example",
  "name": "Sam Rivera",
  "role": "owner",
  "status": "active",
  "holds_wallet_key": true,
  "passkey_count": 2,
  "invited_by": null,
  "invitation_expires_at": null,
  "last_active_at": "2026-10-12T09:00:00.000Z"
}
Table: The member object
FieldMeaning
roleOne of owner, admin, finance, developer, support, cashier, viewer.
statusOne of invited, active, removed.

The api_key object

JSON

{
  "id": "key_6e3gg2c6ea176xxdek2nar6v",
  "object": "api_key",
  "livemode": true,
  "created": "2026-09-03T09:50:00.000Z",
  "name": "Shop backend",
  "type": "restricted",
  "prefix": "sk_live_",
  "last4": "x9Tq",
  "scopes": [
    "checkout_sessions:write",
    "orders:read",
    "refunds:write",
    "events:read"
  ],
  "allowed_ips": [],
  "status": "active",
  "api_version": "2026-10-11",
  "created_by": {
    "type": "member",
    "id": "mem_ceh1wpzdrpk13cnpcjy9w0fa"
  },
  "last_used_at": "2026-10-12T09:30:00.000Z",
  "expires_at": null,
  "rolled_from": null
}
Table: The api_key object
FieldMeaning
scopesWhat the key may do. ["*"] for a full secret key.
typeOne of secret, restricted, publishable.
statusOne of active, rolling, revoked, expired.

Every field

Fields of the merchant object

Fields of the merchant object
FieldTypeMeaning
idstringUnique identifier: the object prefix, an underscore, 24 lower-case Crockford base32 characters.
objectstringThe type of this object.
livemodebooleantrue for live mode (real money); false for test mode (simulated payments).
createdstring (date-time)When the object was created. RFC 3339, UTC, milliseconds.
namestringThe business name payers see on the checkout, receipts and invoices.
slugstring or nullThe short name in the public profile's address; null until the merchant picks one.
profile_urlstring or nullThe merchant's public profile page on the payer site; null while the profile is off.
countrystringThe country the business is registered in, an ISO 3166-1 alpha-2 code.
business_typestringThe kind of business, as given at sign-up (for example company).
support_emailstringThe address payers are shown for questions about an order.
tierstringOne of unverified, verification_pending, verified, verification_failed.
restrictedbooleantrue while the merchant is restricted: new orders, payouts to others and conversions are off; reads and withdrawals to saved addresses still work.
verificationobject or nullThe business's newest identity verification through Didit, read-only (04 the states every object uses; 06 Idempotency); null when none was started. Started, followed and decided only in the dashboard.
verification.idstringThe verification's id (ver_).
verification.statusstringWhere the verification stands (06 Idempotency). One of created, in_progress, awaiting_people, in_review, needs_more, approved, declined, lapsed.
verification.workflowstringWhich check: a registered business, a sole trader, or the registry's owners for limits above US$250,000 in 30 days (06 Idempotency). One of business, soletrader, ubo.
verification.createdstring (date-time)When it was started.
verification.decidedstring (date-time) or nullWhen Didit's decision was read; null until then.
settlementobjectWhat new orders settle in by default.
settlement.modestringconvert: payments are delivered in the settlement asset. keep: each payment stays in the asset it was paid in.
settlement.assetstringThe settlement asset id when mode is convert.
fee_bearerstringWho pays the routing fee on the relay rail by default: payer or merchant.
default_order_expiry_secondsintegerHow long a new order stays payable unless the request says otherwise, in seconds.
railsobjectThe ways payers may pay this merchant, each on or off.
rails.orrerie_appbooleantrue when Pay with Orrerie is offered.
rails.relaybooleantrue when payers may pay from other assets and networks through Relay.
rails.directbooleantrue when payers may send straight to the merchant's own wallet.
app_pay_allowedbooleantrue when the checkout shows the Pay with Orrerie button; set by a rule only Orrerie changes.
brandingobjectHow the merchant's pages look to payers.
branding.logostring or nullThe file_ id of the logo shown on the checkout and receipts; null for none.
branding.accent_colorstring or nullThe accent colour of the payer pages, #rrggbb; Verified merchants only, null for the default.
limitsobjectWhat the merchant's tier allows.
limits.order_maxobjectThe largest single order, in US dollars.
limits.rolling_30_days_maxobjectThe most that may be paid to the merchant in any 30 days, in US dollars.
limits.lifetime_maxobject or nullThe most that may ever be paid to the merchant, in US dollars; null when the tier has no lifetime cap.
limits.open_orders_maxintegerHow many orders may be open at once.
limits.outside_payouts_daily_maxobjectThe most that may be paid out to others in a day, in US dollars.
limits.payout_batch_rows_maxintegerThe most rows in one payout batch; 0 when batches are not allowed.
limits.members_maxintegerHow many team members the merchant may have.
limits.live_keys_maxintegerHow many live API keys may exist at once.
limits.webhook_endpoints_maxintegerHow many webhook endpoints each mode may have.
limits.requests_per_minuteintegerThe API's request budget per minute for this merchant and mode.
usageobjectHow much of each limit is used now.
usage.rolling_30_days_paidobjectWhat was paid to the merchant in the last 30 days, in US dollars.
usage.lifetime_paidobjectWhat was ever paid to the merchant, in US dollars.
usage.open_ordersintegerHow many orders are open now.
usage.outside_payouts_todayobjectWhat was paid out to others today, in US dollars.
usage.membersintegerHow many members the merchant has.
usage.live_keysintegerHow many live API keys exist.
usage.webhook_endpointsintegerHow many webhook endpoints exist in this mode.

Fields of the member object

Fields of the member object
FieldTypeMeaning
idstringUnique identifier: the object prefix, an underscore, 24 lower-case Crockford base32 characters.
objectstringThe type of this object.
livemodebooleantrue for live mode (real money); false for test mode (simulated payments).
createdstring (date-time)When the object was created. RFC 3339, UTC, milliseconds.
userstring or nullThe usr_ id of the person; null while the invitation is not accepted.
emailstringThe member's email address.
namestring or nullThe member's name; null when none was given.
rolestringOne of owner, admin, finance, developer, support, cashier, viewer.
statusstringOne of invited, active, removed.
holds_wallet_keybooleantrue when the member holds a copy of the wallet key and can approve money out.
passkey_countintegerHow many passkeys the member has.
invited_bystring or nullThe mem_ or key_ id that invited the member; null for the merchant's first Owner.
invitation_expires_atstring or nullWhen an unaccepted invitation stops working; null once accepted.
last_active_atstring (date-time) or nullWhen the member last used the dashboard; null for never.

Fields of the api_key object

Fields of the api_key object
FieldTypeMeaning
idstringUnique identifier: the object prefix, an underscore, 24 lower-case Crockford base32 characters.
objectstringThe type of this object.
livemodebooleantrue for live mode (real money); false for test mode (simulated payments).
createdstring (date-time)When the object was created. RFC 3339, UTC, milliseconds.
namestringThe key's name, as the merchant set it.
typestringOne of secret, restricted, publishable.
prefixstringHow the key starts: sk_live_, sk_test_, pk_live_ or pk_test_.
last4stringThe last four characters of the key, to tell keys apart.
scopesarray of stringsWhat the key may do. ["*"] for a full secret key.
allowed_ipsarray of stringsThe addresses and ranges the key may be used from; empty for any.
statusstringOne of active, rolling, revoked, expired.
api_versionstringThe API version the key is pinned to.
created_byobjectWho made the key: a member or another key.
created_by.typestringmember or api_key.
created_by.idstringThe id of the member (mem_…) or key (key_…) that made it.
last_used_atstring (date-time) or nullWhen the key was last used; null for never.
expires_atstring or nullWhen the key stops working; null for never.
rolled_fromstring or nullThe key_ id of the key this one replaced; null for a key that replaced none.

Endpoints

Events

Webhook events whose data.object is an object of this page.