Skip to content
SoundSyncAudio software platform

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.

ControlBehavior
Base path/api/partner/v1
AuthorizationAuthorization: Bearer <partner API secret>. Partner secrets use the configured partner-key prefix.
IdempotencyPOST /api/partner/v1/orders requires Idempotency-Key for retry-safe external-order creation.
Product limitsAllowed product ids restrict product, order, license, and campaign access where configured.
Rate limitsRead, 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.

GET /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
}
GET /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
}
GET /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
}
POST /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.

GET /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
}
POST /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.

POST /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.

GET /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
}
POST /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.

GET /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.

GET /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.

GET /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.

POST /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.

PATCH /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.

DELETE /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.

POST /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.

POST /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.

GET /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.

FieldUse
external_order_idStable order id from the partner commerce system.
customer_emailCustomer identity for fulfillment, claim links, and support.
purchased_atWhen the external purchase happened.
currency, total_paid, tax_amountCommercial metadata for reporting and statements.
itemsPurchased SKUs and quantities. Use reseller_sku or SoundSync SKU based on the relationship mapping.