Complete a header sample
Checks the uploaded bytes against the type and size limits, sends them to Meta and answers Meta’s handle. Ricky deletes its copy either way, so a failed upload starts again with POST /templates/media.
Scope: templates:write.
bearerAuthAuthorizationBearer <token>An organization API key, rky_live_…, created in Settings → API. Send it only from a server.
Idempotency-Key?stringOptional. A value you choose, unique per logical write, 8–200 characters: a UUID or an ID from your system such as order-10482-ready. Retrying with the same key and body replays the first response instead of repeating the write.
8 <= length <= 200application/json- body
The upload to send to Meta, with the channel it began with.
channel_id*stringWhatsApp channel whose business account will use the sample.
uuidupload_path*stringThe upload_path the upload began with.
1 <= length <= 512Success.
application/json- response
data*A header sample Meta holds for a template review.
curl -X POST 'https://getricky.ai/api/v1/templates/media/complete' \ -H 'Idempotency-Key: order-10482-ready' \ -H 'Content-Type: application/json' \ -d '{ "channel_id": "8f3c2a5e-6b1d-4c7a-9e2f-1a2b3c4d5e6f", "upload_path": "d9e0f1a2-b3c4-4d5e-8f6a-7b8c9d0e1f2a/template-samples/8f3c2a5e-6b1d-4c7a-9e2f-1a2b3c4d5e6f/2d4f6a8c-1b3d-4e5f-8a7b-9c0d1e2f3a4b/6f1e2d3c-4b5a-4968-8776-5a4b3c2d1e0f.jpg"}'{ "data": { "handle": "4::aW1hZ2UvanBlZw==:ARZ…" }}