Statuses

Statuses

Order status is never a single field. The GET order endpoints return three related blocks.

sequenceDiagram
    participant Buyer as Buyer
    participant Api as Partner_API
    participant Partner as Partner

    Note over Buyer,Partner: Milestone 1 — payment
    Buyer->>Buyer: Pays crypto / PIX
    Partner->>Api: GET /orders/{orderId}
    Api-->>Partner: payment.status Paid

    Note over Buyer,Partner: Milestone 2 — settlement
    Partner->>Api: GET /orders/{orderId}
    Api-->>Partner: settlement.status Settled

    opt Automatic PIX-out enabled
        Note over Partner,Api: Milestone 3 — payout
        Partner->>Api: GET /orders/{orderId}
        Api-->>Partner: settlement.payout.status Completed
    end

Milestone 1 — Payment (buyer paid)

payment.statusMeaning
AwaitingWaiting for the buyer deposit / payment
PaidBuyer paid; crypto recognized — safe to close the checkout UI
ExpiredPayment window expired without a successful payment
FailedPayment failed

Also returned when known: paidAt, crypto currency / blockchain / amount, expiresAt.

Milestone 2 — Settlement (BRZ on your Ultra account)

settlement.statusMeaning
PendingNot yet settled to BRZ
SettledBRZ credited to your Ultra account — typical trigger to release delivery
FailedSettlement failed

settlement.tradeId mirrors the trade id from /payment when an OTC trade exists.

Milestone 3 — Payout (automatic PIX to your bank)

Only relevant when automatic withdrawal is enabled for your account.

settlement.payout.statusMeaning
NotApplicableNo automatic PIX-out for this order
PendingAutomatic withdrawal in progress (or about to start after settle)
CompletedPIX-out to your bank completed
FailedReserved; not mapped in the current API

Conservative partners may wait for payout.status = Completed before releasing goods.

Withdrawal status

statusMeaning
PendingAccepted / queued
ProcessingIn flight at the payment rail
CompletedPIX settled
FailedFailed
CancelledCancelled
RejectedRejected (e.g. clear Ultra reject)

Do not treat payment.status = Paid as “funds in your account”. Wait for settlement.status = Settled (or payout completed, if that is your policy).


Did this page help you?