List fulfillment options
curl --request GET \
--url https://firespark.cloud/api/integrations/v1/fulfillment \
--header 'Authorization: Bearer <token>'import requests
url = "https://firespark.cloud/api/integrations/v1/fulfillment"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://firespark.cloud/api/integrations/v1/fulfillment', 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://firespark.cloud/api/integrations/v1/fulfillment",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://firespark.cloud/api/integrations/v1/fulfillment"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://firespark.cloud/api/integrations/v1/fulfillment")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://firespark.cloud/api/integrations/v1/fulfillment")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "delivery",
"uid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"organization_id": "f1e2d3c4-b5a6-7890-fedc-ba0987654321",
"merchant_id": "c1d2e3f4-a5b6-7890-cdef-123456789abc",
"name": "Delivery",
"type": "DELIVERY",
"status": "ACTIVE"
},
{
"id": "pickup",
"uid": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
"organization_id": "f1e2d3c4-b5a6-7890-fedc-ba0987654321",
"merchant_id": "c1d2e3f4-a5b6-7890-cdef-123456789abc",
"name": "Pickup",
"type": "PICKUP",
"status": "ACTIVE"
},
{
"id": "drive-thru",
"uid": "c3d4e5f6-a7b8-9012-cdef-123456789012",
"organization_id": "f1e2d3c4-b5a6-7890-fedc-ba0987654321",
"merchant_id": "c1d2e3f4-a5b6-7890-cdef-123456789abc",
"name": "Drive-thru",
"type": "DRIVE_THRU",
"status": "ACTIVE"
}
]
}
Fulfillment
List fulfillment options
Read fulfillment type definitions for POS and RMS mapping.
GET
/
fulfillment
List fulfillment options
curl --request GET \
--url https://firespark.cloud/api/integrations/v1/fulfillment \
--header 'Authorization: Bearer <token>'import requests
url = "https://firespark.cloud/api/integrations/v1/fulfillment"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://firespark.cloud/api/integrations/v1/fulfillment', 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://firespark.cloud/api/integrations/v1/fulfillment",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://firespark.cloud/api/integrations/v1/fulfillment"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://firespark.cloud/api/integrations/v1/fulfillment")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://firespark.cloud/api/integrations/v1/fulfillment")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "delivery",
"uid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"organization_id": "f1e2d3c4-b5a6-7890-fedc-ba0987654321",
"merchant_id": "c1d2e3f4-a5b6-7890-cdef-123456789abc",
"name": "Delivery",
"type": "DELIVERY",
"status": "ACTIVE"
},
{
"id": "pickup",
"uid": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
"organization_id": "f1e2d3c4-b5a6-7890-fedc-ba0987654321",
"merchant_id": "c1d2e3f4-a5b6-7890-cdef-123456789abc",
"name": "Pickup",
"type": "PICKUP",
"status": "ACTIVE"
},
{
"id": "drive-thru",
"uid": "c3d4e5f6-a7b8-9012-cdef-123456789012",
"organization_id": "f1e2d3c4-b5a6-7890-fedc-ba0987654321",
"merchant_id": "c1d2e3f4-a5b6-7890-cdef-123456789abc",
"name": "Drive-thru",
"type": "DRIVE_THRU",
"status": "ACTIVE"
}
]
}
Returns all fulfillment options configured for the authenticated merchant. Use this endpoint to map Fire spark fulfillment types to pickup, delivery, and dine-in flows in your POS or RMS before syncing stores and composing menus.
Requires an access token with the
fulfillment:read scope. See
Token to obtain a token.Request
curl "https://firespark.cloud/api/integrations/v1/fulfillment" \
-H "Authorization: Bearer ACCESS_TOKEN"
Response
The response wraps an array of fulfillment objects indata. Each object represents one fulfillment mode — built-in types such as DELIVERY and PICKUP, or custom types such as DRIVE_THRU.
{
"data": [
{
"id": "delivery",
"uid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"organization_id": "f1e2d3c4-b5a6-7890-fedc-ba0987654321",
"merchant_id": "c1d2e3f4-a5b6-7890-cdef-123456789abc",
"name": "Delivery",
"type": "DELIVERY",
"status": "ACTIVE"
},
{
"id": "pickup",
"uid": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
"organization_id": "f1e2d3c4-b5a6-7890-fedc-ba0987654321",
"merchant_id": "c1d2e3f4-a5b6-7890-cdef-123456789abc",
"name": "Pickup",
"type": "PICKUP",
"status": "ACTIVE"
},
{
"id": "drive-thru",
"uid": "c3d4e5f6-a7b8-9012-cdef-123456789012",
"organization_id": "f1e2d3c4-b5a6-7890-fedc-ba0987654321",
"merchant_id": "c1d2e3f4-a5b6-7890-cdef-123456789abc",
"name": "Drive-thru",
"type": "DRIVE_THRU",
"status": "ACTIVE"
}
]
}
Fulfillment object
| Field | Type | Description |
|---|---|---|
id | string | External fulfillment identifier. Alphanumeric characters, _, and - only. 1–64 characters. Unique per merchant. |
uid | string (UUID) | Fire spark internal identifier. |
organization_id | string (UUID) | Organization that owns the merchant. |
merchant_id | string (UUID) | Merchant the fulfillment option belongs to. |
name | string | Display name. 1–100 characters. |
type | string | Fulfillment type code. 1–100 characters. Unique per merchant among active records. Common values: DELIVERY, PICKUP, DINE_IN. Custom codes such as DRIVE_THRU or CURBSIDE are supported. |
status | string | ACTIVE or INACTIVE. |
Mapping fulfillment to your POS
Match theid field to the fulfillment identifier in your POS or RMS. Fire spark uses this external ID when composing menus and attaching fulfillment rules to stores and channels.
Fulfillment
uid values are stable Fire spark identifiers. Use id for
cross-system mapping and uid when referencing fulfillment options in other
Fire spark API calls. Use type when you need the semantic mode code
(DELIVERY, PICKUP, and so on).Error responses
| Status | Description |
|---|---|
401 | Missing or invalid access token. |
403 | Token does not include the fulfillment:read scope. |
⌘I