GS1 Verification Router Service (VRS) Lightweight Messaging Spec
GS1 Verification Router Service (VRS) protocol engine for automated saleable drug returns verification in under 5ms. This specification documents the exact field layout, checksum rules, and validation behavior so your integration matches 21 U.S. Code § 360eee / GS1 EPCIS without reading the source standard.
⚡ Live GS1 Verification Router Service (VRS) Lightweight Messaging Spec Interactive Workbench
Test real-time validation and schema parsing for GS1 Verification Router Service (VRS) Lightweight Messaging Spec directly in your browser. Runs in sub-5ms with zero setup.
{
"status": "Click RUN VALIDATION to execute on the Cloudflare edge..."
}
Quick Summary: GS1 Verification Router Service (VRS) protocol engine for automated saleable drug returns verification in under 5ms. Validates strictly against 21 U.S. Code § 360eee / GS1 EPCIS with sub-5ms in-memory response times.
Specification & Structural Breakdown
Technical Summary: Validates strictly against 21 U.S. Code § 360eee / GS1 EPCIS. Payloads are parsed in memory and return clean, typed JSON in milliseconds with zero data logged.
Under DSCSA Section 582, wholesale distributors must verify the product identifier (GTIN, SN, Lot, Exp) with the manufacturer prior to redistributing returned drug packages.
The GS1 Lightweight Messaging Standard for VRS defines standard RESTful JSON request and response payloads exchanged via secure routing lookups.
| JSON Attribute | Type | Description | Validation Rule |
|---|---|---|---|
| gtin | String (14 digits) | Global Trade Item Number | Valid Modulo-10 checksum |
| serialNumber | String (1-20 chars) | Unique Serial Identifier | Alphanumeric regex: ^[A-Za-z0-9-._]{1,20}$ |
| expirationDate | String (YYMMDD / ISO) | Product Expiration Date | Valid date format |
| lotNumber | String (1-20 chars) | Manufacturing Batch Code | Alphanumeric identifier |
Parsed JSON Response Model
The edge microservice transforms input payloads into strongly-typed hierarchical JSON envelopes with sub-5ms latency:
{
"vrsRequest": {
"gtin": "00301234567896",
"serialNumber": "123456789012",
"expirationDate": "260831",
"lotNumber": "LOT99881"
},
"vrsResponse": {
"verificationResult": "SUCCESS",
"verified": true,
"timestamp": "2026-08-30T12:00:00Z"
}
}
Copy-Paste Integration Code (6 Languages)
Integrate GS1 Verification Router Service (VRS) Lightweight Messaging Spec directly into your production application with native, zero-dependency code snippets in cURL, Node.js, Python, Go, C#, and a ready-to-paste Claude prompt. Get a free API key → (no credit card required):
curl --request POST \
--url "https://api.stanzaapi.com/pharma-dscsa/api/v1/dscsa/validate-barcode" \
--header "Content-Type: application/json" \
--header "x-api-key: YOUR_API_KEY" \
--data '{
"rawBarcode": "010030123456789621123456789012\u001d1726083110LOT99881"
}'const response = await fetch("https://api.stanzaapi.com/pharma-dscsa/api/v1/dscsa/validate-barcode", {
method: "POST",
headers: {
"Content-Type": "application/json",
"x-api-key": process.env.API_KEY || "YOUR_API_KEY"
},
body: JSON.stringify({
"rawBarcode": "010030123456789621123456789012\u001d1726083110LOT99881"
})
});
const data = await response.json();
console.log(data);import requests
import json
url = "https://api.stanzaapi.com/pharma-dscsa/api/v1/dscsa/validate-barcode"
headers = {
"Content-Type": "application/json",
"x-api-key": "YOUR_API_KEY"
}
payload = {
"rawBarcode": "010030123456789621123456789012\u001d1726083110LOT99881"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())package main
import (
"bytes"
"fmt"
"io"
"net/http"
"os"
)
func main() {
url := "https://api.stanzaapi.com/pharma-dscsa/api/v1/dscsa/validate-barcode"
payload := []byte(`{"rawBarcode":"010030123456789621123456789012\u001d1726083110LOT99881"}`)
req, _ := http.NewRequest("POST", url, bytes.NewBuffer(payload))
req.Header.Add("Content-Type", "application/json")
req.Header.Add("x-api-key", os.Getenv("API_KEY"))
res, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("x-api-key", Environment.GetEnvironmentVariable("API_KEY") ?? "YOUR_API_KEY");
var json = @"{""rawBarcode"":""010030123456789621123456789012\u001d1726083110LOT99881""}";
var payload = new StringContent(json, Encoding.UTF8, "application/json");
var response = await client.PostAsync("https://api.stanzaapi.com/pharma-dscsa/api/v1/dscsa/validate-barcode", payload);
var content = await response.Content.ReadAsStringAsync();
Console.WriteLine(content);
}
}Integrate the StanzaAPI pharma-dscsa micro-API.
Endpoint: POST https://api.stanzaapi.com/pharma-dscsa/api/v1/dscsa/validate-barcode
Auth header: x-api-key: YOUR_API_KEY
Content-Type: application/json
Request body:
{
"rawBarcode": "010030123456789621123456789012\u001d1726083110LOT99881"
}
Rules:
- Send the request with a 2-second timeout.
- Parse the standard envelope { success, data, meta: { latency_ms, version } }.
- On failure, read { success: false, error, code } and branch on the code.
- Do not retry 4xx responses; surface the error code to the caller.
- Treat invalid-but-well-formed payloads as HTTP 200 with data.valid === false.Frequently Asked Questions & Technical Notes
Industry standards mandate sub-second response times, and our edge-based engine resolves verification parsing in <5ms.
Related FDA DSCSA & EU FMD Prescription Drug Serialization API Formats
Explore sibling specifications and standards in the same developer cluster:
EPCIS 1.2 XML Event Parser & Schema Validator (FDA DSCSA)
High-speed EPCIS 1.2 XML parser extracting ObjectEvents, AggregationEvents, BizStep, ReadPoint, and GLN identifiers into JSON.
View Format →EPCIS 2.0 JSON-LD Supply Chain Event Parser & Validator
Next-generation EPCIS 2.0 JSON-LD parser and schema compliance validator for modern pharmaceutical supply chain architectures.
View Format →FDA 21 CFR 201.25 Barcode Requirement & 2D DataMatrix Spec
Automated compliance validator for US FDA 21 CFR 201.25 drug product barcode labeling regulations.
View Format →DSCSA 4-Element 2D DataMatrix Barcode & Matrix Specification
Extract and validate all 4 DSCSA product identifier elements and FNC1 group separators in milliseconds.
View Format →DSCSA Section 582 Suspect Product Quarantine & Verification Rules
Automate suspect and illegitimate prescription product quarantine checks, lot-level audits, and regulatory verification.
View Format →Complementary Enterprise APIs
Seamlessly orchestrate data pipelines across adjacent financial, regulatory, and supply-chain protocols:
GS1 2027 Barcode & QR Decoder →
Decode GS1 DataMatrix, Digital Link URIs, and 150+ Application Identifiers.
FDA AccessGUDID & IMDRF UDI Decoder →
Verify FDA and EU MDR medical device serialization, expiration dates, and lot numbers.
Healthcare EDI ANSI X12 →
Map pharmaceutical supply chain track-and-trace events to healthcare EDI transactions.