Amazon (Vendor Central & SP-API) + NeutronEDI
Add EDI translation and validation to your Amazon (Vendor Central & SP-API) workflows with a simple REST API.
Amazon Vendor Central pushes EDI documents over a VAN or SP-API channel. Most teams run a small bridge service — Python or Node — that picks up Amazon's 850s, calls the NeutronEDI Read API, and writes the resulting JSON into the rest of their stack (ERP, WMS, or order management). Outbound 856 ASNs and 810 invoices follow the same shape in reverse.
How Amazon (Vendor Central & SP-API) + NeutronEDI works
Inbound: trading-partner EDI flows into Amazon (Vendor Central & SP-API). Outbound: Amazon (Vendor Central & SP-API) data flows back out as compliant EDI.
Inbound — partner → Amazon (Vendor Central & SP-API)
Trading partner sends EDI
The trading partner sends an X12 or EDIFACT document via SFTP, AS2, or a direct API call into your environment.
NeutronEDI translates
Your service POSTs the raw EDI to /api/v1/read/x12 (or /read/edifact). NeutronEDI returns clean JSON in milliseconds.
JSON flows into Amazon (Vendor Central & SP-API)
The JSON lands in Amazon (Vendor Central & SP-API) — mapped to native objects, imported via middleware, or consumed directly by your code (Amazon Vendor Central (EDI VAN / SP-API DI documents)).
Outbound — Amazon (Vendor Central & SP-API) → partner
Amazon (Vendor Central & SP-API) produces data
A shipment confirmation, invoice, or PO acknowledgment occurs inside Amazon (Vendor Central & SP-API). Your service picks it up via webhook, polling, or scheduled query.
NeutronEDI generates EDI
POST a JSON payload describing the document to /api/v1/write/x12 (or /write/edifact). NeutronEDI returns standards-compliant EDI.
Send to partner
Drop the resulting EDI document onto the partner's SFTP, AS2, or VAN — the same channel that delivered the inbound document.
Common EDI transactions for Amazon (Vendor Central & SP-API)
These are the transaction sets you'll see most often in Amazon (Vendor Central & SP-API) integrations. The Read API parses every set NeutronEDI supports — this is just where teams typically start.
| Code | Name | Description |
|---|---|---|
| 850 | Purchase Order | Retailer sends purchase order to supplier |
| 856 | Advance Ship Notice | Supplier notifies retailer of shipment details |
| 810 | Invoice | Supplier sends invoice for delivered goods |
| 997 | Functional Acknowledgment | Technical receipt confirmation for any EDI document |
How Amazon (Vendor Central & SP-API) teams use NeutronEDI
Process Amazon Vendor Central purchase orders automatically
Poll SP-API or your VAN for new 850s, call /api/v1/read/x12, and route the JSON into your ERP's Sales Order endpoint. Acknowledge the PO with a 997 written through /api/v1/write/x12.
Generate Amazon-compliant ASN (856) documents
Build the ASN payload from your warehouse's pick / pack data, POST to /api/v1/write/x12 with type 856, and submit the resulting X12 to Amazon via SP-API submitFeed (or your VAN). Amazon enforces SSCC labels and HL hierarchy strictly — the Write API gets the structure right.
Pre-flight outbound EDI against the X12 spec to catch structural errors before submission
Run every outbound document through /api/v1/validate/x12 before submitting it to Amazon. The endpoint checks against the standard X12 spec — envelope, segment ordering, required fields — so malformed documents never reach Amazon's parser. Amazon-specific implementation-guide rules (UPC qualifiers, DUNS conventions, HL hierarchy expectations) sit outside the Validate API today and are handled by the Neutron Development services team.
Bridge Amazon SP-API with EDI-based vendor workflows
Vendors with both Amazon and traditional retail customers can keep one EDI pipeline. NeutronEDI emits the same JSON shape regardless of where the 850 came from, so downstream automation stays consistent.
Example integration
A Python bridge service polls SP-API for new Vendor Central PO documents, downloads the raw X12, and calls the NeutronEDI Read API to translate them.
import os
import time
import requests
NEUTRON_API_KEY = os.environ["NEUTRON_API_KEY"]
SP_API_BASE = "https://sellingpartnerapi-na.amazon.com"
def list_new_po_documents(access_token: str) -> list[dict]:
res = requests.get(
f"{SP_API_BASE}/vendor/orders/v1/purchaseOrders",
headers={"x-amz-access-token": access_token},
params={"limit": 50, "isBackOrderRequired": "false"},
timeout=15,
)
res.raise_for_status()
return res.json()["payload"]["orders"]
def fetch_edi(access_token: str, document_id: str) -> str:
res = requests.get(
f"{SP_API_BASE}/documents/2020-09-04/documents/{document_id}",
headers={"x-amz-access-token": access_token},
timeout=15,
)
res.raise_for_status()
download_url = res.json()["payload"]["url"]
return requests.get(download_url, timeout=15).text
def translate(raw_edi: str) -> dict:
res = requests.post(
"https://api.neutronedi.com/api/v1/read/x12",
headers={
"X-API-Key": NEUTRON_API_KEY,
"Content-Type": "application/edi-x12",
},
data=raw_edi,
timeout=15,
)
res.raise_for_status()
return res.json()
def push_to_erp(po: dict) -> None:
# Send the parsed Amazon PO into your ERP — Sales Order create endpoint,
# Kafka topic, internal queue, etc. Implementation depends on your stack.
...
def run(access_token: str) -> None:
for order in list_new_po_documents(access_token):
raw_x12 = fetch_edi(access_token, order["ediDocumentId"])
parsed = translate(raw_x12)
for txn in parsed["transactions"]:
if txn["type"] == "850":
push_to_erp(txn)
time.sleep(0.5) # polite pacing inside SP-API rate limitsWhat the API returns
{
"interchange": { "sender": "AMAZON", "receiver": "VENDOR-ABC", "control": "000001821" },
"transactions": [
{
"type": "850",
"name": "Purchase Order",
"poNumber": "1RX29YZ7",
"date": "2026-04-30",
"buyerDuns": "0080038559",
"shipTo": { "name": "Amazon FC PHX5", "city": "Phoenix", "state": "AZ", "zip": "85043" },
"items": [
{ "sku": "ASIN-B07ABC1234", "qty": 480, "unitPrice": "8.20" },
{ "sku": "ASIN-B07ABC5678", "qty": 240, "unitPrice": "12.40" }
],
"total": "6912.00"
}
]
}All code examples assume an API key issued from the Customer Portal. The free Developer tier includes 500 calls per month.
Getting started with Amazon (Vendor Central & SP-API) EDI
- 1
Sign up for a free NeutronEDI Developer account
Create an account in the NeutronEDI Customer Portal. The Developer tier includes 500 API calls per month at no cost.
Open the portal - 2
Create an API key in the Customer Portal
Generate an API key from the dashboard. The plaintext key is shown once at creation; copy it into your secret store.
Read the docs - 3
Send your first EDI document to the Read endpoint
POST a sample X12 or EDIFACT document to https://api.neutronedi.com/api/v1/read/x12 with the X-API-Key header. Confirm the JSON response shape matches what Amazon (Vendor Central & SP-API) expects on the receiving side.
Read the docs - 4
Map the JSON response to your Amazon (Vendor Central & SP-API) data model
Use the language and runtime that already integrates with Amazon (Vendor Central & SP-API) (Amazon Vendor Central (EDI VAN / SP-API DI documents)). Map fields from the NeutronEDI JSON to Amazon (Vendor Central & SP-API) entities and persist them through the platform's standard create / update API.
Keep exploring
Start Your Amazon (Vendor Central & SP-API) EDI Integration
500 API calls per month on the Developer plan. No credit card. No sales call. Read, write, and validate X12 and EDIFACT in minutes.