Controlled API reference
Partner API Reference
Endpoint reference for approved partner products, external orders, license lookup/revocation, campaigns, webhook subscriptions, tests, and webhook event logs.
Resellers and partner integrations are supported
SoundSync supports resellers through approved developer-partner relationships, assigned products, serial batches, external-order fulfillment, and partner API integrations. Native WooCommerce fulfillment is another supported integration path.
Sales paid through SoundSync checkout use SoundSync's Merchant of Record setup and included ordinary processing. Sales collected by an external reseller remain that seller's payments: SoundSync does not absorb their processing fees or become Merchant of Record for those sales. Product access, credentials, and API permissions follow the approved relationship.
SoundSync
Partner API controls
Partner API access is relationship-scoped and permissioned by exact scopes.
| Control | Behavior |
|---|---|
| Base path | /api/partner/v1 |
| Authorization | Authorization: Bearer <partner API secret>. Partner secrets use the configured partner-key prefix. |
| Idempotency | POST /api/partner/v1/orders requires Idempotency-Key for retry-safe external-order creation. |
| Product limits | Allowed product ids restrict product, order, license, and campaign access where configured. |
| Rate limits | Read, fulfillment, and webhook calls use partner API rate-limit buckets. |
SoundSync
Partner products, external orders, licenses, campaigns, and webhooks
These are the controlled partner integration calls exposed by the Partner API router.
/api/partner/v1/products
List products available to the partner API key.
- Auth
- Relationship-scoped partner API key
- Scope
- products:read
- Returns
- Product list limited by relationship, scopes, and allowed product ids.
Request, response and error reference
HTTP 200 response (application/json)
{
"type": "object",
"properties": {
"products": {
"type": "array",
"items": {
"type": "object",
"properties": {
"sku": {
"type": [
"string",
"null"
]
},
"soundsync_sku": {
"type": [
"string",
"null"
]
},
"product_id": {
"type": "integer",
"minimum": 1
},
"title": {
"type": "string"
},
"developer_id": {
"type": "integer",
"minimum": 1
},
"short_description": {
"type": "string"
},
"description": {
"type": "string"
},
"currency": {
"type": "string"
},
"authorized": {
"type": "boolean"
},
"license_fulfillment": {
"type": "string"
},
"msrp_cents": {
"type": [
"integer",
"null"
],
"minimum": 0
},
"suggested_sale_price_cents": {
"type": [
"integer",
"null"
],
"minimum": 0
}
},
"additionalProperties": true
}
}
},
"additionalProperties": true
}
/api/partner/v1/products/:sku
Load one partner-visible product by SKU.
- Auth
- Relationship-scoped partner API key
- Scope
- products:read
- Returns
- Product detail limited to the partner relationship.
Request, response and error reference
HTTP 200 response (application/json)
{
"type": "object",
"properties": {
"product": {
"type": "object",
"properties": {
"sku": {
"type": [
"string",
"null"
]
},
"soundsync_sku": {
"type": [
"string",
"null"
]
},
"product_id": {
"type": "integer",
"minimum": 1
},
"title": {
"type": "string"
},
"developer_id": {
"type": "integer",
"minimum": 1
},
"short_description": {
"type": "string"
},
"description": {
"type": "string"
},
"currency": {
"type": "string"
},
"authorized": {
"type": "boolean"
},
"license_fulfillment": {
"type": "string"
},
"msrp_cents": {
"type": [
"integer",
"null"
],
"minimum": 0
},
"suggested_sale_price_cents": {
"type": [
"integer",
"null"
],
"minimum": 0
}
},
"additionalProperties": true
}
},
"additionalProperties": true
}
/api/partner/v1/products/:sku/assets
Load partner-visible product asset metadata.
- Auth
- Relationship-scoped partner API key
- Scope
- products:read
- Returns
- Assets/download metadata authorized for the partner relationship.
Request, response and error reference
HTTP 200 response (application/json)
{
"type": "object",
"properties": {
"product": {
"type": "object",
"properties": {
"sku": {
"type": [
"string",
"null"
]
},
"soundsync_sku": {
"type": [
"string",
"null"
]
},
"product_id": {
"type": "integer",
"minimum": 1
},
"title": {
"type": "string"
},
"developer_id": {
"type": "integer",
"minimum": 1
},
"short_description": {
"type": "string"
},
"description": {
"type": "string"
},
"currency": {
"type": "string"
},
"authorized": {
"type": "boolean"
},
"license_fulfillment": {
"type": "string"
},
"msrp_cents": {
"type": [
"integer",
"null"
],
"minimum": 0
},
"suggested_sale_price_cents": {
"type": [
"integer",
"null"
],
"minimum": 0
}
},
"additionalProperties": true
},
"assets": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"minimum": 1
},
"type": {
"type": "string"
},
"url": {
"type": "string"
},
"mime_type": {
"type": "string"
}
},
"additionalProperties": true
}
}
},
"additionalProperties": true
}
/api/partner/v1/orders
Report an externally processed partner order to SoundSync.
- Auth
- Relationship-scoped partner API key
- Scope
- orders:write
- Request fields
- header Idempotency-Key: string (required)
- external_order_id: string
- externalOrderId: string
- customer_email: string
- customerEmail: string
- purchased_at: string
- purchasedAt: string
- items: array (required)
- Returns
- SoundSync order id, item fulfillment, serial/license issuance, claim/access links, and idempotent replay markers where applicable.
- Side effects
- Creates external order, customer/entitlement/license state, fulfillment logs, and partner API activity.
Request, response and error reference
Query and header parameters
[
{
"name": "Idempotency-Key",
"in": "header",
"required": true,
"schema": {
"type": "string"
},
"description": ""
}
]
Request (application/json)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://www.soundsync.dev/contracts/partner-api.schema.json",
"title": "Partner external order",
"type": "object",
"properties": {
"external_order_id": {
"type": "string"
},
"externalOrderId": {
"type": "string"
},
"customer_email": {
"type": "string",
"format": "email"
},
"customerEmail": {
"type": "string",
"format": "email"
},
"purchased_at": {
"type": "string",
"format": "date-time"
},
"purchasedAt": {
"type": "string",
"format": "date-time"
},
"items": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"properties": {
"product_id": {
"type": "integer",
"minimum": 1
},
"productId": {
"type": "integer",
"minimum": 1
},
"reseller_sku": {
"type": "string",
"minLength": 1
},
"resellerSku": {
"type": "string",
"minLength": 1
},
"sku": {
"type": "string",
"minLength": 1
},
"quantity": {
"type": "integer",
"minimum": 1,
"default": 1
},
"unit_reported_price_cents": {
"type": "integer",
"minimum": 0
}
},
"anyOf": [
{
"required": [
"product_id"
]
},
{
"required": [
"productId"
]
},
{
"required": [
"reseller_sku"
]
},
{
"required": [
"resellerSku"
]
},
{
"required": [
"sku"
]
}
]
}
}
},
"allOf": [
{
"anyOf": [
{
"required": [
"external_order_id"
]
},
{
"required": [
"externalOrderId"
]
}
]
},
{
"anyOf": [
{
"required": [
"customer_email"
]
},
{
"required": [
"customerEmail"
]
}
]
},
{
"anyOf": [
{
"required": [
"purchased_at"
]
},
{
"required": [
"purchasedAt"
]
}
]
}
],
"required": [
"items"
],
"additionalProperties": true
}
HTTP 201 response (application/json)
{
"type": "object",
"properties": {
"success": {
"type": "boolean"
},
"soundsync_order_id": {
"type": "string"
},
"external_order_id": {
"type": "string"
},
"relationship_id": {
"type": "string"
},
"source": {
"type": "string"
},
"financial_classification": {
"type": "string"
},
"soundsync_checkout_fee_cents": {
"type": "integer",
"minimum": 0
},
"reported_total_paid_cents": {
"type": "integer",
"minimum": 0
},
"currency": {
"type": "string"
},
"verification_status": {
"type": "string"
},
"fulfillment_event_created": {
"type": "boolean"
},
"idempotent_replay": {
"type": "boolean"
},
"duplicate_external_order": {
"type": "boolean"
},
"customer": {
"type": "object",
"properties": {
"id": {
"type": [
"integer",
"null"
]
},
"email": {
"type": "string",
"format": "email"
},
"name": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": true
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"minimum": 1
},
"product_id": {
"type": "integer",
"minimum": 1
},
"product_name": {
"type": "string"
},
"fulfillment_status": {
"type": "string"
},
"expected_payable_cents": {
"type": "integer",
"minimum": 0
}
},
"additionalProperties": true
}
}
},
"additionalProperties": true
}
Documented failures: 400, 403, 404, 409.
/api/partner/v1/orders/:externalOrderId
Look up a partner-reported external order.
- Auth
- Relationship-scoped partner API key
- Scope
- orders:read
- Returns
- Order, items, license/serial/access state, and fulfillment status.
Request, response and error reference
HTTP 200 response (application/json)
{
"type": "object",
"properties": {
"success": {
"type": "boolean"
},
"soundsync_order_id": {
"type": "string"
},
"external_order_id": {
"type": "string"
},
"relationship_id": {
"type": "string"
},
"source": {
"type": "string"
},
"financial_classification": {
"type": "string"
},
"soundsync_checkout_fee_cents": {
"type": "integer",
"minimum": 0
},
"reported_total_paid_cents": {
"type": "integer",
"minimum": 0
},
"currency": {
"type": "string"
},
"verification_status": {
"type": "string"
},
"fulfillment_event_created": {
"type": "boolean"
},
"idempotent_replay": {
"type": "boolean"
},
"duplicate_external_order": {
"type": "boolean"
},
"customer": {
"type": "object",
"properties": {
"id": {
"type": [
"integer",
"null"
]
},
"email": {
"type": "string",
"format": "email"
},
"name": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": true
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"minimum": 1
},
"product_id": {
"type": "integer",
"minimum": 1
},
"product_name": {
"type": "string"
},
"fulfillment_status": {
"type": "string"
},
"expected_payable_cents": {
"type": "integer",
"minimum": 0
}
},
"additionalProperties": true
}
}
},
"additionalProperties": true
}
/api/partner/v1/orders/:externalOrderId/refund
Mark an externally paid order as refunded in SoundSync access state.
- Auth
- Relationship-scoped partner API key
- Scope
- licenses:revoke
- Request fields
- reason: string
- Returns
- Refund/revocation result and updated access state.
- Side effects
- Updates fulfillment, entitlement, serial/license, and partner activity state. Payment remains external.
Request, response and error reference
Request (application/json)
{
"type": "object",
"properties": {
"reason": {
"type": "string"
}
},
"additionalProperties": true
}
HTTP 200 response (application/json)
{
"type": "object",
"properties": {
"status": {
"type": "string"
},
"code": {
"type": "string"
},
"external_order_id": {
"type": "string"
},
"idempotent_replay": {
"type": "boolean"
}
},
"additionalProperties": true
}
Documented failures: 400, 403, 404, 409.
/api/partner/v1/orders/:externalOrderId/revoke
Revoke access for an external order.
- Auth
- Relationship-scoped partner API key
- Scope
- licenses:revoke
- Request fields
- reason: string
- Returns
- Revocation result.
Request, response and error reference
Request (application/json)
{
"type": "object",
"properties": {
"reason": {
"type": "string"
}
},
"additionalProperties": true
}
HTTP 200 response (application/json)
{
"type": "object",
"properties": {
"status": {
"type": "string"
},
"code": {
"type": "string"
},
"external_order_id": {
"type": "string"
},
"idempotent_replay": {
"type": "boolean"
}
},
"additionalProperties": true
}
Documented failures: 400, 403, 404, 409.
/api/partner/v1/licenses/:serial
Look up one partner-visible license/serial.
- Auth
- Relationship-scoped partner API key
- Scope
- licenses:read
- Returns
- License, serial, product, customer, and status data allowed by the relationship.
Request, response and error reference
HTTP 200 response (application/json)
{
"type": "object",
"properties": {
"license": {
"type": "object",
"properties": {
"serial": {
"type": "string"
},
"status": {
"type": "string"
},
"revoked": {
"type": "boolean"
},
"product_id": {
"type": "integer",
"minimum": 1
},
"external_order_id": {
"type": "string"
},
"customer": {
"type": "object",
"properties": {
"email": {
"type": "string",
"format": "email"
},
"name": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": true
}
},
"additionalProperties": true
}
},
"additionalProperties": true
}
/api/partner/v1/licenses/:serial/revoke
Revoke one license/serial.
- Auth
- Relationship-scoped partner API key
- Scope
- licenses:revoke
- Request fields
- reason: string
- Returns
- Revoked license/access state.
Request, response and error reference
Request (application/json)
{
"type": "object",
"properties": {
"reason": {
"type": "string"
}
},
"additionalProperties": true
}
HTTP 200 response (application/json)
{
"type": "object",
"properties": {
"status": {
"type": "string"
},
"serial": {
"type": "string"
},
"external_order_id": {
"type": "string"
}
},
"additionalProperties": true
}
Documented failures: 400, 403, 404, 409.
/api/partner/v1/campaigns
List partner-readable campaigns.
- Auth
- Relationship-scoped partner API key
- Scope
- campaigns:read
- Returns
- Campaign list for the relationship.
- Notes
- Relationship-scoped partner key and operation-specific campaigns/webhooks read or write scope are required. External seller payments remain outside SoundSync managed-checkout processing coverage.
Request, response and error reference
No request body fields are read by this operation.
HTTP 200 response (application/json)
{
"type": "object",
"properties": {
"campaigns": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"minimum": 1
},
"name": {
"type": "string"
},
"title": {
"type": "string"
},
"status": {
"type": "string"
},
"start_at": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"end_at": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"products": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"minimum": 1
},
"product_id": {
"type": "integer",
"minimum": 1
},
"product_name": {
"type": "string"
},
"reseller_sku": {
"type": "string"
},
"approved_sale_price_cents": {
"type": "integer",
"minimum": 0
},
"commercial_model": {
"type": "string"
},
"license_cap": {
"type": "integer"
},
"issued_count": {
"type": "integer"
}
},
"additionalProperties": true
}
}
},
"additionalProperties": true
}
}
},
"additionalProperties": true
}
Documented failures: 400, 500.
/api/partner/v1/campaigns/:campaignId
Load one partner campaign.
- Auth
- Relationship-scoped partner API key
- Scope
- campaigns:read
- Returns
- Campaign detail for the relationship.
- Notes
- Relationship-scoped partner key and operation-specific campaigns/webhooks read or write scope are required. External seller payments remain outside SoundSync managed-checkout processing coverage.
Request, response and error reference
No request body fields are read by this operation.
HTTP 200 response (application/json)
{
"type": "object",
"properties": {
"campaign": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"minimum": 1
},
"name": {
"type": "string"
},
"title": {
"type": "string"
},
"status": {
"type": "string"
},
"start_at": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"end_at": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"products": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"minimum": 1
},
"product_id": {
"type": "integer",
"minimum": 1
},
"product_name": {
"type": "string"
},
"reseller_sku": {
"type": "string"
},
"approved_sale_price_cents": {
"type": "integer",
"minimum": 0
},
"commercial_model": {
"type": "string"
},
"license_cap": {
"type": "integer"
},
"issued_count": {
"type": "integer"
}
},
"additionalProperties": true
}
}
},
"additionalProperties": true
}
},
"additionalProperties": true
}
Documented failures: 400, 500.
/api/partner/v1/webhooks
List or create partner webhook subscriptions.
- Auth
- Relationship-scoped partner API key
- Scope
- webhooks:read or webhooks:write
- Returns
- Webhook subscription list or created subscription.
- Notes
- Relationship-scoped partner key and operation-specific campaigns/webhooks read or write scope are required. External seller payments remain outside SoundSync managed-checkout processing coverage.
Request, response and error reference
No request body fields are read by this operation.
HTTP 200 response (application/json)
{
"type": "object",
"properties": {
"webhooks": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"minimum": 1
},
"url": {
"type": "string"
},
"events": {
"type": "array",
"items": {
"type": "string"
}
},
"status": {
"type": "string"
},
"created_at": {
"type": [
"string",
"null"
],
"format": "date-time"
}
},
"additionalProperties": true
}
}
},
"additionalProperties": true
}
Documented failures: 400, 500.
/api/partner/v1/webhooks
List or create partner webhook subscriptions.
- Auth
- Relationship-scoped partner API key
- Scope
- webhooks:read or webhooks:write
- Request fields
- url: string (required)
- events: array
- description: string
- Returns
- Webhook subscription list or created subscription.
- Notes
- Returns private signing material inside webhook.secret, not a top-level secret. Only url is required: omitted events defaults to order.fulfilled, order.refunded, license.revoked and webhook.test. An explicit event list must retain at least one supported event after normalization. Use public HTTPS without credentials or a nonstandard port. Fulfillment availability and webhook-write scope are required; do not publish a live secret.
Request, response and error reference
Request (application/json)
{
"type": "object",
"properties": {
"url": {
"type": "string",
"format": "uri"
},
"events": {
"type": "array",
"items": {
"type": "string",
"enum": [
"order.fulfilled",
"order.refunded",
"license.revoked",
"relationship.requested",
"relationship.updated",
"webhook.test"
]
}
},
"description": {
"type": "string"
}
},
"required": [
"url"
],
"additionalProperties": true
}
HTTP 201 response (application/json)
{
"type": "object",
"properties": {
"webhook": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"minimum": 1
},
"url": {
"type": "string"
},
"events": {
"type": "array",
"items": {
"type": "string"
}
},
"status": {
"type": "string"
},
"secret": {
"type": "string"
}
},
"additionalProperties": true
}
},
"additionalProperties": true
}
Documented failures: 400, 500.
/api/partner/v1/webhooks/:webhookId
Update or delete a partner webhook subscription.
- Auth
- Relationship-scoped partner API key
- Scope
- webhooks:write
- Request fields
- url: string
- events: array
- description: string
- rotate_secret: boolean
- status: string
- Returns
- Updated or deleted webhook subscription state.
Request, response and error reference
Request (application/json)
{
"type": "object",
"properties": {
"url": {
"type": "string",
"format": "uri"
},
"events": {
"type": "array",
"items": {
"type": "string"
}
},
"description": {
"type": "string"
},
"rotate_secret": {
"type": "boolean"
},
"status": {
"type": "string"
}
},
"additionalProperties": true
}
HTTP 200 response (application/json)
{
"type": "object",
"properties": {
"webhook": {
"type": "object",
"properties": {},
"additionalProperties": true
},
"secret": {
"type": "string"
}
},
"additionalProperties": true
}
Documented failures: 400, 403, 404, 409.
/api/partner/v1/webhooks/:webhookId
Update or delete a partner webhook subscription.
- Auth
- Relationship-scoped partner API key
- Scope
- webhooks:write
- Returns
- Updated or deleted webhook subscription state.
- Notes
- Disables the subscription rather than implying physical erasure of webhook delivery/audit history.
Request, response and error reference
No request body fields are read by this operation.
HTTP 200 response (application/json)
{
"type": "object",
"properties": {
"deleted": {
"type": "boolean"
},
"id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": true
}
Documented failures: 400, 500.
/api/partner/v1/webhooks/test
Create a test partner webhook event.
- Auth
- Relationship-scoped partner API key
- Scope
- webhooks:write
- Request fields
- message: string
- Returns
- Test event result.
Request, response and error reference
Request (application/json)
{
"type": "object",
"properties": {
"message": {
"type": "string"
}
},
"additionalProperties": true
}
HTTP 200 response (application/json)
{
"type": "object",
"properties": {
"success": {
"type": "boolean"
},
"event": {
"type": "object",
"properties": {
"type": {
"const": "webhook.test"
},
"id": {
"type": "string"
}
},
"additionalProperties": true
}
},
"additionalProperties": true
}
Documented failures: 400, 403, 404, 409.
/api/partner/v1/webhooks/:webhookId/test
Send a test event through a specific partner webhook.
- Auth
- Relationship-scoped partner API key
- Scope
- webhooks:write
- Request fields
- status: string
- message: string
- Returns
- Test event result.
- Notes
- Can update the selected webhook status and queues a synthetic webhook.test event. Queue acceptance is not successful delivery.
Request, response and error reference
Request (application/json)
{
"type": "object",
"properties": {
"status": {
"type": "string"
},
"message": {
"type": "string"
}
},
"additionalProperties": true
}
HTTP 200 response (application/json)
{
"type": "object",
"properties": {
"success": {
"type": "boolean"
},
"event": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"type": {
"type": "string"
},
"relationship_id": {
"type": "integer",
"minimum": 1
},
"partner_id": {
"type": "integer",
"minimum": 1
},
"developer_id": {
"type": "integer",
"minimum": 1
},
"created_at": {
"type": [
"string",
"null"
],
"format": "date-time"
}
},
"additionalProperties": true
}
},
"additionalProperties": true
}
Documented failures: 400, 500.
/api/partner/v1/webhook-events
List partner webhook delivery events.
- Auth
- Relationship-scoped partner API key
- Scope
- webhooks:read
- Request fields
- query limit: integer
- Returns
- Webhook event log rows.
- Notes
- Relationship-scoped partner key and operation-specific campaigns/webhooks read or write scope are required. External seller payments remain outside SoundSync managed-checkout processing coverage.
Request, response and error reference
Query and header parameters
[
{
"name": "limit",
"in": "query",
"schema": {
"type": "integer",
"minimum": 1,
"maximum": 100
},
"required": false,
"description": ""
}
]
No request body fields are read by this operation.
HTTP 200 response (application/json)
{
"type": "object",
"properties": {
"events": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"minimum": 1
},
"type": {
"type": "string"
},
"endpoint": {
"type": "string"
},
"method": {
"type": "string"
},
"request_id": {
"type": [
"string",
"null"
]
},
"idempotency_key": {
"type": [
"string",
"null"
]
},
"external_order_id": {
"type": [
"string",
"null"
]
},
"status_code": {
"type": "integer"
},
"success": {
"type": "boolean"
},
"error_code": {
"type": [
"string",
"null"
]
},
"error_message": {
"type": [
"string",
"null"
]
},
"request_summary": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"response_summary": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"created_at": {
"type": [
"string",
"null"
],
"format": "date-time"
}
},
"additionalProperties": true
}
},
"deliveries": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"minimum": 1
},
"subscription_id": {
"type": [
"integer",
"null"
]
},
"type": {
"type": "string"
},
"event_id": {
"type": "string"
},
"status": {
"type": "string"
},
"attempt_count": {
"type": "integer"
},
"next_attempt_at": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"last_attempt_at": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"last_status_code": {
"type": "integer"
},
"last_error": {
"type": [
"string",
"null"
]
},
"response_preview": {
"type": "string"
},
"created_at": {
"type": [
"string",
"null"
],
"format": "date-time"
}
},
"additionalProperties": true
}
}
},
"additionalProperties": true
}
Documented failures: 400, 500.
SoundSync
External order payload
The order payload reports the completed external checkout into SoundSync fulfillment.
| Field | Use |
|---|---|
| external_order_id | Stable order id from the partner commerce system. |
| customer_email | Customer identity for fulfillment, claim links, and support. |
| purchased_at | When the external purchase happened. |
| currency, total_paid, tax_amount | Commercial metadata for reporting and statements. |
| items | Purchased SKUs and quantities. Use reseller_sku or SoundSync SKU based on the relationship mapping. |
