Skip to content

frame.approved

POST

A frame was approved. Shootika sends this POST to every active webhook endpoint of the store that subscribes to frame.approved. Any 2xx answer within 10 seconds is a success; anything else is tried up to 8 times over about 24 hours. Verify the Shootika-Signature header before trusting the body.

Shootika-Signature
required
string

t=<unix seconds>,v1=<hex>. v1 is the hex HMAC-SHA256 of the string <t>.<raw request body>, keyed with the endpoint’s whole whsec_... secret. Recompute it over the raw bytes you received, compare in constant time, and reject a t more than 5 minutes from your clock.

Media typeapplication/json
object
id
required

Unique per event (evt_...). Use it to ignore a delivery you already handled.

string
type
required
string
Allowed values: frame.ready frame.failed frame.approved frame.unapproved webhook.test
created_at
required
string format: date-time
data
required

frame for the four frame events; empty for webhook.test.

object
frame
object
id
required
string format: uuid
product_id
required
string format: uuid
source_image_id
required
string format: uuid
scene_id
required
string format: uuid
regenerate_of
required

The frame this one retries, or null.

string | null format: uuid
status
required

queued waiting to start, processing being made, ready finished, failed could not be made (and refunded), canceled stopped.

string
Allowed values: queued processing ready failed canceled
approved
required
boolean
approved_at
required
string | null format: date-time
image
required
Any of:
object
url
required
string format: uri
width
required
integer | null
height
required
integer | null
expires_at
required

When an unapproved frame is deleted. Null once the frame is approved.

string | null format: date-time
error
required
Any of:
object
code
required
string
Allowed values: generation_failed generation_timeout service_busy
message
required
string
credit_refunded
required

True when the frame failed, because a failed frame is always refunded. Null otherwise.

boolean | null
created_at
required
string format: date-time
ready_at
required
string | null format: date-time
type
required
Allowed value: frame.approved

Received. The body is ignored.