Post-Processing

Breeze Booth supports a post-processing webhook that allows an external script or API endpoint to receive the captured photo and associated session data immediately after a photo is taken.

The endpoint can return a modified image and/or structured data back to Breeze Booth for further processing — such as applying overlays, triggering email delivery, or populating caption fields.

This enables deep integration with third-party systems without modifying Breeze Booth itself.

 

In this Guide

 

Common use cases

  • Fetching attendee registration data from an event platform
  • Custom Image Processing
  • Applying custom AI-generated effects
  • Logging session data to an external database or CRM

 

How It Works

When a photo session completes, Breeze Booth sends an HTTP POST request to the configured webhook URL.

  • The request is sent as multipart/form-data
  • It includes the captured image and session fields

Your endpoint must:

  • Process the incoming request
  • Return a multipart response containing:
  • A JSON metadata block
  • The image file (original or modified)

 

Request Format

Breeze Booth sends a standard HTTP POST request with:

Content-Type: multipart/form-data

 

Standard POST Fields

Field Type Description
fileToUpload file Captured JPEG image
eventkitesessionid string Unique session ID
eventkitegalleryid string Gallery ID
status string Session status
model string Camera model
name string Profile display name
username string Profile username
user_id string Internal user ID
profile string Active profile name
time string Capture timestamp
hash string Session integrity hash
version string Breeze Booth version
id string Session record ID

 

Survey and QR Code Fields

If survey or QR fields are configured, they are included as additional POST fields.

Example:

surveyN_type_id = “user-entered-value”
{qr1} = “scanned-qr-value”
{qr2} = “second-qr-field”

 

Required Response Format

Your endpoint must return a multipart/form-data response with exactly two parts:

  • JSON metadata
  • Image file

 

Response Structure

Content-Type: multipart/form-data; boundary=your_boundary
--your_boundary
Content-Type: application/json
{"status":"success","captions":{"field1":"value1"},"autoemail":"user@example.com
"}
--your_boundary
Content-Type: image/jpeg
Content-Disposition: file; name="image"; filename="photo.jpg"
[binary image data]
--your_boundary--

 

JSON Metadata Fields

Field Type Description
status string Required. Must be “success”
captions object Optional key/value pairs for templates
autoemail string Optional email address

 |

Captions Object

The captions object allows your script to inject values into the Breeze Booth session.

These can be used in layouts and overlays as template variables.

Example:

"captions": {
"first_name": "Jane",
"last_name": "Smith",
"membership_tier": "Gold",
"distinct_email": "jane@example.com
"
}

 

Auto Email

The autoemail field triggers automatic email delivery. Ensure you have email configured, the sharing screen enabled with an active “Email” share touch screen action (even if hidden).

Example:

{
"status": "success",
"captions": { "member_name": "Jane Smith" },
"autoemail": "jane@example.com
"
}

 

Complete Response Example

HTTP/1.1 200 OK
Content-Type: multipart/form-data; boundary=breeze_boundary_1234567890
--breeze_boundary_1234567890
Content-Type: application/json
{
"status": "success",
"captions": {
"first_name": "Jane",
"event_tier": "VIP",
"reg_email": "jane@example.com
"
},
"autoemail": "jane@example.com
"
}
--breeze_boundary_1234567890
Content-Type: image/jpeg
Content-Disposition: file; name="image"; filename="jane_1234567890.jpg"
[binary JPEG data]
--breeze_boundary_1234567890--

 

Error Handling

Return a JSON response with a non-200 HTTP status code:

HTTP/1.1 400 Bad Request
Content-Type: application/json
{
"status": "error",
"message": "Missing required field: qr1"
}

 

Recommended HTTP Status Codes

Code Meaning Description
200 Success Valid multipart response
400 Bad Request Missing/invalid input
401 Unauthorised Authentication failure
500 Server Error Unexpected failure

 

Image Handling

Image is received via fileToUpload

You may:

  • ** Return it unchanged
  • ** Modify it (overlays, crops, AI effects etc.)

The returned image replaces the original.

 

Content-Type Header Warning

Do not include Content-Type: application/json on GET requests to external APIs.
Some gateways will reject the request with a 403 Forbidden.

 

Field Name Case Sensitivity

POST field names are case-sensitive. Match names exactly. Include braces where required (e.g. {qr1})

 

Example Script

Download Sample Script

This sample PHP script demonstrates a simple post-processing webhook for Breeze Booth. It receives the captured photo from Breeze Booth, saves it to the server, applies a basic watermark, and returns the processed image as part of a valid multipart response.

Alongside the image, the script also returns a JSON metadata block containing captions — in this example, values such as {mood} and {hair_color}. These caption values are passed back into Breeze Booth and can be used as template variables in print layouts, overlays, filenames, or sharing workflows.

This provides a simple end-to-end example of how to:

  • Receive and process an image from Breeze Booth
  • Return a modified image
  • Inject dynamic data back into the session using captions

Feedback

Thanks for your feedback.

Post your comment on this topic.

Please do not use this for support questions.
Contact Us

Post Comment