Get Offer Status
GET/api/v1/iaas/credential-offers/:offerId
Polls the current status of a credential offer. Issuers can only access their own offers.
| State | Meaning | Final? |
|---|---|---|
pending | Waiting for the holder to scan, respond and claim | No |
claimed | Credential issued to the holder's wallet | No — becomes accepted or rejected when the wallet responds, or can be revoked |
accepted | Holder accepted the offer | No. If claimedAt is absent, the credential has not been issued yet: it can still be issued, or the offer can expire or fail. Once issued, it can be revoked |
rejected | Holder declined the offer (failureReason wallet_rejected) | Yes |
expired | The offer expired before a credential was issued (failureReason offer_expired) | Yes |
revoked | Credential revoked, or the offer failed (see failureReason) | Yes |
suspended | Credential suspended — not currently reachable, because suspension is not supported | No — can be revoked |
The wallet can respond before or after the credential is issued, through the Wallet Offer Response. An offer accepted before issuance stays accepted, and the issuance is recorded on it (claimedAt, credentialId).
Poll every 3–5 seconds until the credential is issued (claimedAt is present, with status claimed or accepted) or the offer ends (rejected, expired or revoked). An offer can be accepted before its credential is issued, so accepted alone is not success. An expired offer is returned with 200 and status expired — create a new offer; do not retry the same offerId. See Polling vs. Webhooks.
Request
Responses
- 200
- 400
- 401
- 403
- 404
- 500
- 503
Current offer status.
Invalid offer ID format — offerId is not a valid UUID.
Authentication required — missing, invalid, or expired access token.
Token lacks the issuance.credential.create scope.
Offer not found — unknown offerId or it belongs to a different issuer.
Internal server error — platform error.
Backend unavailable — offer storage temporarily unavailable. Retry.