Optoro · AsyncAPI Specification

Optoro Webhooks

Version

View Spec View on GitHub Returns ManagementReverse LogisticsRetailSupply ChainE-CommerceFulfillmentDropshipInventoryWebhookOrder ManagementAsyncAPIWebhooksEvents

AsyncAPI Specification

Raw ↑
generated: '2026-08-26'
method: searched
source: https://developer.optoro.com/content/webhooks
docs:
- https://developer.optoro.com/content/webhooks
- https://developer.optoro.com/content/rx_integration_guide
asyncapi_published: false
asyncapi_note: >-
  Optoro publishes NO AsyncAPI document. It documents its event surface as OpenAPI POST operations against an
  endpoint the CUSTOMER hosts — nine of the seventeen published definitions describe Optoro-to-customer
  messages rather than customer-to-Optoro calls, with servers[] pointing at developer.optoro.com as a
  documentation placeholder because the real target URL is supplied by the integrator. No AsyncAPI file was
  fabricated here; this artifact is the webhook catalog Optoro actually publishes.
delivery:
  guarantee: at-least-once
  ordering: not guaranteed — delivery is parallelized; most messages carry a timestamp for reordering
  duplicates: expected — "your webhook must be able to handle them"
  latency: asynchronous, not real time
  transport: HTTPS POST, TLS 1.2 minimum, certificate must be signed by a globally trusted CA with intermediates installed
  content_type: application/json
  method: POST
  success_criteria: any 2xx (200 OK recommended)
  retry:
    window: up to 32 hours
    strategy: exponential backoff
    retriable_status_codes: [500, 502, 503, 504]
    also_retried: connection timeouts
    reauth_on: 401 — Optoro re-authenticates and retries
    do_not_return: 400 / 422 — "quietly ignore the message and respond with a 200 OK"
  retention: 30 days; replay outside the 32-hour window requires Optoro Client Success
  configuration: >-
    Webhooks are configured by Optoro's Client Success team, not self-serve. Required from the integrator:
    the list of webhooks to enable, a URL for each, and authentication details.
  authentication_supported:
  - Basic Auth
  - OAuth 2
  - AWS SigV4
  - API key in an HTTP header
  credential_handling: secrets sent to Client Success as encrypted files and stored encrypted
surface_kinds:
- kind: webhook
  definition: Called when an event occurs in Optoro's system ("telling"). Response only acknowledges receipt; Optoro does not act on the body.
- kind: customer-endpoint
  definition: Called when Optoro needs information ("asking"). The response body influences Optoro's behaviour.
webhooks:
- name: RMAs
  kind: webhook
  direction: optoro-to-customer
  method: POST
  operation_id: rmas
  spec: openapi/optoro-rmas-openapi.yml
  version: 5.0.0
  version_header: 'X-Optiturn-Api-Version: 3'
  url: https://developer.optoro.com/openapi/rmas/openapi
  events:
  - shopper initiates a return
  - carrier tracking details provided
  - carrier receives and scans the return
  - shopper drops off the return, or a pick-up partner collects it
  - item received and ready for refund (Returns Management customers)
  - retailer posts refund details in the Refunds object of the Returns Portal Orders API
- name: Disposition Update
  kind: webhook
  direction: optoro-to-customer
  method: POST
  operation_id: dispositions
  spec: openapi/optoro-disposition-update-openapi.yml
  url: https://developer.optoro.com/openapi/disposition_update/openapi
  events:
  - a unit's disposition or condition changes in the warehouse or store
- name: Final Disposition
  kind: webhook
  direction: optoro-to-customer
  method: POST
  operation_id: final_dispositions
  spec: openapi/optoro-final-disposition-openapi.yml
  url: https://developer.optoro.com/openapi/final_disposition/openapi
  events:
  - a unit reaches its terminal disposition
- name: Outbound ASN
  kind: webhook
  direction: optoro-to-customer
  method: POST
  operation_id: outbound_asns
  spec: openapi/optoro-outbound-asn-openapi.yml
  url: https://developer.optoro.com/openapi/outbound_asn/openapi
  events:
  - outbound shipment (including stock transfers) leaves an Optoro facility
- name: Drop Shipment Confirmation
  kind: webhook
  direction: optoro-to-customer
  method: POST
  operation_id: drop_shipment_confirmation
  spec: openapi/optoro-drop-ship-webhooks-openapi.yml
  url: https://developer.optoro.com/openapi/drop_ship/webhooks/openapi
  events:
  - a drop shipment is confirmed
- name: Drop Shipment Cancellation
  kind: webhook
  direction: optoro-to-customer
  method: POST
  operation_id: drop_shipment_cancellation
  spec: openapi/optoro-drop-ship-webhooks-openapi.yml
  url: https://developer.optoro.com/openapi/drop_ship/webhooks/openapi
  events:
  - a drop shipment is cancelled in full
- name: Drop Shipment Partial Cancellation
  kind: webhook
  direction: optoro-to-customer
  method: POST
  operation_id: drop_shipment_partial_cancellation
  spec: openapi/optoro-drop-ship-webhooks-openapi.yml
  url: https://developer.optoro.com/openapi/drop_ship/webhooks/openapi
  events:
  - part of a drop shipment is cancelled
customer_endpoints:
- name: Exchange Orders
  kind: customer-endpoint
  direction: optoro-to-customer
  method: POST
  operation_id: exchange_orders
  spec: openapi/optoro-exchange-orders-openapi.yml
  version_header: 'X-Optiturn-Api-Version: 1 | 2'
  url: https://developer.optoro.com/openapi/exchange_orders/openapi
  idempotency_key: original_order_id
  contract: >-
    "Your endpoint should handle all tax and shipping calculations. The endpoint should be idempotent, using
    original_order_id as the key. Only one exchange order can be placed against an original_order_id."
  events:
  - shopper confirms an exchange
  - shopper selects a gift-card refund
  - instant exchange / instant gift card
- name: Exchange Variants
  kind: customer-endpoint
  direction: optoro-to-customer
  method: GET
  operation_id: variants
  spec: openapi/optoro-variants-openapi.yml
  version_header: 'X-Optiturn-Api-Version: 1'
  url: https://developer.optoro.com/openapi/variants/openapi
  contract: Optoro GETs /sku/{parent_sku}/variants from the retailer to offer even-exchange options to the shopper.
- name: Forward Orders
  kind: customer-endpoint
  direction: optoro-to-customer
  method: POST
  spec: openapi/optoro-forward-orders-openapi.yml
  url: https://developer.optoro.com/openapi/forward_orders/openapi
  deprecated: true
counts:
  webhooks: 7
  customer_endpoints: 3
  total_event_operations: 10

Work with this as data

Every AsyncAPI spec here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for asyncapi

4 MCP tools reach this
  • find_asyncapisBrowse and filter every AsyncAPI spec in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/optoro-webhooks"
All asyncapi
curl "https://apis.io/api/v1/asyncapis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.