Agents see these codes on MCP tool results. Merchants see them on facilitator HTTP responses. The two surfaces do not share one error envelope. Branch on the code, not on a guessed HTTP status from an older guide.

Agent and prepare

PENDING and FAILED from prepare are terminal for that attempt. Do not invent a signature.

Merchant poll

CREATED and SUBMITTED are not errors. FAILED, TIMED_OUT, and DISPUTED mean do not fulfill. Definitions are on Settlements. Verify returns isValid: false with invalidReason when the envelope should not be captured. Capture returns HTTP 429 when the merchant is over the rate limit.

Identifiers in support requests

Send support@sohopay.xyz the staging environment, the borrower UUID or paymentId, and the code. Do not send workload private keys or borrower seeds.

Next steps

Error handling

Which codes are safe to retry.

Facilitator reference

The merchant HTTP surface.