curl --silent --show-error --fail-with-body --request POST \
--url 'https://api.edi.stateset.com/v1/partners/{id}/publish-template' \
--header "Authorization: Bearer $EDI_API_TOKEN"
{
"certification_pack": "string",
"certified": true,
"created_at": "2026-08-31T14:22:05Z",
"delimiters": {
"component": ">",
"element": "*",
"repetition": "string",
"segment": "~"
},
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"label": {
"darkness": 1,
"height_dots": 1,
"partner_mark": "string",
"width_dots": 1
},
"name": "Two-Person Tent",
"overlay": {
"element_overrides": [
{
"element": 1,
"segment": "string",
"transaction_set": "string",
"value": "49.00"
}
],
"extra_segments": [
{
"elements": [
"string"
],
"tag": "priority",
"transaction_set": "string"
}
]
},
"packing_slip": {
"footer_note": "string",
"logo_text": "https://cdn.example.com/products/tent-2p.jpg",
"seller_name": "string",
"show_sscc": true
},
"partner_isa_qualifier": "string",
"publisher_tenant": "string",
"reuse_count": 1,
"updated_at": "2026-08-31T14:22:05Z",
"validation": {
"accepted_inbound": [
"string"
],
"accepted_versions": [
"string"
],
"conditional_rules": [
{
"equals": [
"string"
],
"require_element": {
"element": 1,
"segment": "string"
},
"require_segment": "string",
"when_element": 1,
"when_segment": "string"
}
],
"count_checks": {},
"element_constraints": [
{
"allowed": [
"string"
],
"component": 1,
"element": 1,
"format": "numeric",
"max_len": 1,
"min_len": 1,
"qualifier_element": 1,
"qualifier_value": "49.00",
"required": true,
"segment": "string",
"sets": [
"string"
]
}
],
"enforce_x12_envelope_identity": true,
"enforce_x12_group_identity": true,
"outbound_rules": [
{
"kind": "required_segment",
"qualifier": "string",
"segment": "string",
"set": "string",
"source": "string"
}
],
"required_qualified": {},
"required_references": {},
"required_segments": {},
"segment_cardinality": {},
"warning_codes": [
"string"
]
},
"version": "2026-08-01"
}
Publishes a partner's guide+map to the shared library as a reusable template…
Published template
POST
/
v1
/
partners
/
{id}
/
publish-template
curl --silent --show-error --fail-with-body --request POST \
--url 'https://api.edi.stateset.com/v1/partners/{id}/publish-template' \
--header "Authorization: Bearer $EDI_API_TOKEN"
{
"certification_pack": "string",
"certified": true,
"created_at": "2026-08-31T14:22:05Z",
"delimiters": {
"component": ">",
"element": "*",
"repetition": "string",
"segment": "~"
},
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"label": {
"darkness": 1,
"height_dots": 1,
"partner_mark": "string",
"width_dots": 1
},
"name": "Two-Person Tent",
"overlay": {
"element_overrides": [
{
"element": 1,
"segment": "string",
"transaction_set": "string",
"value": "49.00"
}
],
"extra_segments": [
{
"elements": [
"string"
],
"tag": "priority",
"transaction_set": "string"
}
]
},
"packing_slip": {
"footer_note": "string",
"logo_text": "https://cdn.example.com/products/tent-2p.jpg",
"seller_name": "string",
"show_sscc": true
},
"partner_isa_qualifier": "string",
"publisher_tenant": "string",
"reuse_count": 1,
"updated_at": "2026-08-31T14:22:05Z",
"validation": {
"accepted_inbound": [
"string"
],
"accepted_versions": [
"string"
],
"conditional_rules": [
{
"equals": [
"string"
],
"require_element": {
"element": 1,
"segment": "string"
},
"require_segment": "string",
"when_element": 1,
"when_segment": "string"
}
],
"count_checks": {},
"element_constraints": [
{
"allowed": [
"string"
],
"component": 1,
"element": 1,
"format": "numeric",
"max_len": 1,
"min_len": 1,
"qualifier_element": 1,
"qualifier_value": "49.00",
"required": true,
"segment": "string",
"sets": [
"string"
]
}
],
"enforce_x12_envelope_identity": true,
"enforce_x12_group_identity": true,
"outbound_rules": [
{
"kind": "required_segment",
"qualifier": "string",
"segment": "string",
"set": "string",
"source": "string"
}
],
"required_qualified": {},
"required_references": {},
"required_segments": {},
"segment_cardinality": {},
"warning_codes": [
"string"
]
},
"version": "2026-08-01"
}
Path parameters
string
required
Partner ID
Request body
No request body.Response
PartnerTemplate
string,null
The certification pack the source partner passed, when known.
boolean
required
Whether this template was published from a partner that passed certification (vs. an ad-hoc publish).
string (date-time)
required
Delimiters
The four delimiters that frame an X12 interchange. The element separator and segment terminator are dictated by the ISA segment itself; the component separator is ISA16. The repetition separator (ISA11) only exists in 00501+ interchanges.
string
required
Stable id, derived from the partner name + version so re-certifying the same retailer updates rather than duplicates.
LabelProfile,null
Per-partner label placement profile — the label facet of a partner companion guide. Controls the physical label (print width, length, darkness) and an optional partner-required mark. Defaults to a 4×6’ thermal label at 203 dpi.
Show LabelProfile
Show LabelProfile
integer,null (int32)
Print darkness (ZPL
^MD, 0–30); None leaves the printer default. Minimum: 0.integer (int32)
Label length in dots (ZPL
^LL). 1218 = 6’ at 203 dpi. Minimum: 0.string,null
A partner-required mark printed at the label’s top edge (e.g. a routing or department code the retailer mandates).
integer (int32)
Print width in dots (ZPL
^PW). 812 = 4’ at 203 dpi. Minimum: 0.string
required
PartnerOverlay,null
A per-partner outbound overlay: the configurable slice of a companion guide. Applied to a built X12 transaction set before enveloping, so the same codec serves every partner and their idiosyncrasies live on the partner record.
Show PartnerOverlay
Show PartnerOverlay
ElementOverride[]
PackingSlipProfile,null
Per-partner packing-slip presentation. Defaults are sensible for a generic slip; a partner overlay overrides the fields its companion guide mandates.
Show PackingSlipProfile
Show PackingSlipProfile
string,null
Optional footer note (return policy, compliance marks, partner-required statements).
string,null
Optional logo / brand line printed above the seller name.
string
required
Seller / shipper name printed in the header (the ‘from’ identity).
boolean
When true, render each carton’s SSCC alongside its contents — required by retailers that scan the slip against the carton label.
string
required
The retailer’s ISA interchange ID qualifier (theirs, not the tenant’s).
string,null
The tenant that published this template;
None for platform-published (and legacy) templates. Only the publisher — or the platform operator — may overwrite it, so one tenant can’t rewrite another’s shared guide.integer (int32)
required
How many times another tenant has inherited this template — the flywheel metric. A high reuse count means the Nth tenant onboards instantly. Minimum:
0.string (date-time)
required
PartnerValidation
required
The implementation-guide validation rules (the ‘guide’).
Show PartnerValidation
Show PartnerValidation
string[]
If non-empty, inbound transaction sets not in this list are rejected (e.g.
['850', '860'] for a partner that only sends orders).string[]
If non-empty, an inbound functional group whose GS08 version is not in this list is rejected (SNIP level 2). Empty accepts any supported version — e.g.
['005010'] pins a partner certified only on 5010.ConditionalRule[]
If-then rules, e.g. ‘when BEG02 is SA, a DTM segment is required’.
Show ConditionalRule
Show ConditionalRule
string[]
Trigger values. Empty means ‘when the element is present (non-empty)’.
ElementRef,null
A (segment tag, 1-based element position) pair.
string,null
Then this segment must be present somewhere in the transaction.
integer
required
Minimum:
0.string
required
Trigger: segment tag + 1-based element position.
object
Count-balancing rules per inbound transaction set —
CTT01 must equal the number of PO1 segments and friends. Checked only when the counter segment is present (pair with required_segments to mandate it). Additional keys map to values of type CountRule[].ElementConstraint[]
Element-level constraints applied to matching segments anywhere in an inbound document — e.g. pin PO1-03 (unit of measure) to an allowed set.
Show ElementConstraint
Show ElementConstraint
string[]
If non-empty, the element must be one of these values.
integer,null
1-based component within an EDIFACT composite element, e.g.
2 for the reference value in RFF+ON:<value> (element 1). Unset checks the element itself: an X12 element, or an EDIFACT element’s first component. X12 elements have only component 1. Minimum: 0.integer
required
1-based element position, e.g.
3 for the PO1 unit of measure. Minimum: 0.ElementFormat,null
X12 data-type formats an element can be pinned to. Deliberately the high-value subset: numeric identifiers, decimal amounts, and the CCYYMMDD / HHMM(SS) date-time shapes that reject the malformed values retailers charge back over. Anything not listed validates as free text. Allowed values:
'numeric', 'decimal', 'date', 'time'.integer,null
Maximum length (in characters) when the element is present. Minimum:
0.integer,null
Minimum length (in characters) when the element is present. Minimum:
0.integer,null
With
qualifier_value: apply only to occurrences whose element at this position equals the qualifier (e.g. REF where REF01 = DP). Minimum: 0.string,null
boolean
If true, the element must be present (non-empty).
string
required
Segment tag, e.g.
PO1.string[]
Transaction sets the rule applies to (e.g.
['850']); empty = every set containing the segment. Shared segments (REF, N1, DTM) mean different things in different sets.boolean
Require inbound X12 ISA sender/receiver qualifiers and IDs, plus ISA15, to match this partner even when the caller supplies an explicit partner ID.
boolean
Require every inbound X12 GS02/GS03 to match the configured application sender/receiver IDs (falling back to ISA IDs when GS IDs are unset).
OutboundRule[]
Sourced checks for generated 855/856/810 wire, evaluated after overlays. Stored with guide snapshots and included in readiness fingerprints.
object
Qualified-segment requirements per inbound transaction set — the guide staple
required_references can’t reach beyond REF: ‘a DTM*002 (delivery date) must be present’, ‘an N1 loop with N101=ST’. The '*' key applies to every set. Additional keys map to values of type QualifiedSegmentRule[].object
REF qualifiers that must be present per inbound transaction set, e.g.
{'850': ['DP']} to require a department-number reference on every PO. Additional keys map to values of type string[].object
Segment tags that must be present per inbound transaction set, e.g.
{'850': ['DTM', 'REF']} to require a date and reference on every PO. The '*' key applies to every inbound set. Additional keys map to values of type string[].object
Occurrence bounds per inbound transaction set, e.g.
{'850': [{'segment': 'BEG', 'min': 1, 'max': 1}]} for ‘exactly one BEG’ or a guide’s ‘max 200 PO1 lines’. The '*' key applies to every set; a set-specific rule for the same segment takes precedence. Additional keys map to values of type CardinalityRule[].string[]
Validation issue codes (e.g.
too_long, value_not_allowed) that are advisory for this partner: matching issues are reported on the accepted document and acknowledged E (accepted with errors) in the 997/999 instead of rejecting the transaction. For EDIFACT, a parsed, mapped message is accepted with findings in the report and ledger; CONTRL reports acceptance without inventing a syntax-error code. Unlisted guide codes and parser failures still reject.string
required
Status codes
| Code | Meaning |
|---|---|
200 | Published template |
404 | Unknown partner |
Using this contract
Read the source OpenAPI document for declared schemas and alternatives. This page also includes documented corrections from the spec overlays. Example IDs and values are illustrative; replace them with records from your workspace.curl --silent --show-error --fail-with-body --request POST \
--url 'https://api.edi.stateset.com/v1/partners/{id}/publish-template' \
--header "Authorization: Bearer $EDI_API_TOKEN"
{
"certification_pack": "string",
"certified": true,
"created_at": "2026-08-31T14:22:05Z",
"delimiters": {
"component": ">",
"element": "*",
"repetition": "string",
"segment": "~"
},
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"label": {
"darkness": 1,
"height_dots": 1,
"partner_mark": "string",
"width_dots": 1
},
"name": "Two-Person Tent",
"overlay": {
"element_overrides": [
{
"element": 1,
"segment": "string",
"transaction_set": "string",
"value": "49.00"
}
],
"extra_segments": [
{
"elements": [
"string"
],
"tag": "priority",
"transaction_set": "string"
}
]
},
"packing_slip": {
"footer_note": "string",
"logo_text": "https://cdn.example.com/products/tent-2p.jpg",
"seller_name": "string",
"show_sscc": true
},
"partner_isa_qualifier": "string",
"publisher_tenant": "string",
"reuse_count": 1,
"updated_at": "2026-08-31T14:22:05Z",
"validation": {
"accepted_inbound": [
"string"
],
"accepted_versions": [
"string"
],
"conditional_rules": [
{
"equals": [
"string"
],
"require_element": {
"element": 1,
"segment": "string"
},
"require_segment": "string",
"when_element": 1,
"when_segment": "string"
}
],
"count_checks": {},
"element_constraints": [
{
"allowed": [
"string"
],
"component": 1,
"element": 1,
"format": "numeric",
"max_len": 1,
"min_len": 1,
"qualifier_element": 1,
"qualifier_value": "49.00",
"required": true,
"segment": "string",
"sets": [
"string"
]
}
],
"enforce_x12_envelope_identity": true,
"enforce_x12_group_identity": true,
"outbound_rules": [
{
"kind": "required_segment",
"qualifier": "string",
"segment": "string",
"set": "string",
"source": "string"
}
],
"required_qualified": {},
"required_references": {},
"required_segments": {},
"segment_cardinality": {},
"warning_codes": [
"string"
]
},
"version": "2026-08-01"
}
Last modified on October 20, 2026