flowchart TD
P[PENDING] --> F[FAILED]
P --> C[COMPLETED]
P --> X[CANCELLED]
F -. paid late .-> C
X -. paid late .-> C
C --> R[REFUNDED]
C --> V[REVERSED]
class P warn
class C ok
class F,V error
class X,R neutral
Status
Meaning
Final
PENDING
Waiting for the customer to pay.
No
COMPLETED
Paid. Partial refunds keep this status.
Can still move to reversed or refunded
FAILED
Expired or declined. See failure.code.
Almost: see below
CANCELLED
Canceled before the customer paid.
Almost: see below
REVERSED
Reversed after completion, for example a chargeback.
Yes
REFUNDED
Fully refunded.
Yes
A late payment still counts. Sometimes a customer pays just as a payment expires or is canceled, or the provider’s confirmation reaches Weav late. When the provider confirms the money arrived, a FAILED or CANCELLED payment becomes COMPLETED, its failure clears, the amount is credited to your balance, and you get a PAYMENT_COMPLETED webhook. Always act on the latest status, and be ready to fulfill (or refund) an order you had given up on. Weav checks with providers regularly, so this happens without anyone asking.
Payment failure codes
Code
Meaning
EXPIRED
The customer didn’t pay before expires_at.
DECLINED
The provider or card issuer declined the payment.
PROVIDER_ERROR
The provider couldn’t process the payment.
Saved card
flowchart LR
P[PENDING] --> A[ACTIVE]
P --> F[FAILED]
A --> R[REMOVED]
P -. removed .-> R
class P warn
class A ok
class F error
class R neutral
Status
Meaning
PENDING
Waiting for your customer to save the card and their bank to confirm it.
ACTIVE
Saved. You can charge it.
FAILED
The bank’s check failed, the save link ran out, or the payment it was saved with wasn’t paid.
REMOVED
Removed, by you (DELETE /v1/payment-methods/{id}) or by Weav. It can’t be charged again.