Invite Your Team, Checkout API Upgrades & Payouts GA

Nick Frostbutter
NF
Nick Frostbutter
·

Team invites end-to-end, payouts GA for all organizations, and checkout API upgrades: external IDs for idempotent order creation, required-field collection before payment, and a live session expiry countdown.

Team Invites

Merchants can now invite teammates end-to-end from Team settings. Enter a name, email, and role (Admin or Owner), and the invite is sent by email automatically, with a copyable invite link for sharing outside of email.

  • Resend email is available from the pending invites menu, so a lost email isn't a dead end
  • Leave Organization is now a first-class action from your own member profile, with a safety guard that prevents the last owner from leaving without first transferring ownership
  • Remove Member and Change Role actions are live in member detail page as well
  • Invitee display name is set automatically from the name fields the inviter provides

Checkout API Upgrades

Following the Checkout Sessions and Orders API launch last week, a batch of upgrades aimed at integration reliability.

Top-level externalId on POST /v0/checkout/sessions and POST /v0/orders. Pass your own order identifier (cart ID, POS ticket, order number) directly on the order and retry safely. A second create call with the same externalId returns 409 Conflict with a DUPLICATE_EXTERNAL_ID error code. Built-in idempotency key that makes flaky network calls safe to retry.

Required fields at checkout. Create a session with requiredFields set to phone, shippingAddress, and/or location, and Decal's hosted checkout page will collect the missing information from the customer during the payment collection. Any fields you pre-fill at session creation allow the skipping those fields entirely.

{ORDER_ID} URL template. successUrl and callbackUrl now support {ORDER_ID} alongside the existing {SESSION_ID}. Substitution uses the formatted typed IDs (cs_<mode>_<cuid>, ord_<mode>_<cuid>), so the URLs your handlers receive are ready to plug straight back into the API.

Metadata limits. Orders and order items now have metadata shape constraints: max 50 keys, keys up to 40 characters, string values up to 500 characters, flat primitive arrays only. Keeps row sizes, response payloads, and webhook deliveries tidy. Well-formed existing metadata is unaffected.

Live Session Expiry Countdown

Checkout sessions now show a live countdown timer when less than 10 minutes remain, and transition gracefully to the expired or cancelled page mid-checkout, no page reload required. Whichever fires first (the timer hitting zero or the order polling detecting expiry) wins, so the customer always lands on the right page.

Saved Customer Payment Methods

Card and wallet details are now persisted after each successful payment. This enables returning-customer detection by card fingerprint, groundwork for faster repeat checkout flows.

Payouts for All Merchants

The Payouts page is now available to every organization. Previously it was gated behind a feature flag.

Submitting a stablecoin payout updates the available balance and payout activity in-place. The active payout shows a spinner until it confirms (usually within sub-second), and failures surface inline with a clickable error badge. No more full-page reloads on submit.

Manual Wallet Connect

Wallets that don't publish a deep link scheme (e.g. Jupiter) can now be connected via a guided manual flow. A Don't see your wallet? entry appears at the bottom of the wallet list and opens a sheet with step-by-step instructions and a copy button, with no auto-redirect or auto-copy.

Wallet sort order also updated so Mobile Wallet Adapter appears after named wallets but before Brave.

Minor Improvements

  • QR codes canonicalized to pay.usedecal.com. Scan-to-pay QR codes and wallet deep links now route through the pay app redirect, so customers always see and share pay.usedecal.com/loc/{id} URLs regardless of your merchant handle or site configuration. Printed QRs keep working across handle and location status changes.
  • Dashboard time range sync. Changing the chart period now updates all four metric cards to the same window, and the selection is preserved in the URL so it survives refresh and can be shared. Adds Year to date as a fourth option.
  • Payment destination fix. paymentDestination set on a checkout session now correctly routes funds to the specified wallet instead of the merchant's default orchestration wallet.
  • Checkout polling on tab return. Returning to the browser tab after a wallet deep-link now immediately triggers an order status check, regardless of whether the wallet sheet is still open.
  • Dashboard sign-in fix. Resolved a schema validation error that could reject valid emails on the sign-in screen, plus a layout fix to the error alert on dashboard, passport, and admin login screens.

How it works

How can it cost so little? We skipped the card networks.

All the typical payment terminals and booking tools you've used sit on top of the credit card networks and pass their fees to you. Decal is built on stablecoins, digital dollars that move effortlessly, settle instantly, cost almost nothing, and earn interest natively.
Welcome to the future of commerce.

24×7 settlement

Your payments land in an instant.

Lower fees by design

No interchange to pass along.

Fewer disputes

Payments are final at confirmation.

Built-in yield

Dollars that earn while they chill.

Grow your business. Get paid. Earn on what you keep.

Built for people running lean businesses. And priced for them, too.

Start for free