Improved
30 July 2026
8 days ago
⚠️ Deprecations
- Sandbox — submitted compliance reviews are no longer auto-approved; you drive them yourself. Outside production, a submitted compliance review now rests at
IN_REVIEWinstead of auto-approving. Drive it toapproved/rejected/errorwith the simulate-transition endpoint, which produces the same state change andcompliance_review_status_changedwebhook event a real transition would. If you just want an approved test org without exercising KYC, keep using the bypass endpoint — it is unchanged. See the updated Sandbox Environment Guide for full details on how sandbox compliance reviews work. - The
US_STANDARDcompliance review tier is now allowlist-only. Creating or submitting a review with theUS_STANDARDtier returns403unless your parent organization is enrolled. Reach out to [email protected] if you need this tier.
⭐ Enhancements
- Failed payouts now tell you why. A blockchain payout that terminally fails before it is broadcast on-chain now carries an
errorDescriptionon the failed payout status, in both the API response and the payout webhook. Previously the webhook carried only{ type: 'failed' }with no explanation. - Compliance Reviews — CNH is now its own government ID type. Brazilian driver's licenses are submitted as
CNH, with a required front and an optional back (a single combined image is accepted). AdriverLicensesubmission withcountryCode: 'BR'is now rejected with "Brazilian driver's licenses must be submitted as a CNH." Applies across the REST submission paths, partial KYC, and compliance-review attestations. - Compliance Reviews —
individualSelfiePhotoattestation. Individual reviews for Argentine residents now include a conditional selfie attestation referencing an uploaded document ID, matching the check the legacy verification flow already enforced. - RUC tax ID validations. Expanded country-specific tax ID validation to better support different formats -- we now support specific validations for Ecuadorian, Paraguayan, Panamanian, and Nicaraguan RUCs.
🐛 Bug Fixes
- Payout fee estimates now match execution.
POST /api/payouts/fees/token-to-fiatandPOST /api/payouts/fees/fiat-to-tokenpreviously computed fees with a formula that diverged from the create-and-execute path, so the token amount you were told to send could come up short. Both estimates now use the same fee engine execution uses. Response shape is unchanged; only the values change. - Developer fees are rejected for non-child organizations.
POST /api/accounts(withdeveloperFees) andPUT /api/accounts/{id}/set-developer-feesnow return400unless the request is made on behalf of a child organization via theon-behalf-ofheader. Configuring fees on a parent or standalone organization previously appeared to succeed but the fees could never be applied. - Set settlement strategy now validates the
typefield.PUT /api/accounts/{id}/set-settlement-strategyreturns a400when the settlement strategytypeis not a recognized value, instead of a500.