curl --request POST \
--url 'https://edi.stateset.com/v1/templates/{template_id}/instantiate/{partner_id}' \
--header "Authorization: Bearer $STATESET_EDI_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"name": "Two-Person Tent",
"our_isa_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"our_isa_qualifier": "string",
"partner_isa_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"partner_isa_qualifier": "string",
"usage": "string"
}'
{
"ack_sla_hours": 1,
"ack_type": "string",
"api_key_hash": "YOUR_API_KEY",
"as1": {
"partner_email": "string"
},
"as2": {
"compress_outbound": true,
"encrypt_outbound": true,
"mdn_mode": "none",
"mic_algorithm": "sha256",
"our_as2_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"partner_as2_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"partner_cert_pem": "string",
"partner_url": "string",
"request_signed_mdn": true,
"require_encrypted_inbound": true,
"require_signed_inbound": true,
"sign_outbound": true
},
"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",
"our_gs_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"our_isa_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"our_isa_qualifier": "string",
"overlay": {
"element_overrides": [
{
"element": null,
"segment": null,
"transaction_set": null,
"value": null
}
],
"extra_segments": [
{
"elements": null,
"tag": null,
"transaction_set": null
}
]
},
"packing_slip": {
"footer_note": "string",
"logo_text": "https://cdn.example.com/products/tent-2p.jpg",
"seller_name": "string",
"show_sscc": true
},
"partner_gs_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"partner_isa_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"partner_isa_qualifier": "string",
"tenant_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"usage": "string",
"validation": {
"accepted_inbound": [
"string"
],
"conditional_rules": [
{
"equals": null,
"require_element": null,
"require_segment": null,
"when_element": null,
"when_segment": null
}
],
"count_checks": {},
"element_constraints": [
{
"allowed": null,
"element": null,
"format": null,
"max_len": null,
"min_len": null,
"required": null,
"segment": null
}
],
"required_qualified": {},
"required_references": {},
"required_segments": {},
"segment_cardinality": {}
},
"van": {
"mailbox": "string",
"provider": "string"
},
"version": "2026-08-01"
}
Inherits a shared template into the caller's tenant: creates a trading
partner from the template’s guide+map plus the relationship identifiers in the body, and increments the template’s reuse count (the flywheel turning).
POST
/
v1
/
templates
/
{template_id}
/
instantiate
/
{partner_id}
curl --request POST \
--url 'https://edi.stateset.com/v1/templates/{template_id}/instantiate/{partner_id}' \
--header "Authorization: Bearer $STATESET_EDI_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"name": "Two-Person Tent",
"our_isa_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"our_isa_qualifier": "string",
"partner_isa_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"partner_isa_qualifier": "string",
"usage": "string"
}'
{
"ack_sla_hours": 1,
"ack_type": "string",
"api_key_hash": "YOUR_API_KEY",
"as1": {
"partner_email": "string"
},
"as2": {
"compress_outbound": true,
"encrypt_outbound": true,
"mdn_mode": "none",
"mic_algorithm": "sha256",
"our_as2_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"partner_as2_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"partner_cert_pem": "string",
"partner_url": "string",
"request_signed_mdn": true,
"require_encrypted_inbound": true,
"require_signed_inbound": true,
"sign_outbound": true
},
"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",
"our_gs_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"our_isa_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"our_isa_qualifier": "string",
"overlay": {
"element_overrides": [
{
"element": null,
"segment": null,
"transaction_set": null,
"value": null
}
],
"extra_segments": [
{
"elements": null,
"tag": null,
"transaction_set": null
}
]
},
"packing_slip": {
"footer_note": "string",
"logo_text": "https://cdn.example.com/products/tent-2p.jpg",
"seller_name": "string",
"show_sscc": true
},
"partner_gs_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"partner_isa_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"partner_isa_qualifier": "string",
"tenant_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"usage": "string",
"validation": {
"accepted_inbound": [
"string"
],
"conditional_rules": [
{
"equals": null,
"require_element": null,
"require_segment": null,
"when_element": null,
"when_segment": null
}
],
"count_checks": {},
"element_constraints": [
{
"allowed": null,
"element": null,
"format": null,
"max_len": null,
"min_len": null,
"required": null,
"segment": null
}
],
"required_qualified": {},
"required_references": {},
"required_segments": {},
"segment_cardinality": {}
},
"van": {
"mailbox": "string",
"provider": "string"
},
"version": "2026-08-01"
}
partner from the template’s guide+map plus the relationship identifiers in
the body, and increments the template’s reuse count (the flywheel turning).
Path parameters
string
required
Template to inherit
string
required
Internal partner ID to create
Request body
ConnectorPartnerParams
string
Override the display name.
string
required
Our ISA interchange ID (our DUNS or the ID the retailer assigned us).
string
required
Our ISA qualifier for this relationship (often
01 DUNS or ZZ).string
required
The retailer’s ISA interchange ID (their assigned identifier).
string
Override the connector’s default partner ISA qualifier.
string
P production (default) or T test.Response
TradingPartner
integer (int32)
Per-partner acknowledgment SLA in hours. Strict retailers chargeback on late 997s, so this overrides the global
EDI_ACK_SLA_HOURS for monitoring and alerting. None falls back to the global SLA.string
Which functional acknowledgment this partner receives:
997 (default) or 999 (Implementation Acknowledgment with IK3/IK4 error detail).string
SHA-256 hex of this partner’s API key, set via
POST /v1/partners/:id/api-key. The plaintext key is never stored.object
Show as2
Show as2
boolean
Compress outbound payloads (CMS CompressedData, RFC 5402). Applied innermost: compress → sign → encrypt.
boolean
Encrypt outbound payloads (S/MIME). Requires a [
Security] signer.MdnMode
MicAlgorithm
string
required
Our AS2 identifier (the value partners address messages to).
string
required
The partner’s AS2 identifier.
string
The partner’s X.509 certificate (PEM) — used to verify their inbound signatures and (later) to encrypt outbound payloads for them.
string
required
The partner’s AS2 endpoint URL we POST outbound documents to.
boolean
Request a signed MDN (transport-level non-repudiation of receipt). Requires a configured [
Security] signer to verify; until then we accept unsigned MDNs.boolean
Require inbound messages from this partner to be encrypted. When set, a cleartext inbound message is rejected with a failure MDN. Defaults to
false.boolean
Require inbound messages from this partner to be signed. When set, an unsigned inbound message is rejected with a failure MDN instead of processed. Defaults to
false (accept unsigned) to preserve existing behavior; enable it — together with partner_cert_pem — to mandate message authentication for a partner. Verification of the signature itself still depends on a configured certificate.boolean
Sign outbound payloads (S/MIME). Requires a [
Security] signer.string
required
Stable internal identifier, used in URLs and event payloads.
object
Show label
Show label
integer (int32)
Print darkness (ZPL
^MD, 0–30); None leaves the printer default.integer (int32)
Label length in dots (ZPL
^LL). 1218 = 6’ at 203 dpi.string
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.string
required
string
string
required
string
required
Our ISA qualifier/ID for this relationship.
object
Show overlay
Show overlay
ElementOverride[]
object
Show packing_slip
Show packing_slip
string
Optional footer note (return policy, compliance marks, partner-required statements).
string
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
GS application codes; default to the ISA IDs when omitted.
string
required
string
required
The partner’s ISA qualifier/ID (they are the receiver on our outbound).
string
Owning tenant. Every partner belongs to exactly one tenant; an API key issued for the partner therefore implies its tenant. Defaults to
default so single-tenant deployments and pre-tenancy records work unchanged.string
ISA15 usage indicator:
P production, T test.PartnerValidation
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).ConditionalRule[]
If-then rules, e.g. ‘when BEG02 is SA, a DTM segment is required’.
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).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
required
1-based element position, e.g.
3 for the PO1 unit of measure.object
integer
Maximum length (in characters) when the element is present.
integer
Minimum length (in characters) when the element is present.
boolean
If true, the element must be present (non-empty).
string
required
Segment tag, e.g.
PO1.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.object
REF qualifiers that must be present per inbound transaction set, e.g.
{'850': ['DP']} to require a department-number reference on every PO.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.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.object
string
GS08 version, e.g.
004010.Status codes
| Code | Meaning |
|---|---|
200 | Created partner (key hash redacted) |
404 | Unknown template |
curl --request POST \
--url 'https://edi.stateset.com/v1/templates/{template_id}/instantiate/{partner_id}' \
--header "Authorization: Bearer $STATESET_EDI_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"name": "Two-Person Tent",
"our_isa_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"our_isa_qualifier": "string",
"partner_isa_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"partner_isa_qualifier": "string",
"usage": "string"
}'
{
"ack_sla_hours": 1,
"ack_type": "string",
"api_key_hash": "YOUR_API_KEY",
"as1": {
"partner_email": "string"
},
"as2": {
"compress_outbound": true,
"encrypt_outbound": true,
"mdn_mode": "none",
"mic_algorithm": "sha256",
"our_as2_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"partner_as2_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"partner_cert_pem": "string",
"partner_url": "string",
"request_signed_mdn": true,
"require_encrypted_inbound": true,
"require_signed_inbound": true,
"sign_outbound": true
},
"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",
"our_gs_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"our_isa_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"our_isa_qualifier": "string",
"overlay": {
"element_overrides": [
{
"element": null,
"segment": null,
"transaction_set": null,
"value": null
}
],
"extra_segments": [
{
"elements": null,
"tag": null,
"transaction_set": null
}
]
},
"packing_slip": {
"footer_note": "string",
"logo_text": "https://cdn.example.com/products/tent-2p.jpg",
"seller_name": "string",
"show_sscc": true
},
"partner_gs_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"partner_isa_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"partner_isa_qualifier": "string",
"tenant_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"usage": "string",
"validation": {
"accepted_inbound": [
"string"
],
"conditional_rules": [
{
"equals": null,
"require_element": null,
"require_segment": null,
"when_element": null,
"when_segment": null
}
],
"count_checks": {},
"element_constraints": [
{
"allowed": null,
"element": null,
"format": null,
"max_len": null,
"min_len": null,
"required": null,
"segment": null
}
],
"required_qualified": {},
"required_references": {},
"required_segments": {},
"segment_cardinality": {}
},
"van": {
"mailbox": "string",
"provider": "string"
},
"version": "2026-08-01"
}
Last modified on August 31, 2026