Browse docs / Record merchant-confirmed Coupon use
Record merchant-confirmed Coupon use
POST/api/v1/offers/redemptions
After confirming payment, your trusted backend sends the internal Customer UUID, held grantId, productVersionId, merchant subscriptionId, stable eventId and occurredAt with billing:write permission. Retain all facts on retry; changing an event or consuming a spent Grant conflicts. Use must fall within the original Grant validity; delayed delivery never renews it. This records merchant-attested ordinary discount use, not provider verification, and creates no subscription or entitlement. First-purchase Coupons retain the verified purchase path. Funnel can finish when it returns its decision.
API v1Updated
Make the request
After confirming payment, your trusted backend sends the internal Customer UUID, held grantId, productVersionId, merchant subscriptionId, stable eventId and occurredAt with billing:write permission. Retain all facts on retry; changing an event or consuming a spent Grant conflicts. Use must fall within the original Grant validity; delayed delivery never renews it. This records merchant-attested ordinary discount use, not provider verification, and creates no subscription or entitlement. First-purchase Coupons retain the verified purchase path. Funnel can finish when it returns its decision.
Credential
Server API key only. Call from your trusted backend.
Permission
billing:write
Set the base URL and App ID from SDK setup. These examples use placeholders and do not execute requests. Never put a server key in browser code.
For this Web Beta, configure the Stripe Sandbox test account and fixed Product Prices before checkout. Redirects do not confirm payment.
The response is illustrative, not the result of a live request.
Request parameters
JSON body
customerIduuidRequired
Indiana customer ID mapped from a verified identity on the server. Omit for customer-token calls, which use the token-bound customer.
eventIdstringRequired
The eventId value for this operation. Its accepted type and constraints are listed above and below.
minLength: 1 · maxLength: 200
grantIduuidRequired
The grantId value for this operation. Its accepted type and constraints are listed above and below.
productVersionIduuidRequired
The productVersionId value for this operation. Its accepted type and constraints are listed above and below.
subscriptionIdstringRequired
The subscriptionId value for this operation. Its accepted type and constraints are listed above and below.
minLength: 1 · maxLength: 255
occurredAtdate-timeRequired
The occurredAt value for this operation. Its accepted type and constraints are listed above and below.
Response fields
Successful responses include requestId and scope. Use the actual business status or accepted field to determine the result. Optional fields are omitted when unavailable.
HTTP 200 · application/json
requestIduuidRequired
Server-generated HTTP request UUID. Include it when reporting a failed request.
scopeobjectRequired
The App and environment of this response. Headers only verify scope; they cannot switch key scope.
Show child fields
projectIdstringRequired
App ID bound to the credential.
minLength: 1
environmentenumRequired
Separate data scope: sandbox or live.
Show allowed values
"sandbox""live"
receiptobjectRequired
The receipt value for this operation. Its accepted type and constraints are listed above and below.
Show child fields
customerIduuidRequired
Indiana customer ID mapped from a verified identity on the server. Omit for customer-token calls, which use the token-bound customer.
eventIdstringRequired
The eventId value for this operation. Its accepted type and constraints are listed above and below.
minLength: 1 · maxLength: 200
grantIduuidRequired
The grantId value for this operation. Its accepted type and constraints are listed above and below.
productVersionIduuidRequired
The productVersionId value for this operation. Its accepted type and constraints are listed above and below.
subscriptionIdstringRequired
The subscriptionId value for this operation. Its accepted type and constraints are listed above and below.
minLength: 1 · maxLength: 255
occurredAtdate-timeRequired
The occurredAt value for this operation. Its accepted type and constraints are listed above and below.
iduuidRequired
The id value for this operation. Its accepted type and constraints are listed above and below.
couponIduuidRequired
Coupon UUID in the current App and environment.
status"redeemed"Required
The status value for this operation. Its accepted type and constraints are listed above and below.
source"merchant"Required
The source value for this operation. Its accepted type and constraints are listed above and below.
recordedAtdate-timeRequired
The recordedAt value for this operation. Its accepted type and constraints are listed above and below.
Handle errors
Common failures
Code
Recovery
UNAUTHENTICATED
Verify the key or refresh the expired customer token once.
FORBIDDEN
Check current key permissions and customer access.
INVALID_REQUEST
Check field types, UUIDs, decimal strings and mutually exclusive fields.
SCOPE_MISMATCH
Use the App and environment bound to the credential.
Common failures
UNAUTHENTICATED
Recovery
Verify the key or refresh the expired customer token once.
FORBIDDEN
Recovery
Check current key permissions and customer access.
INVALID_REQUEST
Recovery
Check field types, UUIDs, decimal strings and mutually exclusive fields.
SCOPE_MISMATCH
Recovery
Use the App and environment bound to the credential.