List fulfillment accounts
curl --request GET \
--url https://api.scrip.dev/v1/fulfillment-accounts \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.scrip.dev/v1/fulfillment-accounts"
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/fulfillment-accounts', 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/fulfillment-accounts",
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/fulfillment-accounts"
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/fulfillment-accounts")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.scrip.dev/v1/fulfillment-accounts")
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": [
{
"config": {
"awaiting_funds_window_hours": 24
},
"created_at": "2026-08-31T10:30:00Z",
"credential_method": "OAUTH",
"credential_owner": "ORG",
"environment": "TEST",
"id": "550e8400-e29b-41d4-a716-446655440000",
"last_validated_at": "2026-08-31T10:30:00Z",
"onboarding_expires_at": "2026-09-02T10:30:00Z",
"onboarding_url": "<string>",
"provider": "TREMENDOUS",
"provider_account_id": "<string>",
"status": "ACTIVE",
"status_reason": "reauth_required",
"updated_at": "2026-08-31T10:30:00Z",
"webhook_registered": true
}
]
}{
"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": "forbidden",
"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": "Insufficient permissions for this action"
}{
"code": "internal_error",
"message": "An internal error occurred"
}Gift cards
List fulfillment accounts
List the organization’s fulfillment accounts.
GET
/
v1
/
fulfillment-accounts
List fulfillment accounts
curl --request GET \
--url https://api.scrip.dev/v1/fulfillment-accounts \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.scrip.dev/v1/fulfillment-accounts"
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/fulfillment-accounts', 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/fulfillment-accounts",
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/fulfillment-accounts"
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/fulfillment-accounts")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.scrip.dev/v1/fulfillment-accounts")
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": [
{
"config": {
"awaiting_funds_window_hours": 24
},
"created_at": "2026-08-31T10:30:00Z",
"credential_method": "OAUTH",
"credential_owner": "ORG",
"environment": "TEST",
"id": "550e8400-e29b-41d4-a716-446655440000",
"last_validated_at": "2026-08-31T10:30:00Z",
"onboarding_expires_at": "2026-09-02T10:30:00Z",
"onboarding_url": "<string>",
"provider": "TREMENDOUS",
"provider_account_id": "<string>",
"status": "ACTIVE",
"status_reason": "reauth_required",
"updated_at": "2026-08-31T10:30:00Z",
"webhook_registered": true
}
]
}{
"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": "forbidden",
"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": "Insufficient permissions for this action"
}{
"code": "internal_error",
"message": "An internal error occurred"
}List the fulfillment accounts connected to your organization. Use an account’s
id when creating a reward source. You can have one live account per vendor.
Only an ACTIVE account accepts new redemptions. This status does not indicate whether the account has enough funds for an order. Connect, fund, and manage accounts in the Scrip dashboard.
See Gift-card setup for how account funding and participant balances work together.