GET /v1/currencies describes what the platform supports: each currency carries
capability flags (can_deposit, can_onramp, β¦) that are the same for every caller.
Some capabilities also depend on the state of the customer you are acting for. Pass the
optional customer_id query parameter and the same flags answer a narrower question β
what can this customer do right now? The capability filters (can_deposit=true, β¦)
are then evaluated against the customerβs view too.
Reading customer_restrictions
When a capability the platform supports is unavailable to the customer, the flag reads
false and the row carries a customer_restrictions entry explaining why:
customer_restrictions lists exactly the difference between the platform view and the
customerβs view:
- It appears only when you pass
customer_id, and only on rows where a capability the platform supports was removed by the customerβs state. - Capabilities the platform itself does not support are never listed β a flag that is
falsein the platform view stays a plainfalse.
Branch on
reason, not on the next_steps copy β the code is stable, the wording is
not. This mirrors how you branch on failure_reason for failed money movements. See
Failure reasons.Restriction reasons
Branch onreason β it is a stable, machine-readable code.