Signature, initial, photo and ID blocks collect different information. Build each input around the template block's settings rather than treating every capture as an interchangeable image field.
Respect the signature setting
A typed signature is allowed only when its block has allowTyped enabled. Your interface should not offer a typed option that the published template forbids. If you provide both drawing and typing, make the selected method explicit before the final submission.
Initials and guardian-consent inputs also need the participant's own interaction. Do not infer them from a name field or fill them with a default acknowledgment. The prefill guide lists the blocks that cannot be prefilled.
Prepare image payloads
Supported captures use PNG or JPEG bytes encoded as base64, without a data-URL prefix. The API validates the actual bytes. Renaming a file or changing a MIME label does not turn an unsupported image into a supported capture.
The whole request body must remain within 25 MB. Base64 adds size, so test the final serialized payload rather than just the source photo's file size. Resize or recompress appropriately in your own capture flow before sending, while keeping the collected information readable.
Retrieve the correct asset
The captured-photo endpoint addresses a photo or ID capture by block ID on a signed waiver. It is not a general endpoint for downloading signature and initials images.
These assets can contain sensitive participant information. Keep API keys on your server, restrict who can retrieve the image and avoid placing the image URL or bytes into general analytics. Access should follow the actual staff task.
Handle unavailable captures
A missing or purged asset returns an unavailable response. Do not interpret it as permission to silently substitute another participant's photo. Keep the waiver ID, block ID and request ID when diagnosing the issue, without copying the image into an ordinary support ticket.
Test portrait and landscape captures, a large camera image, invalid bytes and a template that disables typed signatures. The waiver submission reference defines the request containing these values.