Statuses
Mapping status and payment readiness are separate signals. A wallet must inspect both before allowing payment.
- pending — registered but not activated; not payable.
- active — usable when
payment_readyis true. - update_pending — destination changed; pause payment until safe.
- suspended — temporarily blocked; do not pay.
- removed — controller removed it; cooldown may expose
available_at. - revoked — permanent operator action; not re-registerable.
Wallet decision rule
if (response.status === "active" && response.payment_ready) {
showPaymentOptions(response.payment_options);
} else {
blockPaymentAndExplain(response.status);
}Keep transitional responses fresh. Do not serve a stale active result after a destination update or suspension.
Display behavior
switch (response.status) {
case "active":
enablePaymentOnlyIf(response.payment_ready);
break;
case "pending":
case "update_pending":
disablePayment("Waiting for activation");
break;
case "suspended":
case "removed":
case "revoked":
disablePayment("Identifier is unavailable");
break;
}