POST
/v1/checkouts/{id}/fulfillMarks a checkout as fulfilled when the API user handles shipping themselves
Marks a checkout as fulfilled. With a tracking number, billing starts on delivery; without, the subscription starts immediately.
Parameters
Request parameters for this endpoint
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | Required | Checkout public ID |
Request Body
Fields in the request body
Optional
| Name | Type | Description |
|---|---|---|
serialNumbers | object | Serial numbers keyed by checkout item pub_id. Keys are checkout item public IDs (e.g., "chkitem_abc123"), values are serial number strings. |
trackingCarrier | - | |
trackingNumber | string | Tracking number; if provided, billing starts on delivery instead of immediately |
Response Data
Fields returned in the response
Always Present
| Name | Type | Description |
|---|---|---|
createdAt | string (date-time) | - |
id | CheckoutPubId | Public-facing unique identifier for the checkout |
insuranceStatus | Status of insurance approval (pending, approved, denied) | |
lifecycle | Current lifecycle state of the checkout | |
offtakePartnerId | OftakePartnerId | - |
recurringPaymentStatus | Status of recurring payments (pending, active, cancelled) | |
updatedAt | string (date-time) | - |
checkoutUrl | string | URL to access the checkout page |
customerId | UserPubId | Public ID of the customer (resolved from internal customer_id) |
progress | Unified progress information for the checkout flow Includes milestones with timestamps for post-confirmation checkouts |
Optional
| Name | Type | Description |
|---|---|---|
billingAddress | - | |
billingAddressLocked | boolean | Whether the billing address is locked (set by organization, cannot be changed by customer) |
cancelUrl | string | URL to redirect to when checkout is cancelled |
deliveredAt | string | When the items were delivered |
depositInvoiceId | string | Stripe invoice ID for the deposit payment |
depositPreauthExpiresAt | string | Timestamp when the pre-authorization expires (typically 7 days from authorization) |
depositTimestamp | string | Timestamp when the deposit was paid |
externalOrderId | string | External order ID from integrated systems |
failureUrl | string | URL to redirect to when checkout fails |
lastPaymentError | string | Last payment error message (if payment failed) |
lastPaymentErrorAt | string | Timestamp of last payment error |
lastPaymentErrorCode | string | Last payment error code (if payment failed) |
leaseDocumentId | string | ID of the lease document in PandaDoc |
leaseEndDate | string | - |
leaseStartDate | string | - |
leaseTermId | LeaseTermId | - |
paymentFailureCount | integer | Count of payment failures |
pickupLocationId | integer | ID of the pickup location (if using pickup instead of shipping) |
previousLifecycle | - | |
purchaseItems | Purchase items applied to this checkout | |
recurringPaymentMethod | - | |
recurringPaymentMethodId | string | Stripe PaymentMethod ID for recurring payments (may differ from deposit payment method) |
returnCancelledAt | string | When a pending return was cancelled |
returnCompletedAt | string | When the return was completed |
returnInitiatedAt | string | When the return was initiated |
returnNotes | string | Additional notes about the return |
returnReason | string | Reason for the return |
shippedAt | string | When the items were shipped |
shippingAddress | - | |
shippingAddressLocked | boolean | Whether the shipping address is locked (set by organization, cannot be changed by customer) |
signedBy | string | Who signed for the delivery |
stripeDepositPaymentIntentId | string | Stripe PaymentIntent ID for the deposit pre-authorization |
stripeSubscriptionId | string | Stripe subscription ID for recurring payments |
successUrl | string | URL to redirect to on successful checkout completion |
trackingCarrier | - | |
trackingNumber | string | Tracking number for shipped items |
trackingStatus | - | |
waitlistLocationAddress | - | |
waitlistLocationReasonCode | - | |
waitlistReason | - | |
locationMessage | string | Location waitlist message (machine-readable) when waitlisted by location |
organizationId | OrganizationPubId | - |
POST
/v1/checkouts/{id}/fulfillRequest
curl https://api.thesweetspot.com/v1/checkouts/id_123/fulfill \
-X POST \
-H "Content-Type: application/json" \
-d '{
"serialNumbers": null,
"trackingCarrier": null,
"trackingNumber": null
}'Response
{
"createdAt": "2026-02-04T02:21:31.460Z",
"id": null,
"insuranceStatus": null,
"lifecycle": null,
"offtakePartnerId": null,
"recurringPaymentStatus": null,
"updatedAt": "2026-02-04T02:21:31.461Z",
"checkoutUrl": "string",
"customerId": "string",
"progress": {
"canGoBack": null,
"isFailed": null,
"isTerminal": null,
"isWaitlisted": null,
"lifecycle": null,
"needsAttention": null,
"percentage": null,
"phase": null,
"phaseLabel": null,
"totalSteps": null
}
}