13 February 2026
12 days ago
⚠️ Deprecations
- The GET
/organizations/{id}/kyc-link(v1) endpoint has been removed
🔜 Coming Soon
- LATAM onramp support — We're adding onramp support for MXN (Mexican Peso), BRL (Brazilian Real), and ARS (Argentine Peso). Stay tuned!
🚀 New APIs
- Archive endpoints for https://developers.muralpay.com/docs/counterparties-and-payout-methods and Payout Methods — soft-delete resources you no longer need:
- POST
/api/counterparties/counterparty/{id}/archive - POST
/api/counterparties/{id}/payout-methods/{payoutMethodId}/archive
- Bre-B COP external pay-ins (COP virtual accounts using Bre-B keys). The keys can be fetched using the account details endpoint.
⭐ Enhancements
- Expanded KYC coverage — Added 20+ new government ID types across 50+ countries, including Residence Permits, Voter IDs, PAN Cards (India), My Number Cards (Japan), and more
- MaxLength validation on payout request memo field — The memo field now enforces a maximum length, returning a clear validation error if exceeded
- Bank account owner name validation — Added upfront validation requiring both first and last name for LATAM and regional currencies, preventing downstream payout failures
- Panama NATIONAL_ID validation relaxed — Updated from exactly 8 digits to 5-12 digits, supporting Colombian nationals with Bancolombia Panama accounts
- PayoutDestinationError — New structured error (HTTP 412) when a payout method is unavailable. Returns payoutMethodId and payoutIndex so you can programmatically identify which payout failed — https://developers.muralpay.com/docs/errors#payoutmethoderror
- Improved payout error messages — Validation errors on payout creation (e.g., unsupported routing number for wire) now surface the specific error message instead of a generic error
🐛 Bug Fixes
- Fixed a 500 error on payout creation when physicalAddress was missing — now correctly returns 400 validation error
- Fixed contact creation error propagation — validation errors (e.g., invalid bank account numbers) now return their specific message instead of a generic "Unable to create contact"
- Fixed floating-point precision issue in developer fee percent calculations
- Added global string sanitization to prevent encoding errors from special characters in request inputs
- Improved UUID validation across blockchain transaction endpoints — invalid formats now return 400 instead of 500