Get fulfillment cost report
curl --request GET \
--url https://api.scrip.dev/v1/reports/fulfillment-cost \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.scrip.dev/v1/reports/fulfillment-cost"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.scrip.dev/v1/reports/fulfillment-cost', 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://api.scrip.dev/v1/reports/fulfillment-cost",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$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://api.scrip.dev/v1/reports/fulfillment-cost"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.scrip.dev/v1/reports/fulfillment-cost")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.scrip.dev/v1/reports/fulfillment-cost")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": [
{
"cost_minor": 105000,
"count": 42,
"face_currency": "USD",
"face_value_minor": 105000,
"program_id": "550e8400-e29b-41d4-a716-446655440001",
"program_name": "Premium Rewards",
"provider_fee_minor": 0,
"status": "SUCCEEDED"
}
],
"from": "2026-01-01T00:00:00Z",
"pagination": {
"has_more": true,
"next_cursor": "YWJjMTIz"
},
"to": "2026-01-31T23:59:59Z"
}{
"code": "bad_request",
"details": {
"expected": "uuid",
"field": "asset_id",
"fields": [
{
"expected": "<unknown>",
"field": "amount",
"message": "This field is required",
"reason": "required",
"received": "-10.00"
}
],
"reason": "invalid",
"received": "not-a-uuid"
},
"message": "Invalid request parameters"
}{
"code": "unauthorized",
"details": {
"expected": "uuid",
"field": "asset_id",
"fields": [
{
"expected": "<unknown>",
"field": "amount",
"message": "This field is required",
"reason": "required",
"received": "-10.00"
}
],
"reason": "invalid",
"received": "not-a-uuid"
},
"message": "Missing or invalid credentials"
}{
"code": "internal_error",
"message": "An internal error occurred"
}Reporting
Get fulfillment cost report
Summarize fulfillment face value, fees, and cost by program, status, and currency.
GET
/
v1
/
reports
/
fulfillment-cost
Get fulfillment cost report
curl --request GET \
--url https://api.scrip.dev/v1/reports/fulfillment-cost \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.scrip.dev/v1/reports/fulfillment-cost"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.scrip.dev/v1/reports/fulfillment-cost', 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://api.scrip.dev/v1/reports/fulfillment-cost",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$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://api.scrip.dev/v1/reports/fulfillment-cost"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.scrip.dev/v1/reports/fulfillment-cost")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.scrip.dev/v1/reports/fulfillment-cost")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": [
{
"cost_minor": 105000,
"count": 42,
"face_currency": "USD",
"face_value_minor": 105000,
"program_id": "550e8400-e29b-41d4-a716-446655440001",
"program_name": "Premium Rewards",
"provider_fee_minor": 0,
"status": "SUCCEEDED"
}
],
"from": "2026-01-01T00:00:00Z",
"pagination": {
"has_more": true,
"next_cursor": "YWJjMTIz"
},
"to": "2026-01-31T23:59:59Z"
}{
"code": "bad_request",
"details": {
"expected": "uuid",
"field": "asset_id",
"fields": [
{
"expected": "<unknown>",
"field": "amount",
"message": "This field is required",
"reason": "required",
"received": "-10.00"
}
],
"reason": "invalid",
"received": "not-a-uuid"
},
"message": "Invalid request parameters"
}{
"code": "unauthorized",
"details": {
"expected": "uuid",
"field": "asset_id",
"fields": [
{
"expected": "<unknown>",
"field": "amount",
"message": "This field is required",
"reason": "required",
"received": "-10.00"
}
],
"reason": "invalid",
"received": "not-a-uuid"
},
"message": "Missing or invalid credentials"
}{
"code": "internal_error",
"message": "An internal error occurred"
}Retrieve gift-card order totals grouped by program, fulfillment status, and currency. The report includes face value, fees, and cost for the requested period.
The date range selects orders by authorization time, while the status reflects their current outcome. A past period’s breakdown can change as pending orders succeed or fail.
Amounts are in minor units of
face_currency, such as cents for USD. Asset charges are reported separately in the ledger. provider_fee_minor is 0 for gift cards.
See Reporting for using this report alongside ledger reports.
Authorizations
ApiKeyAuthBearerAuth
API key passed in the X-API-Key header.
Query Parameters
Period start (inclusive, RFC3339)
Period end (inclusive, RFC3339)
Filter to a specific program
Response
Fulfillment cost report
Summarize fulfillment face value, fees, and cost by program, status, and currency.
Rows, one per program x status with fulfillment activity in the period
Show child attributes
Show child attributes
Period start (inclusive, RFC 3339), echoed from the request
Example:
"2026-01-01T00:00:00Z"
Pagination metadata for list responses
Show child attributes
Show child attributes
Period end (inclusive, RFC 3339), echoed from the request
Example:
"2026-01-31T23:59:59Z"