Skip to content
JuicePay

JuicePay documentation

Create account

Documentation

Changelog

Every shipped change with migration notes where relevant.

Every shipped change, newest first. Additive changes are listed for completeness even when they require nothing of you.

2026-08-19#

Added#

  • settlement_confidence on payment intents, allowing early announcement at inclusion rather than finality. See Chains and finality for the trade-off.
  • payment_intent.reverted event, emitted when a reorg removes a payment previously announced as succeeded.
  • underpayment_tolerance_percent on payment intents, defaulting to 0.
  • juicepay verify CLI command for pre-flight batch CSV validation.

Changed#

  • Batch validation now reports every failing leg rather than stopping at the first, up to a ceiling of 100 reported legs.
  • price_impact is now always present on quote objects, including for small orders where it rounds to zero.

Fixed#

  • balance.updated could be delivered with a stale as_of when two changes landed within the same second. The snapshot is now monotonic.

2026-07-30#

Added#

  • tron as a supported settlement chain for USDT payouts.
  • recipient.screening_updated event, fired when a screening verdict changes after the fact.
  • Per-key allowed_ips restrictions on API keys.

Changed#

  • payout.leg.broadcast now includes finality alongside confirmations, so consumers no longer need to infer it.
  • Retry ceiling for webhook deliveries raised from 12 hours to 24 hours.

Deprecated#

  • POST /v1/transfers. Use POST /v1/payouts instead. The old endpoint continues to work and will be removed no earlier than 2027-07-30.

2026-07-11#

Added#

  • partial_fills on limit orders, allowing tranche execution on thin books.
  • limit_order.partially_filled event.
  • Settlement report exports in Parquet in addition to CSV and JSONL.

Changed#

  • Quote TTLs are now dynamic per pair. Thin pairs quote for shorter windows and now say so in the response rather than expiring early without explanation.

Fixed#

  • Idempotency keys containing uppercase characters were hashed case-sensitively, causing a retry with different casing to create a duplicate resource. Keys are now normalised before hashing.

2026-06-24#

Added#

  • swap.settled now includes executed_rate so consumers can detect when a refreshed quote produced a different price.
  • GET /v1/ledger_entries accepts source as a filter.

Changed#

  • Error responses include doc_url, linking straight to the relevant section of this documentation.

2026-05-28#

Added#

  • solana and arbitrum receive addresses on all sub-accounts.
  • juicepay listen gained --forward-to for custom paths.

Removed#

  • The legacy /v0/ namespace, after a twelve-month deprecation period.

Deprecation policy#

When we deprecate something:

  1. The changelog entry names the replacement and the removal date no earlier than twelve months out.
  2. Responses that use the deprecated surface include a JuicePay-Deprecation header.
  3. The dashboard surfaces a warning for any key still exercising the deprecated path.

Nothing is removed without all three.