curl --request POST \
--url https://pdfs.platform.arb.inc/templates/render \
--header 'Content-Type: multipart/form-data' \
--form documentID=mailParkingNotice \
--form 'placeholders={
"url": "https://portal.arb.inc",
"inviteCode": "ABC-123-XYZ",
"qrCodeBase64": "iVBORw0KGgoAAAANSUhEUgAA..."
}' \
--form 'data={
"content": {
"ticketNumber": "ABC123",
"licensePlate": "XYZ9999",
"state": "XX",
"lotName": "Test Parking Lot",
"lotStreet": "123 Example Street",
"lotCity": "Sample City",
"lotState": "XX",
"lotZip": "12345",
"entryPlateImageUrl": "https://example.com/images/plate1.jpg",
"entryVehicleImageUrl": "https://example.com/images/vehicle1.jpg",
"exitPlateImageUrl": "https://example.com/images/plate2.jpg",
"exitVehicleImageUrl": "https://example.com/images/vehicle2.jpg",
"totalAmount": "99.99"
}
}' \
--form 'files={}' \
--form files.additionalProperties='@example-file'import requests
url = "https://pdfs.platform.arb.inc/templates/render"
files = { "files.additionalProperties": ("example-file", open("example-file", "rb")) }
payload = {
"documentID": "mailParkingNotice",
"placeholders": "{
\"url\": \"https://portal.arb.inc\",
\"inviteCode\": \"ABC-123-XYZ\",
\"qrCodeBase64\": \"iVBORw0KGgoAAAANSUhEUgAA...\"
}",
"data": "{
\"content\": {
\"ticketNumber\": \"ABC123\",
\"licensePlate\": \"XYZ9999\",
\"state\": \"XX\",
\"lotName\": \"Test Parking Lot\",
\"lotStreet\": \"123 Example Street\",
\"lotCity\": \"Sample City\",
\"lotState\": \"XX\",
\"lotZip\": \"12345\",
\"entryPlateImageUrl\": \"https://example.com/images/plate1.jpg\",
\"entryVehicleImageUrl\": \"https://example.com/images/vehicle1.jpg\",
\"exitPlateImageUrl\": \"https://example.com/images/plate2.jpg\",
\"exitVehicleImageUrl\": \"https://example.com/images/vehicle2.jpg\",
\"totalAmount\": \"99.99\"
}
}",
"files": "{}"
}
response = requests.post(url, data=payload, files=files)
print(response.text)const form = new FormData();
form.append('documentID', 'mailParkingNotice');
form.append('placeholders', '{
"url": "https://portal.arb.inc",
"inviteCode": "ABC-123-XYZ",
"qrCodeBase64": "iVBORw0KGgoAAAANSUhEUgAA..."
}');
form.append('data', '{
"content": {
"ticketNumber": "ABC123",
"licensePlate": "XYZ9999",
"state": "XX",
"lotName": "Test Parking Lot",
"lotStreet": "123 Example Street",
"lotCity": "Sample City",
"lotState": "XX",
"lotZip": "12345",
"entryPlateImageUrl": "https://example.com/images/plate1.jpg",
"entryVehicleImageUrl": "https://example.com/images/vehicle1.jpg",
"exitPlateImageUrl": "https://example.com/images/plate2.jpg",
"exitVehicleImageUrl": "https://example.com/images/vehicle2.jpg",
"totalAmount": "99.99"
}
}');
form.append('files', '{}');
form.append('files.additionalProperties', '{
"fileName": "example-file"
}');
const options = {method: 'POST'};
options.body = form;
fetch('https://pdfs.platform.arb.inc/templates/render', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://pdfs.platform.arb.inc/templates/render",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"documentID\"\r\n\r\nmailParkingNotice\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"placeholders\"\r\n\r\n{\r\n \"url\": \"https://portal.arb.inc\",\r\n \"inviteCode\": \"ABC-123-XYZ\",\r\n \"qrCodeBase64\": \"iVBORw0KGgoAAAANSUhEUgAA...\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"data\"\r\n\r\n{\r\n \"content\": {\r\n \"ticketNumber\": \"ABC123\",\r\n \"licensePlate\": \"XYZ9999\",\r\n \"state\": \"XX\",\r\n \"lotName\": \"Test Parking Lot\",\r\n \"lotStreet\": \"123 Example Street\",\r\n \"lotCity\": \"Sample City\",\r\n \"lotState\": \"XX\",\r\n \"lotZip\": \"12345\",\r\n \"entryPlateImageUrl\": \"https://example.com/images/plate1.jpg\",\r\n \"entryVehicleImageUrl\": \"https://example.com/images/vehicle1.jpg\",\r\n \"exitPlateImageUrl\": \"https://example.com/images/plate2.jpg\",\r\n \"exitVehicleImageUrl\": \"https://example.com/images/vehicle2.jpg\",\r\n \"totalAmount\": \"99.99\"\r\n }\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"files\"\r\n\r\n{}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"files.additionalProperties\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--",
CURLOPT_HTTPHEADER => [
"Content-Type: multipart/form-data"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://pdfs.platform.arb.inc/templates/render"
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"documentID\"\r\n\r\nmailParkingNotice\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"placeholders\"\r\n\r\n{\r\n \"url\": \"https://portal.arb.inc\",\r\n \"inviteCode\": \"ABC-123-XYZ\",\r\n \"qrCodeBase64\": \"iVBORw0KGgoAAAANSUhEUgAA...\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"data\"\r\n\r\n{\r\n \"content\": {\r\n \"ticketNumber\": \"ABC123\",\r\n \"licensePlate\": \"XYZ9999\",\r\n \"state\": \"XX\",\r\n \"lotName\": \"Test Parking Lot\",\r\n \"lotStreet\": \"123 Example Street\",\r\n \"lotCity\": \"Sample City\",\r\n \"lotState\": \"XX\",\r\n \"lotZip\": \"12345\",\r\n \"entryPlateImageUrl\": \"https://example.com/images/plate1.jpg\",\r\n \"entryVehicleImageUrl\": \"https://example.com/images/vehicle1.jpg\",\r\n \"exitPlateImageUrl\": \"https://example.com/images/plate2.jpg\",\r\n \"exitVehicleImageUrl\": \"https://example.com/images/vehicle2.jpg\",\r\n \"totalAmount\": \"99.99\"\r\n }\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"files\"\r\n\r\n{}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"files.additionalProperties\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--")
req, _ := http.NewRequest("POST", url, payload)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://pdfs.platform.arb.inc/templates/render")
.body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"documentID\"\r\n\r\nmailParkingNotice\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"placeholders\"\r\n\r\n{\r\n \"url\": \"https://portal.arb.inc\",\r\n \"inviteCode\": \"ABC-123-XYZ\",\r\n \"qrCodeBase64\": \"iVBORw0KGgoAAAANSUhEUgAA...\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"data\"\r\n\r\n{\r\n \"content\": {\r\n \"ticketNumber\": \"ABC123\",\r\n \"licensePlate\": \"XYZ9999\",\r\n \"state\": \"XX\",\r\n \"lotName\": \"Test Parking Lot\",\r\n \"lotStreet\": \"123 Example Street\",\r\n \"lotCity\": \"Sample City\",\r\n \"lotState\": \"XX\",\r\n \"lotZip\": \"12345\",\r\n \"entryPlateImageUrl\": \"https://example.com/images/plate1.jpg\",\r\n \"entryVehicleImageUrl\": \"https://example.com/images/vehicle1.jpg\",\r\n \"exitPlateImageUrl\": \"https://example.com/images/plate2.jpg\",\r\n \"exitVehicleImageUrl\": \"https://example.com/images/vehicle2.jpg\",\r\n \"totalAmount\": \"99.99\"\r\n }\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"files\"\r\n\r\n{}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"files.additionalProperties\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--")
.asString();require 'uri'
require 'net/http'
url = URI("https://pdfs.platform.arb.inc/templates/render")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request.body = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"documentID\"\r\n\r\nmailParkingNotice\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"placeholders\"\r\n\r\n{\r\n \"url\": \"https://portal.arb.inc\",\r\n \"inviteCode\": \"ABC-123-XYZ\",\r\n \"qrCodeBase64\": \"iVBORw0KGgoAAAANSUhEUgAA...\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"data\"\r\n\r\n{\r\n \"content\": {\r\n \"ticketNumber\": \"ABC123\",\r\n \"licensePlate\": \"XYZ9999\",\r\n \"state\": \"XX\",\r\n \"lotName\": \"Test Parking Lot\",\r\n \"lotStreet\": \"123 Example Street\",\r\n \"lotCity\": \"Sample City\",\r\n \"lotState\": \"XX\",\r\n \"lotZip\": \"12345\",\r\n \"entryPlateImageUrl\": \"https://example.com/images/plate1.jpg\",\r\n \"entryVehicleImageUrl\": \"https://example.com/images/vehicle1.jpg\",\r\n \"exitPlateImageUrl\": \"https://example.com/images/plate2.jpg\",\r\n \"exitVehicleImageUrl\": \"https://example.com/images/vehicle2.jpg\",\r\n \"totalAmount\": \"99.99\"\r\n }\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"files\"\r\n\r\n{}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"files.additionalProperties\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--"
response = http.request(request)
puts response.read_body"<string>""template not found""File names must begin with 'file.'""Invalid file type.""request entity too large"Render a PDF from a template with optional files and JSON data
Renders a PDF using a template, placeholder values, optional uploaded files, and optional JSON data. Multipart parts (order not strict): 1. documentID (text, required), 2. placeholders (JSON; may be {}), 3. zero or more file parts named file.<fieldName> (PNG images), 4. zero or more data parts named data.<fieldName> (JSON objects for HTML templates only).
Template types: - PDF templates: Support placeholders and file.* parts only. Reject data.* parts. - HTML templates: Support placeholders, file.* parts, and data.* parts.
The entire request body must not exceed 10 MiB.
curl --request POST \
--url https://pdfs.platform.arb.inc/templates/render \
--header 'Content-Type: multipart/form-data' \
--form documentID=mailParkingNotice \
--form 'placeholders={
"url": "https://portal.arb.inc",
"inviteCode": "ABC-123-XYZ",
"qrCodeBase64": "iVBORw0KGgoAAAANSUhEUgAA..."
}' \
--form 'data={
"content": {
"ticketNumber": "ABC123",
"licensePlate": "XYZ9999",
"state": "XX",
"lotName": "Test Parking Lot",
"lotStreet": "123 Example Street",
"lotCity": "Sample City",
"lotState": "XX",
"lotZip": "12345",
"entryPlateImageUrl": "https://example.com/images/plate1.jpg",
"entryVehicleImageUrl": "https://example.com/images/vehicle1.jpg",
"exitPlateImageUrl": "https://example.com/images/plate2.jpg",
"exitVehicleImageUrl": "https://example.com/images/vehicle2.jpg",
"totalAmount": "99.99"
}
}' \
--form 'files={}' \
--form files.additionalProperties='@example-file'import requests
url = "https://pdfs.platform.arb.inc/templates/render"
files = { "files.additionalProperties": ("example-file", open("example-file", "rb")) }
payload = {
"documentID": "mailParkingNotice",
"placeholders": "{
\"url\": \"https://portal.arb.inc\",
\"inviteCode\": \"ABC-123-XYZ\",
\"qrCodeBase64\": \"iVBORw0KGgoAAAANSUhEUgAA...\"
}",
"data": "{
\"content\": {
\"ticketNumber\": \"ABC123\",
\"licensePlate\": \"XYZ9999\",
\"state\": \"XX\",
\"lotName\": \"Test Parking Lot\",
\"lotStreet\": \"123 Example Street\",
\"lotCity\": \"Sample City\",
\"lotState\": \"XX\",
\"lotZip\": \"12345\",
\"entryPlateImageUrl\": \"https://example.com/images/plate1.jpg\",
\"entryVehicleImageUrl\": \"https://example.com/images/vehicle1.jpg\",
\"exitPlateImageUrl\": \"https://example.com/images/plate2.jpg\",
\"exitVehicleImageUrl\": \"https://example.com/images/vehicle2.jpg\",
\"totalAmount\": \"99.99\"
}
}",
"files": "{}"
}
response = requests.post(url, data=payload, files=files)
print(response.text)const form = new FormData();
form.append('documentID', 'mailParkingNotice');
form.append('placeholders', '{
"url": "https://portal.arb.inc",
"inviteCode": "ABC-123-XYZ",
"qrCodeBase64": "iVBORw0KGgoAAAANSUhEUgAA..."
}');
form.append('data', '{
"content": {
"ticketNumber": "ABC123",
"licensePlate": "XYZ9999",
"state": "XX",
"lotName": "Test Parking Lot",
"lotStreet": "123 Example Street",
"lotCity": "Sample City",
"lotState": "XX",
"lotZip": "12345",
"entryPlateImageUrl": "https://example.com/images/plate1.jpg",
"entryVehicleImageUrl": "https://example.com/images/vehicle1.jpg",
"exitPlateImageUrl": "https://example.com/images/plate2.jpg",
"exitVehicleImageUrl": "https://example.com/images/vehicle2.jpg",
"totalAmount": "99.99"
}
}');
form.append('files', '{}');
form.append('files.additionalProperties', '{
"fileName": "example-file"
}');
const options = {method: 'POST'};
options.body = form;
fetch('https://pdfs.platform.arb.inc/templates/render', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://pdfs.platform.arb.inc/templates/render",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"documentID\"\r\n\r\nmailParkingNotice\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"placeholders\"\r\n\r\n{\r\n \"url\": \"https://portal.arb.inc\",\r\n \"inviteCode\": \"ABC-123-XYZ\",\r\n \"qrCodeBase64\": \"iVBORw0KGgoAAAANSUhEUgAA...\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"data\"\r\n\r\n{\r\n \"content\": {\r\n \"ticketNumber\": \"ABC123\",\r\n \"licensePlate\": \"XYZ9999\",\r\n \"state\": \"XX\",\r\n \"lotName\": \"Test Parking Lot\",\r\n \"lotStreet\": \"123 Example Street\",\r\n \"lotCity\": \"Sample City\",\r\n \"lotState\": \"XX\",\r\n \"lotZip\": \"12345\",\r\n \"entryPlateImageUrl\": \"https://example.com/images/plate1.jpg\",\r\n \"entryVehicleImageUrl\": \"https://example.com/images/vehicle1.jpg\",\r\n \"exitPlateImageUrl\": \"https://example.com/images/plate2.jpg\",\r\n \"exitVehicleImageUrl\": \"https://example.com/images/vehicle2.jpg\",\r\n \"totalAmount\": \"99.99\"\r\n }\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"files\"\r\n\r\n{}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"files.additionalProperties\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--",
CURLOPT_HTTPHEADER => [
"Content-Type: multipart/form-data"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://pdfs.platform.arb.inc/templates/render"
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"documentID\"\r\n\r\nmailParkingNotice\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"placeholders\"\r\n\r\n{\r\n \"url\": \"https://portal.arb.inc\",\r\n \"inviteCode\": \"ABC-123-XYZ\",\r\n \"qrCodeBase64\": \"iVBORw0KGgoAAAANSUhEUgAA...\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"data\"\r\n\r\n{\r\n \"content\": {\r\n \"ticketNumber\": \"ABC123\",\r\n \"licensePlate\": \"XYZ9999\",\r\n \"state\": \"XX\",\r\n \"lotName\": \"Test Parking Lot\",\r\n \"lotStreet\": \"123 Example Street\",\r\n \"lotCity\": \"Sample City\",\r\n \"lotState\": \"XX\",\r\n \"lotZip\": \"12345\",\r\n \"entryPlateImageUrl\": \"https://example.com/images/plate1.jpg\",\r\n \"entryVehicleImageUrl\": \"https://example.com/images/vehicle1.jpg\",\r\n \"exitPlateImageUrl\": \"https://example.com/images/plate2.jpg\",\r\n \"exitVehicleImageUrl\": \"https://example.com/images/vehicle2.jpg\",\r\n \"totalAmount\": \"99.99\"\r\n }\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"files\"\r\n\r\n{}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"files.additionalProperties\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--")
req, _ := http.NewRequest("POST", url, payload)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://pdfs.platform.arb.inc/templates/render")
.body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"documentID\"\r\n\r\nmailParkingNotice\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"placeholders\"\r\n\r\n{\r\n \"url\": \"https://portal.arb.inc\",\r\n \"inviteCode\": \"ABC-123-XYZ\",\r\n \"qrCodeBase64\": \"iVBORw0KGgoAAAANSUhEUgAA...\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"data\"\r\n\r\n{\r\n \"content\": {\r\n \"ticketNumber\": \"ABC123\",\r\n \"licensePlate\": \"XYZ9999\",\r\n \"state\": \"XX\",\r\n \"lotName\": \"Test Parking Lot\",\r\n \"lotStreet\": \"123 Example Street\",\r\n \"lotCity\": \"Sample City\",\r\n \"lotState\": \"XX\",\r\n \"lotZip\": \"12345\",\r\n \"entryPlateImageUrl\": \"https://example.com/images/plate1.jpg\",\r\n \"entryVehicleImageUrl\": \"https://example.com/images/vehicle1.jpg\",\r\n \"exitPlateImageUrl\": \"https://example.com/images/plate2.jpg\",\r\n \"exitVehicleImageUrl\": \"https://example.com/images/vehicle2.jpg\",\r\n \"totalAmount\": \"99.99\"\r\n }\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"files\"\r\n\r\n{}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"files.additionalProperties\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--")
.asString();require 'uri'
require 'net/http'
url = URI("https://pdfs.platform.arb.inc/templates/render")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request.body = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"documentID\"\r\n\r\nmailParkingNotice\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"placeholders\"\r\n\r\n{\r\n \"url\": \"https://portal.arb.inc\",\r\n \"inviteCode\": \"ABC-123-XYZ\",\r\n \"qrCodeBase64\": \"iVBORw0KGgoAAAANSUhEUgAA...\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"data\"\r\n\r\n{\r\n \"content\": {\r\n \"ticketNumber\": \"ABC123\",\r\n \"licensePlate\": \"XYZ9999\",\r\n \"state\": \"XX\",\r\n \"lotName\": \"Test Parking Lot\",\r\n \"lotStreet\": \"123 Example Street\",\r\n \"lotCity\": \"Sample City\",\r\n \"lotState\": \"XX\",\r\n \"lotZip\": \"12345\",\r\n \"entryPlateImageUrl\": \"https://example.com/images/plate1.jpg\",\r\n \"entryVehicleImageUrl\": \"https://example.com/images/vehicle1.jpg\",\r\n \"exitPlateImageUrl\": \"https://example.com/images/plate2.jpg\",\r\n \"exitVehicleImageUrl\": \"https://example.com/images/vehicle2.jpg\",\r\n \"totalAmount\": \"99.99\"\r\n }\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"files\"\r\n\r\n{}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"files.additionalProperties\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--"
response = http.request(request)
puts response.read_body"<string>""template not found""File names must begin with 'file.'""Invalid file type.""request entity too large"Body
Identifier of the template to render.
"mailParkingNotice"
JSON object mapping placeholder names to string values. May be empty ({}).
Show child attributes
Show child attributes
{ "url": "https://portal.arb.inc", "inviteCode": "ABC-123-XYZ", "qrCodeBase64": "iVBORw0KGgoAAAANSUhEUgAA..." }
Dynamic JSON data parts (HTML templates only): zero or more parts named data.<fieldName> (e.g. data.content, data.ticket). Each part contains JSON-encoded data (objects, arrays, primitives). PDF templates will reject data.* parts.
Show child attributes
Show child attributes
{ "content": { "ticketNumber": "ABC123", "licensePlate": "XYZ9999", "state": "XX", "lotName": "Test Parking Lot", "lotStreet": "123 Example Street", "lotCity": "Sample City", "lotState": "XX", "lotZip": "12345", "entryPlateImageUrl": "https://example.com/images/plate1.jpg", "entryVehicleImageUrl": "https://example.com/images/vehicle1.jpg", "exitPlateImageUrl": "https://example.com/images/plate2.jpg", "exitVehicleImageUrl": "https://example.com/images/vehicle2.jpg", "totalAmount": "99.99" } }
Dynamic file parts: zero or more parts named file.<fieldName> (e.g. file.qrCode, file.attachment). For PDF templates: must match template field names. For HTML templates: available as {fieldName}Base64 in template.
Show child attributes
Show child attributes
Response
PDF successfully rendered.
The response is of type file.