Skip to main content
This guide takes you from zero to a live syncing integration. You’ll register your OCTO endpoint, get approved, verify the connection, and trigger your first sync.
1

Register your integration

Call POST /api/v1/partner-integrations with your OCTO endpoint details. You must be authenticated as a partner (Authorization: Bearer <JWT>).
curl -X POST https://api.seyaha.net/api/v1/partner-integrations \
  -H "Authorization: Bearer $PARTNER_JWT" \
  -H "Content-Type: application/json" \
  -d '{
    "base_url": "https://octo.yourplatform.com",
    "auth_type": "bearer",
    "auth_key": "your_octo_api_key",
    "handles_ticket_delivery": false
  }'
The response includes a webhook_secret. Save it now — it is not shown again.
{
  "success": 1,
  "data": {
    "_id": "64a1b2c3d4e5f6a7b8c9d0e1",
    "base_url": "https://octo.yourplatform.com",
    "auth_type": "bearer",
    "isApproved": false,
    "webhook_secret": "a3f8c2...",
    "sync": { "status": "idle" },
    "health": { "status": "HEALTHY" }
  }
}
2

Wait for admin approval

New integrations start with isApproved: false. A Seyaha admin reviews and approves the integration before any syncs run.You can check your approval status at any time:
cURL
curl https://api.seyaha.net/api/v1/partner-integrations/me \
  -H "Authorization: Bearer $PARTNER_JWT"
Once isApproved is true, scheduled syncs will begin automatically.
3

Test the connection

Verify Seyaha can reach your OCTO endpoint and authenticate successfully:
curl -X POST \
  https://api.seyaha.net/api/v1/partner-integrations/me/test-connection \
  -H "Authorization: Bearer $PARTNER_JWT"
A successful response:
{ "success": 1, "data": { "ok": true, "message": "Connection successful" } }
If ok is false, check message for a diagnostic. Common issues: wrong auth_type, firewall blocking Seyaha’s IPs, or OCTO /products endpoint not returning a 200.
4

Trigger your first sync

Once approved, trigger a sync using your webhook_secret:
curl -X POST \
  "https://api.seyaha.net/api/v1/partner-integrations/$INTEGRATION_ID/sync/trigger" \
  -H "x-webhook-secret: $WEBHOOK_SECRET"
{ "success": 1, "data": { "synced": 42, "skipped": false } }
skipped: true means the catalog hash matched the previous sync — no changes were detected.

What’s next

  • Read the OCTO Protocol guide to understand how Seyaha maps your products to activities.
  • Set up the Sync webhook so Seyaha stays in sync whenever your catalog changes.
  • Configure Availability Notify to push real-time slot updates.