{
  "site": {
    "name": "composerID Docs",
    "nav": [
      {
        "title": "Overview",
        "path": "index.html"
      },
      {
        "title": "API",
        "path": "api/index.html"
      },
      {
        "title": "MCP",
        "path": "mcp/index.html"
      },
      {
        "title": "Schemas",
        "path": "schemas/index.html"
      },
      {
        "title": "Integrations",
        "path": "integrations/index.html"
      },
      {
        "title": "Platforms",
        "path": "platforms/index.html"
      }
    ]
  },
  "schemas": [
    {
      "name": "IntentRecord",
      "version": "1.0.0",
      "schema_url": "https://composer.id/schemas/intent-record.json",
      "description": "Canonical system-of-engagement record keyed by intent_id.",
      "breaking": false
    },
    {
      "name": "DiagnosticsBundle",
      "version": "1.0.0",
      "schema_url": "https://composer.id/schemas/diagnostics-bundle.json",
      "description": "Scored diagnostic evidence produced by Triage.",
      "breaking": false
    },
    {
      "name": "RoutingPayload (Common Workforce Model)",
      "version": "1.0.0",
      "schema_url": "https://composer.id/schemas/routing-payload.json",
      "description": "Channel + destination payload in canonical field names.",
      "breaking": false
    },
    {
      "name": "AdminPayload",
      "version": "1.0.0",
      "schema_url": "https://composer.id/schemas/admin-payload.json",
      "description": "Dates, budgets, cost centers, approvals, and administrative fields.",
      "breaking": false
    },
    {
      "name": "PublishingBundle",
      "version": "1.0.0",
      "schema_url": "https://composer.id/schemas/publishing-bundle.json",
      "description": "Publish receipts, external IDs, idempotency keys, and adapter status.",
      "breaking": false
    },
    {
      "name": "MappingProfile",
      "version": "1.0.0",
      "schema_url": "https://composer.id/schemas/mapping-profile.json",
      "description": "Field translation templates from canonical intent/workforce models to platform-specific API dialects.",
      "breaking": false
    },
    {
      "name": "LinkedDestination",
      "version": "1.0.0",
      "schema_url": "https://composer.id/schemas/linked-destination.json",
      "description": "Capability + requirements metadata for a connected tenant.",
      "breaking": false
    },
    {
      "name": "TimelineEvent",
      "version": "1.0.0",
      "schema_url": "https://composer.id/schemas/timeline-event.json",
      "description": "Immutable append-only event stream for auditability.",
      "breaking": false
    },
    {
      "name": "WebhookEvent",
      "version": "1.0.0",
      "schema_url": "https://composer.id/schemas/webhook-event.json",
      "description": "Back-sync event envelope.",
      "breaking": false
    },
    {
      "name": "PassthroughRequest",
      "version": "1.0.0",
      "schema_url": "https://composer.id/schemas/passthrough-request.json",
      "description": "Raw platform call anchored to intent_id for escape-hatch fields/endpoints.",
      "breaking": false
    },
    {
      "name": "ReconciliationReport",
      "version": "1.0.0",
      "schema_url": "https://composer.id/schemas/reconciliation-report.json",
      "description": "Drift detection report when SoR diverges from Intent.",
      "breaking": false
    },
    {
      "name": "EnrichmentRequest",
      "version": "1.0.0",
      "schema_url": "https://composer.id/schemas/enrichment-request.json",
      "description": "Request for missing platform-required fields emitted back to Triage.",
      "breaking": false
    },
    {
      "name": "DefenceFile (JSON-LD)",
      "version": "1.0.0",
      "schema_url": "https://composer.id/schemas/defence-file.jsonld",
      "description": "Machine-readable evidence spine linked from intent and published records.",
      "breaking": false
    }
  ],
  "api": {
    "base_url": "https://api.composer.id",
    "endpoints": [
      {
        "method": "POST",
        "path": "/intent",
        "summary": "Create an intent record (returns intent_id).",
        "request": "IntentCreateRequest",
        "response": "IntentRecord"
      },
      {
        "method": "PATCH",
        "path": "/intent/{intent_id}",
        "summary": "Patch diagnostics/routing/admin fields.",
        "request": "IntentPatchRequest",
        "response": "IntentRecord"
      },
      {
        "method": "POST",
        "path": "/plan",
        "summary": "Generate destination plan from Channel Map + intent.",
        "request": "PlanGenerateRequest",
        "response": "PlanGenerateResponse"
      },
      {
        "method": "POST",
        "path": "/preflight",
        "summary": "Validate intent against platform requirements.",
        "request": "PreflightRequest",
        "response": "PreflightResponse"
      },
      {
        "method": "POST",
        "path": "/publish",
        "summary": "Idempotent publish to target platform via adapter.",
        "request": "PublishRequest",
        "response": "PublishResponse"
      },
      {
        "method": "GET",
        "path": "/intent/{intent_id}",
        "summary": "Fetch the canonical intent record.",
        "request": "—",
        "response": "IntentRecord"
      },
      {
        "method": "GET",
        "path": "/intent/{intent_id}/timeline",
        "summary": "Fetch timeline events for audit.",
        "request": "—",
        "response": "TimelineEvent[]"
      },
      {
        "method": "GET",
        "path": "/platforms",
        "summary": "List platforms and doc availability.",
        "request": "—",
        "response": "PlatformDoc[]"
      },
      {
        "method": "GET",
        "path": "/destinations",
        "summary": "List connected destinations and capabilities.",
        "request": "—",
        "response": "LinkedDestination[]"
      },
      {
        "method": "GET",
        "path": "/destinations/{id}/capabilities",
        "summary": "Capability matrix + required fields per object/op.",
        "request": "—",
        "response": "CapabilitiesResponse"
      },
      {
        "method": "POST",
        "path": "/passthrough",
        "summary": "Send raw JSON to a platform endpoint.",
        "request": "PassthroughRequest",
        "response": "PassthroughResponse"
      },
      {
        "method": "POST",
        "path": "/reconcile",
        "summary": "Detect drift between VMS state and canonical intent.",
        "request": "ReconcileRequest",
        "response": "ReconciliationReport"
      },
      {
        "method": "POST",
        "path": "/enrichment-request",
        "summary": "Emit missing fields back to Triage/Intake.",
        "request": "EnrichmentRequest",
        "response": "EnrichmentAck"
      }
    ],
    "webhooks": [
      {
        "event": "vms.requisition.updated",
        "payload_schema": "WebhookEvent",
        "description": "A requisition changed in the destination system."
      },
      {
        "event": "vms.assignment.updated",
        "payload_schema": "WebhookEvent",
        "description": "An assignment changed."
      },
      {
        "event": "vms.timesheet.updated",
        "payload_schema": "WebhookEvent",
        "description": "Timesheet changed."
      },
      {
        "event": "vms.connection.revoked",
        "payload_schema": "WebhookEvent",
        "description": "Tenant auth revoked."
      }
    ],
    "mcp_tools": [
      {
        "name": "intent_create",
        "input_schema": "IntentCreateRequest",
        "output_schema": "IntentCreateResponse",
        "description": "Initializes a record; returns stable intent_id."
      },
      {
        "name": "intent_patch",
        "input_schema": "IntentPatchRequest",
        "output_schema": "IntentRecord",
        "description": "Updates diagnostics/routing/admin payloads."
      },
      {
        "name": "plan_generate",
        "input_schema": "PlanGenerateRequest",
        "output_schema": "PlanGenerateResponse",
        "description": "Applies Channel Map to identify target destination(s)."
      },
      {
        "name": "mapping_preflight",
        "input_schema": "PreflightRequest",
        "output_schema": "PreflightResponse",
        "description": "Validates intent vs requirements; returns enrichment gaps."
      },
      {
        "name": "adapter_publish",
        "input_schema": "PublishRequest",
        "output_schema": "PublishResponse",
        "description": "Idempotent publish; records external IDs + receipt."
      }
    ]
  },
  "platforms": [
    {
      "platform": "Auth0",
      "category": "Systems Integrations",
      "status": "live",
      "owner": "triage",
      "docs_note": "OAuth 2.0 / OIDC. Management & Authentication APIs."
    },
    {
      "platform": "Azure",
      "category": "Systems Integrations",
      "status": "live",
      "owner": "triage",
      "docs_note": "Azure AD, Resource Manager, Key Vault REST APIs."
    },
    {
      "platform": "AWS",
      "category": "Systems Integrations",
      "status": "live",
      "owner": "triage",
      "docs_note": "IAM, STS, Secrets Manager APIs."
    },
    {
      "platform": "Google Cloud",
      "category": "Systems Integrations",
      "status": "live",
      "owner": "triage",
      "docs_note": "Cloud IAM, Secret Manager, Cloud Identity APIs."
    },
    {
      "platform": "Okta",
      "category": "Systems Integrations",
      "status": "live",
      "owner": "triage",
      "docs_note": "Identity, Users, Groups, OAuth 2.0 REST APIs."
    },
    {
      "platform": "Domo",
      "category": "Reporting Integrations",
      "status": "live",
      "owner": "triage",
      "docs_note": "Data, Dashboard, Dataset REST APIs."
    },
    {
      "platform": "Tableau",
      "category": "Reporting Integrations",
      "status": "live",
      "owner": "triage",
      "docs_note": "REST API, Hyper API, Metadata API."
    },
    {
      "platform": "Power BI",
      "category": "Reporting Integrations",
      "status": "live",
      "owner": "triage",
      "docs_note": "Datasets, Reports, Dashboards REST APIs."
    },
    {
      "platform": "Looker",
      "category": "Reporting Integrations",
      "status": "live",
      "owner": "triage",
      "docs_note": "Looker API 4.0. Queries, Dashboards, Looks."
    },
    {
      "platform": "Qlik",
      "category": "Reporting Integrations",
      "status": "live",
      "owner": "triage",
      "docs_note": "REST APIs. Apps, Spaces, Data connections."
    },
    {
      "platform": "Snowflake",
      "category": "Reporting Integrations",
      "status": "live",
      "owner": "triage",
      "docs_note": "SQL REST API, Snowpipe, External Functions."
    },
    {
      "platform": "Databricks",
      "category": "Reporting Integrations",
      "status": "live",
      "owner": "triage",
      "docs_note": "REST API 2.0. Jobs, Clusters, SQL Warehouses."
    },
    {
      "platform": "ChatGPT",
      "category": "Question Intelligence",
      "status": "live",
      "owner": "triage",
      "docs_note": "OpenAI Chat Completions API. GPT-4o, o1."
    },
    {
      "platform": "Claude",
      "category": "Question Intelligence",
      "status": "live",
      "owner": "triage",
      "docs_note": "Anthropic Messages API. Sonnet, Opus, Haiku."
    },
    {
      "platform": "Gemini",
      "category": "Question Intelligence",
      "status": "live",
      "owner": "triage",
      "docs_note": "Google Generative AI API. Gemini Pro, Flash."
    },
    {
      "platform": "Bright Data",
      "category": "Question Intelligence",
      "status": "live",
      "owner": "triage",
      "docs_note": "Web Scraper, SERP, Dataset APIs."
    },
    {
      "platform": "Moody's",
      "category": "Question Intelligence",
      "status": "live",
      "owner": "triage",
      "docs_note": "Orbis, Credit Risk, Company REST APIs."
    },
    {
      "platform": "Dun & Bradstreet",
      "category": "Question Intelligence",
      "status": "live",
      "owner": "triage",
      "docs_note": "Direct+, D-U-N-S, Compliance REST APIs."
    },
    {
      "platform": "Perplexity",
      "category": "Question Intelligence",
      "status": "live",
      "owner": "triage",
      "docs_note": "Sonar API. Search-grounded completions."
    },
    {
      "platform": "ZoomInfo",
      "category": "Question Intelligence",
      "status": "live",
      "owner": "triage",
      "docs_note": "Enrich, Search, WebSights REST APIs."
    },
    {
      "platform": "Crunchbase",
      "category": "Question Intelligence",
      "status": "live",
      "owner": "triage",
      "docs_note": "Enterprise API. Organizations, Funding, People."
    },
    {
      "platform": "LexisNexis",
      "category": "Question Intelligence",
      "status": "live",
      "owner": "triage",
      "docs_note": "Accurint, SmartLinx, Bridger REST APIs."
    },
    {
      "platform": "Beeline",
      "status": "mapped",
      "docs_url": "https://developers.beeline.com/",
      "capabilities": {
        "passthrough_available": true,
        "webhooks_available": true,
        "objects": []
      },
      "mapping_profiles": [],
      "category": "Vendor Management & Sourcing",
      "owner": "composerID",
      "docs_note": "300+ RESTful APIs. Auth0 / OAuth 2.0.",
      "page": "beeline"
    },
    {
      "platform": "SAP",
      "category": "Vendor Management & Sourcing",
      "status": "documented",
      "owner": "composerID",
      "docs_note": "SAP Business Technology Platform APIs.",
      "page": "sapbtp"
    },
    {
      "platform": "SAP Ariba",
      "category": "Vendor Management & Sourcing",
      "status": "documented",
      "owner": "composerID",
      "docs_note": "Procurement, Sourcing, Contract REST APIs.",
      "page": "ariba"
    },
    {
      "platform": "Globality",
      "category": "Vendor Management & Sourcing",
      "status": "documented",
      "owner": "composerID",
      "docs_note": "Sourcing, Webhooks, Project APIs.",
      "page": "globality"
    },
    {
      "platform": "Coupa",
      "category": "Vendor Management & Sourcing",
      "status": "documented",
      "owner": "composerID",
      "docs_note": "Requisitions, POs, Invoices, Suppliers REST API.",
      "page": "coupa"
    },
    {
      "platform": "Workday",
      "category": "Vendor Management & Sourcing",
      "status": "documented",
      "owner": "composerID",
      "docs_note": "HCM, Recruiting, Staffing REST & SOAP APIs.",
      "page": "workday"
    },
    {
      "platform": "SAP Fieldglass",
      "status": "mapped",
      "docs_url": "https://help.sap.com/doc/a5fdbd31ebe94832aef0eb79066a8087/cloud/en-US/SAPFieldglassRESTAPIIntegrationGeneralReferenceGuide.pdf",
      "capabilities": {
        "passthrough_available": true,
        "webhooks_available": false,
        "objects": [
          {
            "name": "requisition",
            "operations": [
              {
                "op": "FETCH",
                "required_fields": [
                  "external_id"
                ],
                "supported_fields": [
                  "status",
                  "dates",
                  "cost_center",
                  "custom_fields"
                ]
              },
              {
                "op": "CREATE",
                "required_fields": [
                  "start_date",
                  "end_date",
                  "cost_center_id",
                  "job_title"
                ],
                "supported_fields": [
                  "rate",
                  "location",
                  "custom_fields",
                  "attachments"
                ]
              },
              {
                "op": "UPDATE",
                "required_fields": [
                  "external_id"
                ],
                "supported_fields": [
                  "status",
                  "dates",
                  "rate",
                  "custom_fields"
                ]
              },
              {
                "op": "CANCEL",
                "required_fields": [
                  "external_id"
                ],
                "supported_fields": [
                  "status",
                  "reason"
                ]
              }
            ]
          }
        ]
      },
      "mapping_profiles": [
        {
          "name": "fieldglass.requisition.create",
          "target_object": "requisition",
          "mappings": [
            {
              "source_path": "$.routing.start_date",
              "target_field": "WorkStartDate",
              "transform": "date_iso_to_mdy",
              "required_by_platform": true
            },
            {
              "source_path": "$.routing.end_date",
              "target_field": "WorkEndDate",
              "transform": "date_iso_to_mdy",
              "required_by_platform": true
            },
            {
              "source_path": "$.admin.cost_center_id",
              "target_field": "CostCenter",
              "transform": "lookup",
              "required_by_platform": true
            },
            {
              "source_path": "$.intent_id",
              "target_field": "CustomField.IntentID",
              "transform": "none",
              "required_by_platform": false
            },
            {
              "source_path": "$.diagnostics.defence_file.url",
              "target_field": "Attachment",
              "transform": "none",
              "required_by_platform": false
            }
          ]
        }
      ],
      "category": "Vendor Management & Sourcing",
      "owner": "composerID",
      "docs_note": "REST API + OData. 227+ resources.",
      "page": "fieldglass"
    },
    {
      "platform": "VNDLY",
      "category": "Vendor Management & Sourcing",
      "status": "mapped",
      "owner": "composerID",
      "docs_note": "Workday VNDLY. Customer-provided API docs.",
      "page": "vndly"
    },
    {
      "platform": "GEP",
      "category": "Vendor Management & Sourcing",
      "status": "documented",
      "owner": "composerID",
      "docs_note": "SMART Procurement, S2P REST APIs.",
      "page": "gep"
    },
    {
      "platform": "Icertis",
      "category": "Signature & Contract Management",
      "status": "roadmap",
      "owner": "composerID",
      "docs_note": "Contract, Clause, Obligation REST APIs."
    },
    {
      "platform": "Ironclad",
      "category": "Signature & Contract Management",
      "status": "roadmap",
      "owner": "composerID",
      "docs_note": "Workflows, Records, Webhooks REST APIs."
    },
    {
      "platform": "DocuSign",
      "category": "Signature & Contract Management",
      "status": "roadmap",
      "owner": "composerID",
      "docs_note": "eSignature REST API. Envelopes, Templates."
    },
    {
      "platform": "Adobe Sign",
      "category": "Signature & Contract Management",
      "status": "roadmap",
      "owner": "composerID",
      "docs_note": "Agreements, Widgets, Signing REST APIs."
    },
    {
      "platform": "PandaDoc",
      "category": "Signature & Contract Management",
      "status": "roadmap",
      "owner": "composerID",
      "docs_note": "Documents, Templates, Contacts REST API."
    },
    {
      "platform": "Dropbox Sign",
      "category": "Signature & Contract Management",
      "status": "roadmap",
      "owner": "composerID",
      "docs_note": "Signature Request, Template REST APIs."
    },
    {
      "platform": "Juro",
      "category": "Signature & Contract Management",
      "status": "roadmap",
      "owner": "composerID",
      "docs_note": "Contracts, Templates, Workflows REST API."
    },
    {
      "platform": "Zip",
      "category": "Procurement Orchestration",
      "status": "documented",
      "owner": "composerID",
      "docs_note": "Requests, Approvals, Intake REST APIs.",
      "page": "zip"
    },
    {
      "platform": "ORO Labs",
      "category": "Procurement Orchestration",
      "status": "documented",
      "owner": "composerID",
      "docs_note": "Intake, Routing, Workflow APIs.",
      "page": "oro"
    },
    {
      "platform": "Keelvar",
      "category": "Procurement Orchestration",
      "status": "roadmap",
      "owner": "composerID",
      "docs_note": "Sourcing, Optimization, Events REST APIs."
    },
    {
      "platform": "JAGGAER",
      "category": "Procurement Orchestration",
      "status": "roadmap",
      "owner": "composerID",
      "docs_note": "Sourcing, Contracts, Supplier REST APIs."
    },
    {
      "platform": "Agiloft",
      "category": "Procurement Orchestration",
      "status": "roadmap",
      "owner": "composerID",
      "docs_note": "REST API. Contracts, Records, Workflows."
    },
    {
      "platform": "Ivalua",
      "category": "Procurement Orchestration",
      "status": "roadmap",
      "owner": "composerID",
      "docs_note": "Procurement, Supplier, Contract REST APIs."
    },
    {
      "platform": "GEP",
      "category": "Procurement Orchestration",
      "status": "documented",
      "owner": "composerID",
      "docs_note": "SMART Procurement, S2P REST APIs.",
      "page": "gep"
    },
    {
      "platform": "Tonkean",
      "category": "Procurement Orchestration",
      "status": "roadmap",
      "owner": "composerID",
      "docs_note": "Intake, Orchestration, Module REST APIs."
    },
    {
      "platform": "Basware",
      "category": "Procurement Orchestration",
      "status": "roadmap",
      "owner": "composerID",
      "docs_note": "Purchase, Invoice, Matching REST APIs."
    },
    {
      "platform": "Fairmarkit",
      "category": "Procurement Orchestration",
      "status": "roadmap",
      "owner": "composerID",
      "docs_note": "Sourcing, Bidding, Supplier REST APIs."
    },
    {
      "platform": "SharePoint",
      "category": "File Storage",
      "status": "live",
      "owner": "triage",
      "docs_note": "Graph API. Sites, Drives, Lists."
    },
    {
      "platform": "OneDrive",
      "category": "File Storage",
      "status": "live",
      "owner": "triage",
      "docs_note": "Graph API. DriveItems, Permissions."
    },
    {
      "platform": "Google Drive",
      "category": "File Storage",
      "status": "live",
      "owner": "triage",
      "docs_note": "Drive API v3. Files, Permissions, Changes."
    },
    {
      "platform": "Oracle HCM",
      "category": "HRIS / HCM",
      "status": "roadmap",
      "owner": "composerID",
      "docs_note": "HCM Cloud REST APIs. Workers, Assignments."
    },
    {
      "platform": "SAP SuccessFactors",
      "category": "HRIS / HCM",
      "status": "roadmap",
      "owner": "composerID",
      "docs_note": "OData APIs. Employee Central, Recruiting."
    },
    {
      "platform": "UKG",
      "category": "HRIS / HCM",
      "status": "roadmap",
      "owner": "composerID",
      "docs_note": "Pro / Dimensions REST APIs. People, Time."
    },
    {
      "platform": "Ceridian Dayforce",
      "category": "HRIS / HCM",
      "status": "roadmap",
      "owner": "composerID",
      "docs_note": "REST API. Employees, Payroll, HR."
    },
    {
      "platform": "ADP",
      "category": "HRIS / HCM",
      "status": "roadmap",
      "owner": "composerID",
      "docs_note": "Workforce Now, Next Gen APIs. Workers, Pay."
    },
    {
      "platform": "BambooHR",
      "category": "HRIS / HCM",
      "status": "roadmap",
      "owner": "composerID",
      "docs_note": "REST API. Employees, Time Off, Reports."
    },
    {
      "platform": "Greenhouse",
      "category": "ATS",
      "status": "roadmap",
      "owner": "composerID",
      "docs_note": "Harvest API. Candidates, Jobs, Offers."
    },
    {
      "platform": "Lever",
      "category": "ATS",
      "status": "roadmap",
      "owner": "composerID",
      "docs_note": "REST API. Opportunities, Postings, Users."
    },
    {
      "platform": "iCIMS",
      "category": "ATS",
      "status": "roadmap",
      "owner": "composerID",
      "docs_note": "Platform API. People, Jobs, Workflows."
    },
    {
      "platform": "SmartRecruiters",
      "category": "ATS",
      "status": "roadmap",
      "owner": "composerID",
      "docs_note": "REST API. Jobs, Candidates, Offers."
    },
    {
      "platform": "Bullhorn",
      "category": "ATS",
      "status": "roadmap",
      "owner": "composerID",
      "docs_note": "REST API. Candidates, Jobs, Placements."
    },
    {
      "platform": "Avature",
      "category": "ATS",
      "status": "roadmap",
      "owner": "composerID",
      "docs_note": "REST API. Candidates, Workflows, Forms."
    },
    {
      "platform": "Eightfold",
      "category": "ATS",
      "status": "roadmap",
      "owner": "composerID",
      "docs_note": "Talent Intelligence REST APIs."
    },
    {
      "platform": "Oracle",
      "category": "ERP",
      "status": "roadmap",
      "owner": "composerID",
      "docs_note": "Fusion Cloud REST APIs. Financials, Projects."
    },
    {
      "platform": "SAP S/4HANA",
      "category": "ERP",
      "status": "roadmap",
      "owner": "composerID",
      "docs_note": "OData + REST. Purchase Orders, Cost Centers."
    },
    {
      "platform": "Microsoft Dynamics 365",
      "category": "ERP",
      "status": "roadmap",
      "owner": "composerID",
      "docs_note": "Dataverse REST API. Finance, Supply Chain."
    },
    {
      "platform": "NetSuite",
      "category": "ERP",
      "status": "roadmap",
      "owner": "composerID",
      "docs_note": "SuiteTalk REST / SOAP. Records, SuiteQL."
    },
    {
      "platform": "ServiceNow",
      "category": "ITSM / Service Management",
      "status": "live",
      "owner": "triage",
      "docs_note": "Table, CMDB, Flow Designer REST APIs."
    },
    {
      "platform": "Jira Service Management",
      "category": "ITSM / Service Management",
      "status": "live",
      "owner": "triage",
      "docs_note": "REST API v3. Requests, Queues, SLAs."
    },
    {
      "platform": "BMC Helix",
      "category": "ITSM / Service Management",
      "status": "live",
      "owner": "triage",
      "docs_note": "ITSM REST APIs. Incidents, Changes, Assets."
    }
  ],
  "platform_docs": [
    {
      "platform": "SAP Fieldglass",
      "key": "fieldglass",
      "docs_confidence": "Public",
      "docs_links": [
        "https://help.sap.com/doc/a5fdbd31ebe94832aef0eb79066a8087/cloud/en-US/SAPFieldglassRESTAPIIntegrationGeneralReferenceGuide.pdf",
        "https://help.sap.com/doc/d63a5197c77a4a35a05e1c338bd7d15d/cloud/en-US/SAPFieldglassApprovalsAPITechnicalSpecifications.pdf"
      ],
      "page": "platforms/providers/fieldglass.html",
      "minimum_viable_mapping": "contingent requisition + timesheet + (optional) SOW",
      "tenant_discovery": "required fields, custom fields, picklists, approval constraints"
    },
    {
      "platform": "Beeline",
      "key": "beeline",
      "docs_confidence": "Public",
      "docs_links": [
        "https://developers.beeline.com/"
      ],
      "page": "platforms/providers/beeline.html",
      "minimum_viable_mapping": "contingent requisition + assignment + timesheet",
      "tenant_discovery": "required fields, custom fields, picklists, approval constraints"
    },
    {
      "platform": "Workday VNDLY",
      "key": "vndly",
      "docs_confidence": "Customer",
      "docs_links": [],
      "page": "platforms/providers/vndly.html",
      "minimum_viable_mapping": "contingent requisition + assignment",
      "tenant_discovery": "required fields, custom fields, picklists, Workday-aligned coding"
    }
  ],
  "provider_docs": [
    {
      "platform": "SAP Fieldglass",
      "key": "fieldglass",
      "category": "Vendor Management & Sourcing",
      "docs_confidence": "Public",
      "generated": true,
      "summary": "SAP Fieldglass is a structured, enterprise VMS used to manage large external workforces and SOW services at global scale. composerID turns Triage intent into deterministic Fieldglass records — requisitions, SOW and time objects — handling tenant-specific requirements via preflight and enrichment.",
      "docs_links": [
        {
          "label": "SAP Fieldglass REST API Integration — General Reference (PDF)",
          "url": "https://help.sap.com/doc/a5fdbd31ebe94832aef0eb79066a8087/cloud/en-US/SAPFieldglassRESTAPIIntegrationGeneralReferenceGuide.pdf"
        },
        {
          "label": "SAP Business Accelerator Hub — Fieldglass APIs",
          "url": "https://api.sap.com/"
        },
        {
          "label": "SAP Fieldglass product documentation",
          "url": "https://help.sap.com/docs/SAP_FIELDGLASS"
        }
      ],
      "api": {
        "auth": "OAuth 2.0 (client credentials; SAML and X.509 assertion flows also supported). Credentials and application keys provisioned per tenant/environment.",
        "style": "REST (JSON) + OData; upload/download connectors also accept CSV. 227+ individual REST resources across requisitions, work orders, time sheets and SOW.",
        "base_url": "Tenant + environment specific (provisioned per Fieldglass instance). No single public base URL.",
        "webhooks": "Poll-first. Outbound integration connectors and audit-trail downloads are configured per tenant; no general public webhook bus.",
        "rate_limits": "100 requests/second per API by default; burst to 200 req/s for short durations.",
        "objects": "Job Posting / Requisition, Work Order + revisions, Worker, Time Sheet, Expense, SOW, Invoice, Supplier"
      },
      "mvm": [
        {
          "object": "Requisition (Contingent)",
          "object_note": "Create external worker request",
          "canonical": "role_title, location, start_date, cost_center, worker_type",
          "target": "REST resource (tenant-specific)",
          "required": "Required + tenant required",
          "notes": "Preflight enforces required fields"
        },
        {
          "object": "Statement of Work",
          "object_note": "Create services request / SOW",
          "canonical": "service_category, sow.summary, deliverables[], budget, dates",
          "target": "REST resource (tenant-specific)",
          "required": "Often tenant required",
          "notes": "Attach defence file where supported"
        },
        {
          "object": "Timesheet",
          "object_note": "Capture time entries",
          "canonical": "worker_id, period, hours, cost_center",
          "target": "REST resource (tenant-specific)",
          "required": "Required",
          "notes": "Back-sync recommended"
        }
      ],
      "tenant_note": "Some Fieldglass requirements are program/tenant-defined (custom fields, approval chains, code lists). Even with public PDFs, a tenant connection is needed to confirm required fields and generate a tenant-specific MappingProfile. Legacy SAP landscapes may route via BAPIs/RFCs/IDocs rather than modern REST — confirm the integration path per tenant."
    },
    {
      "platform": "Beeline",
      "key": "beeline",
      "category": "Vendor Management & Sourcing",
      "docs_confidence": "Public",
      "generated": true,
      "summary": "Beeline is a vendor-neutral VMS commonly selected for best-of-breed contingent workforce programs, with a broad public API surface. composerID publishes portable intent into Beeline and supports tenant-specific custom fields and picklists through discovery + enrichment.",
      "docs_links": [
        {
          "label": "Beeline Developer Portal",
          "url": "https://developers.beeline.com/"
        }
      ],
      "api": {
        "auth": "OAuth 2.0 client credentials via Auth0. Tokens scoped per client onboarding.",
        "style": "REST (JSON) — 300+ APIs across hiring, invoicing and compliance. Data is tiered: foundational (org hierarchy, geographies), supportive (worker, onboarding), transactional (timecards, invoicing, maverick-spend).",
        "base_url": "Per-tenant Beeline environment (provisioned at onboarding).",
        "webhooks": "Event/webhook support where enabled per program; otherwise poll transactional resources. Client Onboarding API accepts batch payloads with automatic create-vs-update detection (no client-side state).",
        "rate_limits": "1,000 calls per minute per endpoint.",
        "objects": "Requisition, Worker, Assignment, Timecard, Expense, Invoice, Supplier, Organizational hierarchy"
      },
      "mvm": [
        {
          "object": "Requisition (Contingent)",
          "object_note": "Create worker request",
          "canonical": "role_title, location, start_date, cost_center, worker_type",
          "target": "API resource (per portal)",
          "required": "Required + tenant required",
          "notes": "Picklists + custom fields vary"
        },
        {
          "object": "Worker / Assignment",
          "object_note": "Assignment lifecycle and status",
          "canonical": "worker_id, start/end, rate, status",
          "target": "API resource (per portal)",
          "required": "Required",
          "notes": "Use reconciliation for drift"
        },
        {
          "object": "Timesheet",
          "object_note": "Time entry and approval flow",
          "canonical": "assignment_id, period, hours, status",
          "target": "API resource (per portal)",
          "required": "Required",
          "notes": "Webhook/event if available"
        }
      ],
      "tenant_note": "Beeline implementations frequently include custom fields, program rules and approval steps. Public docs support the base adapter; tenant discovery completes the required-field set and MappingProfile for your program."
    },
    {
      "platform": "VNDLY",
      "key": "vndly",
      "category": "Vendor Management & Sourcing",
      "docs_confidence": "Customer",
      "generated": true,
      "summary": "Workday VNDLY is a cloud-native VMS aligned to the Workday suite. composerID treats VNDLY as a destination system of record — publishing Intent Records and maintaining the audit spine — with tenant mapping validated in a customer sandbox because API documentation is customer/partner-scoped.",
      "docs_links": [
        {
          "label": "Workday VNDLY — product overview",
          "url": "https://www.workday.com/en-us/products/vendor-management-system/overview.html"
        }
      ],
      "api": {
        "auth": "Customer/partner-provisioned credentials within the Workday ecosystem. Confirm auth flow (OAuth 2.0 / ISU-style integration user) per tenant.",
        "style": "Customer-scoped APIs; public endpoint documentation not confirmed. Workday-suite alignment drives object and required-field conventions.",
        "base_url": "Provisioned per customer tenant. No public base URL.",
        "webhooks": "Not publicly documented; plan poll-based reconciliation and confirm event options per tenant.",
        "rate_limits": "Not publicly documented; defined per tenant/integration agreement.",
        "objects": "Requisition, Worker, Assignment, Timesheet, Supplier (per Workday-ecosystem conventions)"
      },
      "mvm": [
        {
          "object": "Requisition (Contingent)",
          "object_note": "Create worker request",
          "canonical": "role_title, location, start_date, cost_center, worker_type",
          "target": "Customer API (Workday ecosystem)",
          "required": "Tenant required",
          "notes": "Workday alignment drives required fields"
        },
        {
          "object": "Worker / Assignment",
          "object_note": "Assignment lifecycle",
          "canonical": "worker_id, dates, rate, status",
          "target": "Customer API",
          "required": "Tenant required",
          "notes": "Back-sync into intent timeline"
        }
      ],
      "tenant_note": "Workday VNDLY documentation is customer/partner-scoped. composerID starts with minimum viable mapping and relies on tenant discovery (required fields, custom fields, code lists) to generate a working MappingProfile."
    },
    {
      "platform": "SAP Ariba",
      "key": "ariba",
      "category": "Vendor Management & Sourcing",
      "docs_confidence": "Public",
      "generated": true,
      "summary": "SAP Ariba is an enterprise source-to-pay and sourcing suite. Contingent services and SOW work are modelled through Sourcing Projects, Requisitions and Contract Workspaces rather than a single VMS object. composerID maps canonical intent onto those objects across Ariba's REST, SOAP and cXML surfaces.",
      "docs_links": [
        {
          "label": "SAP Business Accelerator Hub — Ariba REST APIs",
          "url": "https://api.sap.com/package/SAPAribaOpenAPIs/rest"
        },
        {
          "label": "Making REST API calls with OAuth token + application key",
          "url": "https://help.sap.com/docs/ariba-apis/help-for-sap-ariba-developer-portal/making-of-rest-api-calls-with-oauth-access-token-and-application-key"
        },
        {
          "label": "SAP Ariba SOAP Web Service APIs",
          "url": "https://help.sap.com/docs/strategic-sourcing/soap-web-service-api-integration/what-are-sap-ariba-soap-web-service-apis"
        },
        {
          "label": "SAP Ariba Developer Portal",
          "url": "https://developer.ariba.com/"
        }
      ],
      "api": {
        "auth": "OAuth 2.0 client-credentials PLUS a per-API Application Key. Every call sends apiKey + Authorization: Bearer. Token from https://api.ariba.com/v2/oauth/token. One application per API per realm.",
        "style": "REST (JSON) + SOAP (strategic sourcing) + cXML (transactional documents over Ariba Network)",
        "base_url": "https://openapi.ariba.com/api/{service}/{version}/{env}  e.g. /sourcing-approval/v2/prod",
        "webhooks": "Poll-first. cXML push over Ariba Network; External Approval API for inbound/outbound approvals. No general object-change webhook bus.",
        "rate_limits": "Per app key + per API, multi-window (per sec/min/hour/day). Varies widely by API; raised case-by-case via account exec.",
        "objects": "Sourcing Project, Sourcing Request / Requisition, Purchase Order, Supplier, Contract Workspace (SOW), Invoice (cXML)"
      },
      "mvm": [
        {
          "object": "Requisition (Contingent)",
          "object_note": "Create external worker request",
          "canonical": "role_title, location, start_date, cost_center, worker_type",
          "target": "Operational Requisition / Sourcing Request",
          "required": "Required + tenant required",
          "notes": "Preflight enforces tenant-required fields"
        },
        {
          "object": "Statement of Work",
          "object_note": "Services / SOW engagement",
          "canonical": "service_category, sow.summary, deliverables[], budget, dates",
          "target": "Contract Workspace (SOW type)",
          "required": "Often tenant required",
          "notes": "SOW is modelled as a contract-workspace type"
        },
        {
          "object": "Purchase Order",
          "object_note": "Transact the order",
          "canonical": "po_lines, supplier, amount",
          "target": "cXML PO over Ariba Network",
          "required": "Network-dependent",
          "notes": "Transacted via Ariba Network"
        }
      ],
      "tenant_note": "SOW / contingent labour is not a first-class REST object; field-level schemas live in per-API WSDL/OpenAPI specs on the Business Accelerator Hub, several behind Hub login. App keys take ~12h to activate, and apps are promoted from test realm to production."
    },
    {
      "platform": "Coupa",
      "key": "coupa",
      "category": "Vendor Management & Sourcing",
      "docs_confidence": "Public",
      "generated": true,
      "summary": "Coupa is a Business Spend Management platform with a single clean REST surface. Contingent and services spend (SOW, Coupa Contingent Workforce) sits on top of requisitions, contracts and purchase_orders. composerID publishes canonical intent into those resources.",
      "docs_links": [
        {
          "label": "The Coupa Core API (Compass)",
          "url": "https://compass.coupa.com/en-us/products/product-documentation/integration-technical-documentation/the-coupa-core-api"
        },
        {
          "label": "Coupa Core API — Get Started",
          "url": "https://compass.coupa.com/en-us/products/product-documentation/integration-technical-documentation/the-coupa-core-api/get-started-with-the-api"
        },
        {
          "label": "OAuth 2.0 and OIDC",
          "url": "https://compass.coupa.com/en-us/products/product-documentation/integration-technical-documentation/the-coupa-core-api/oauth-2.0-and-oidc"
        },
        {
          "label": "Exception handling & rate limits",
          "url": "https://compass.coupa.com/en-us/products/product-documentation/integration-technical-documentation/the-coupa-core-api/get-started-with-the-api/exception-handling-and-error-codes"
        }
      ],
      "api": {
        "auth": "OAuth 2.0 / OIDC client-credentials with scopes. Token POST https://{instance}.coupahost.com/oauth2/token. Legacy X-COUPA-API-KEY header is retired.",
        "style": "REST, JSON or XML via Accept header",
        "base_url": "https://{instance}.coupahost.com/api/{resource}  (events at https://{instance}.cso.coupahost.com/api/events)",
        "webhooks": "Poll-first via updated-at filters. Events API (CSO) + configurable webhooks supplement; not comprehensive native webhooks.",
        "rate_limits": "25 requests/second, burst queue ~20; exponential backoff on 429/503.",
        "objects": "requisitions, purchase_orders, invoices, contracts, suppliers, quote_requests, expenses, budget_lines"
      },
      "mvm": [
        {
          "object": "Requisition (Contingent)",
          "object_note": "Create external worker request",
          "canonical": "role_title, start_date, end_date, cost_center, worker_type",
          "target": "POST /api/requisitions",
          "required": "Required",
          "notes": "CCW / Services modelled on requisitions"
        },
        {
          "object": "Statement of Work",
          "object_note": "Services / SOW engagement",
          "canonical": "service_category, sow.summary, deliverables[], budget, dates",
          "target": "/api/contracts + /api/requisitions",
          "required": "Tenant required",
          "notes": "Verify CCW module resource name per tenant"
        },
        {
          "object": "Purchase Order",
          "object_note": "Read for back-sync",
          "canonical": "po_number, supplier, amount, status",
          "target": "GET /api/purchase_orders",
          "required": "Required",
          "notes": "Used for reconciliation"
        }
      ],
      "tenant_note": "SOW / Contingent Workforce is not a distinct top-level REST resource; confirm the CCW module resource name in your tenant. Each customer has a separate sandbox instance with its own OAuth clients and scopes."
    },
    {
      "platform": "Workday",
      "key": "workday",
      "category": "Vendor Management & Sourcing",
      "docs_confidence": "Public",
      "generated": true,
      "summary": "Workday is the worker and staffing system of record. composerID contracts contingent workers through the Staffing business-process operations; writes are largely SOAP-only, while reads are available via REST and RaaS.",
      "docs_links": [
        {
          "label": "Workday SOAP API Reference",
          "url": "https://community-content.workday.com/en-us/public/products/platform-and-product-extensions/soap-api-reference.html"
        },
        {
          "label": "Workday Web Services Production Directory (v46.1)",
          "url": "https://community.workday.com/sites/default/files/file-hosting/productionapi/index.html"
        },
        {
          "label": "Contract_Contingent_Worker operation",
          "url": "https://community.workday.com/sites/default/files/file-hosting/productionapi/Staffing/v14/Contract_Contingent_Worker.html"
        },
        {
          "label": "Workday REST Directory",
          "url": "https://community.workday.com/sites/default/files/file-hosting/restapi/"
        }
      ],
      "api": {
        "auth": "OAuth 2.0 (auth-code + ISU client-credentials) for REST; WS-Security or OAuth via an Integration System User (ISU) for SOAP. Access tokens ~1h; non-expiring refresh tokens configurable.",
        "style": "SOAP (Workday Web Services — primary), REST/JSON (partial subset), RaaS (reports-as-a-service)",
        "base_url": "REST https://{host}/ccx/api/{service}/v{n}/{tenant}  |  SOAP https://{host}/ccx/service/{tenant}/{WebService}/v{n}",
        "webhooks": "No native webhooks. Event-driven via the Business Process Framework, EIB outbound, Studio and Extend. RaaS is poll-based.",
        "rate_limits": "Not officially published; practitioner ~10 req/s per tenant, HTTP 429 + Retry-After. Queue + exponential backoff.",
        "objects": "Staffing (Create_Position, Contract_Contingent_Worker, End_Contingent_Worker_Contract), Job Requisition, Position, Worker, Supplier, Purchase Order"
      },
      "mvm": [
        {
          "object": "Contingent worker (contract)",
          "object_note": "Onboard external worker",
          "canonical": "worker, position, start_date, supplier, job_profile",
          "target": "Contract_Contingent_Worker (Staffing SOAP BP)",
          "required": "Required + tenant BP",
          "notes": "Approvals run via the tenant business process"
        },
        {
          "object": "Position (create)",
          "object_note": "Create the headcount",
          "canonical": "role_title, org, location, headcount",
          "target": "Create_Position (Staffing SOAP)",
          "required": "Required",
          "notes": "Precedes contracting"
        },
        {
          "object": "End contract",
          "object_note": "Offboard / liveness",
          "canonical": "worker_id, end_date, reason",
          "target": "End_Contingent_Worker_Contract",
          "required": "Required",
          "notes": "Drives liveness + offboarding"
        }
      ],
      "tenant_note": "Pin a WWS version (e.g. v46.1) in every endpoint. Requires an ISU + integration security group + registered API client. Implementation and production tenants use different hosts."
    },
    {
      "platform": "GEP",
      "key": "gep",
      "category": "Vendor Management & Sourcing",
      "docs_confidence": "Customer",
      "generated": true,
      "summary": "GEP SMART is a unified source-to-pay procurement platform. Reference docs are public, but working credentials and base URLs are provisioned per customer at onboarding. composerID maps intent onto Requisition / RFX / Contract / Order / Invoice resources.",
      "docs_links": [
        {
          "label": "GEP Tech Documentation portal",
          "url": "https://api.gep.com/"
        },
        {
          "label": "GEP SMART REST APIs index",
          "url": "https://api.gep.com/gep-smart/gep-rest-apis"
        },
        {
          "label": "Order (PO) API",
          "url": "https://api.gep.com/gep-smart/gep-rest-apis/transaction-data-apis/order"
        },
        {
          "label": "Invoice API",
          "url": "https://api.gep.com/gep-smart/gep-rest-apis/transaction-data-apis/invoice"
        }
      ],
      "api": {
        "auth": "OAuth 2.0. Client credentials are provisioned by GEP — there is no public self-service signup. 401 on unauthorized.",
        "style": "REST (JSON) + SOAP + Bulk APIs + FTP/SFTP. GEP QUANTUM adds cXML / EDI-X12 / PIDX.",
        "base_url": "api/{Resource}/{Action}  e.g. api/Order/OrderDetails  (fully-qualified host issued per tenant)",
        "webhooks": "None documented. Request/response REST + Bulk + file exchange; status-update endpoints (OrderStatus, InvoiceStatus) for poll / push-status.",
        "rate_limits": "None published; defined per integration agreement. Bulk APIs handle high volume.",
        "objects": "Requisition, RFX (sourcing), Contract, Order (PO), Invoice, Catalog; master data Suppliers / Category / Users"
      },
      "mvm": [
        {
          "object": "Requisition",
          "object_note": "Create the demand",
          "canonical": "role_title, service_category, cost_center, dates",
          "target": "POST api/Requisition/...",
          "required": "Required",
          "notes": "Convention: POST …Details / GET …All / PUT …Status"
        },
        {
          "object": "Sourcing event (RFX)",
          "object_note": "Competitive services",
          "canonical": "service_category, sow.summary, suppliers[]",
          "target": "RFX API",
          "required": "Tenant required",
          "notes": "For competitively sourced services"
        },
        {
          "object": "Order (PO)",
          "object_note": "Transact + back-sync",
          "canonical": "po_lines, supplier, amount",
          "target": "POST api/Order/OrderDetails; GET api/Order/GetPurchaseOrders",
          "required": "Required",
          "notes": "PUT api/Order/OrderStatus for back-sync"
        }
      ],
      "tenant_note": "No open self-service portal — base URL, tenant ID, sandbox and full auth specs are provisioned by GEP during onboarding. Two products: GEP SMART (source-to-pay) and NEXXE (supply chain); GEP QUANTUM is the platform layer."
    },
    {
      "platform": "Globality",
      "key": "globality",
      "category": "Vendor Management & Sourcing",
      "docs_confidence": "Public",
      "generated": true,
      "summary": "Globality is an AI-guided services-sourcing platform. Its public REST API exposes a fixed domain model — Project to Brief to Provider to Proposal to Award — that composerID reads to track services and SOW sourcing intent end to end.",
      "docs_links": [
        {
          "label": "Globality Developer API",
          "url": "https://www.globality.com/products/integrations/developer-api"
        },
        {
          "label": "Integration overview",
          "url": "https://www.globality.com/products/integrations/"
        },
        {
          "label": "OpenAPI spec (spec.json)",
          "url": "https://www.globality.com/wp-content/uploads/2026/06/spec.json"
        },
        {
          "label": "Webhooks documentation (PDF)",
          "url": "https://www.globality.com/wp-content/uploads/2026/05/Globality_Webhooks_Documentation_v8.pdf"
        }
      ],
      "api": {
        "auth": "OAuth 2.0 client-credentials to a Bearer JWT via Auth0 (POST https://globality-prod.auth0.com/oauth/token, audience per environment). Token TTL 24h. Scopes read:project / write:project.",
        "style": "REST (JSON), versioned /v2, OpenAPI / Swagger",
        "base_url": "US https://apis.prod.globality.com  |  EU https://apis.eu.globality.com",
        "webhooks": "Yes — push webhooks (registered in-app). Events: ProjectBriefCompleted/Updated, ProposalSubmitted/Approved, AwardCompleted, ProjectStatusChange. Thin payload to call back to /v2 for detail. Retries at 1/3/6/12/24h.",
        "rate_limits": "Not publicly documented; confirm per tenant.",
        "objects": "Project, Brief, Provider (supplier), Proposal, Award, Files"
      },
      "mvm": [
        {
          "object": "Project (create)",
          "object_note": "Container for sourcing intent",
          "canonical": "service_category, sow.summary, budget, dates",
          "target": "POST /v2/projects",
          "required": "Required",
          "notes": "Project is the sourcing-intent container"
        },
        {
          "object": "Brief (read)",
          "object_note": "Scoped requirement",
          "canonical": "requirement, budget, timeline, services",
          "target": "GET /v2/projects/{id}",
          "required": "Read",
          "notes": "Auto-created from the intake form"
        },
        {
          "object": "Award (read)",
          "object_note": "Outcome / receipt",
          "canonical": "completion, dates, po_ref",
          "target": "webhook AwardCompleted then GET /v2",
          "required": "Read",
          "notes": "Feeds the publish receipt"
        }
      ],
      "tenant_note": "Public docs + OpenAPI, but credentials are customer-gated (an admin assigns the in-app Developer role). Region-specific base URLs and Auth0 audience per environment. The API is read-centric — Project create + status update only; there is no public endpoint to push your own supplier lists. Pre-built connectors exist for Ariba, Fieldglass and Coupa."
    },
    {
      "platform": "SAP BTP",
      "key": "sapbtp",
      "category": "Systems Integrations",
      "docs_confidence": "Public",
      "generated": true,
      "summary": "SAP Business Technology Platform is a generic integration platform, not a single API. composerID treats it as a connectivity fabric — fronting backend systems via API Management, resolving targets via Destinations, authenticating with XSUAA, and receiving callbacks via Event Mesh.",
      "docs_links": [
        {
          "label": "SAP BTP platform docs",
          "url": "https://help.sap.com/docs/btp/sap-business-technology-platform"
        },
        {
          "label": "Integration Suite — OData API",
          "url": "https://help.sap.com/docs/integration-suite/sap-integration-suite/odata-api"
        },
        {
          "label": "Destination service REST API",
          "url": "https://help.sap.com/docs/connectivity/sap-btp-connectivity-cf/calling-destination-service-rest-api"
        },
        {
          "label": "Event Mesh — messaging protocols",
          "url": "https://help.sap.com/docs/event-mesh/event-mesh/messaging-protocols-and-libraries"
        }
      ],
      "api": {
        "auth": "OAuth 2.0 via XSUAA. A service key yields clientid / clientsecret / url, then {url}/oauth/token with client_credentials.",
        "style": "Mixed — OData V2 (Cloud Integration management), REST/JSON (Destination), REST/OData/SOAP proxies (API Management), AMQP/MQTT/REST (Event Mesh)",
        "base_url": "https://{subaccount}-tmn.{region}.hana.ondemand.com/api/v1/...  (tenant + region specific)",
        "webhooks": "Yes — Event Mesh (AMQP 1.0 / MQTT 3.1.1 / HTTP-REST) supports webhook delivery; Advanced Event Mesh for high-throughput streaming. Push + poll.",
        "rate_limits": "No platform-wide figure; API Management is itself the rate-limiter (Quota / Spike Arrest policies you configure). Per service plan.",
        "objects": "Integration iFlows (IntegrationDesigntimeArtifacts / RuntimeArtifacts), API Proxies / Products, Destinations, Event Mesh queues / topics / webhooks"
      },
      "mvm": [
        {
          "object": "Destination (resolve)",
          "object_note": "Find the backend",
          "canonical": "target_system_name",
          "target": "/destination-configuration/v1/destinations/{name}",
          "required": "Required",
          "notes": "Resolves URL + auth at runtime"
        },
        {
          "object": "iFlow (publish)",
          "object_note": "Map + deliver",
          "canonical": "canonical payload",
          "target": "Cloud Integration iFlow endpoint",
          "required": "Tenant build",
          "notes": "Field mapping happens inside the iFlow"
        },
        {
          "object": "Event subscription",
          "object_note": "Back-sync",
          "canonical": "topic / queue",
          "target": "Event Mesh webhook",
          "required": "Optional",
          "notes": "Receives backend status callbacks"
        }
      ],
      "tenant_note": "Public docs, account-gated provisioning (global account to subaccount to service instances + keys). Hostnames embed tenant + region. A free / trial tier and the Business Accelerator Hub sandbox are available. For VMS use, front each backend behind API Management + Destinations + Event Mesh."
    },
    {
      "platform": "Zip",
      "key": "zip",
      "category": "Procurement Orchestration",
      "docs_confidence": "Customer",
      "generated": true,
      "summary": "Zip is an intake-to-procure orchestration platform — one front door for any purchase request that routes through the right approvals and into the ERP. Its REST API and low-code App Studio let partners read and write Zip's procurement objects, so composerID can publish canonical intent as an intake request and track it through to purchase order.",
      "docs_links": [
        {
          "label": "Zip — Intake-to-Procure",
          "url": "https://zip.com/products/intake-to-procure"
        },
        {
          "label": "Zip App Studio (low-code integrations)",
          "url": "https://zip.com/products/app-studio"
        },
        {
          "label": "Zip integration ecosystem",
          "url": "https://zip.com/capabilities/integration-ecosystem"
        },
        {
          "label": "Zip for Procurement",
          "url": "https://zip.com/solutions/procurement"
        }
      ],
      "api": {
        "auth": "Credential-based — unique keys issued per partner for separate sandbox and production environments. Build and certify against sandbox, then enable in production. No public self-service signup.",
        "style": "REST (JSON request/response, standard HTTP status codes). App Studio adds low-code REST/SOAP endpoint actions, triggers and branching.",
        "base_url": "Provisioned per customer (sandbox + production). No single public base URL.",
        "webhooks": "Event-driven via App Studio triggers + bi-directional sync; integration status and activity logs. Push or poll depending on the configured action.",
        "rate_limits": "Not publicly documented; defined per partner integration agreement.",
        "objects": "Intake / purchase request, Requisition, Vendor (supplier), Contract, Purchase Order, Invoice"
      },
      "mvm": [
        {
          "object": "Intake request",
          "object_note": "The single front door",
          "canonical": "role_title, service_category, cost_center, dates, amount",
          "target": "Intake / Purchase Request (App Studio action)",
          "required": "Required",
          "notes": "Zip routes it through the right approvals"
        },
        {
          "object": "Vendor",
          "object_note": "Resolve / onboard supplier",
          "canonical": "supplier_name, tax_id, contact",
          "target": "Vendor object",
          "required": "Tenant required",
          "notes": "Vendor onboarding gates the PO"
        },
        {
          "object": "Purchase Order",
          "object_note": "Transact + back-sync",
          "canonical": "po_lines, supplier, amount, status",
          "target": "Purchase Order object",
          "required": "Read",
          "notes": "Read for reconciliation / liveness"
        }
      ],
      "tenant_note": "Zip is configuration-heavy: intake forms, approval chains, custom fields and routing logic are tenant-defined in the workflow builder, and App Studio is the supported low-code path for custom triggers and actions. The API surface is partner-gated — endpoints, credentials and base URLs are provisioned by Zip during onboarding. Note: ziphq.com (now zip.com) is the procurement platform, which is unrelated to the Zip Co buy-now-pay-later product at zip.co."
    },
    {
      "platform": "ORO Labs",
      "key": "oro",
      "category": "Procurement Orchestration",
      "docs_confidence": "Customer",
      "generated": true,
      "summary": "ORO Labs is an AI procurement-orchestration platform built on an embedded iPaaS. Rather than one public REST object model, ORO federates 200+ semantically rich integrations across ERP, procure-to-pay, contract and risk systems. composerID maps canonical intent onto ORO's intake-request and workflow objects so services and contingent demand enter the orchestrated source-to-pay flow.",
      "docs_links": [
        {
          "label": "ORO Labs — Integrations",
          "url": "https://www.orolabs.ai/platform/integrations"
        },
        {
          "label": "ORO Labs — Platform overview",
          "url": "https://www.orolabs.ai/platform/overview"
        },
        {
          "label": "ORO Labs — Intake management",
          "url": "https://www.orolabs.ai/solutions/intake-management"
        },
        {
          "label": "ORO Labs — Agentic AI",
          "url": "https://www.orolabs.ai/platform/agentic-ai"
        }
      ],
      "api": {
        "auth": "SSO + role-based access control with encryption; SOC 1, SOC 2 and ISO 42001 (responsible AI) certified. API credentials are provisioned per customer — no public self-service developer portal.",
        "style": "Embedded iPaaS connectors (semantically rich — the platform understands suppliers, line items and contracts) rather than a single public REST surface; workflow triggers + real-time data sync.",
        "base_url": "Per-customer tenant, provisioned at onboarding. No public base URL.",
        "webhooks": "Real-time data sharing and activity triggering across systems via the embedded iPaaS; event-driven workflow triggers. Delivery specs provisioned per integration.",
        "rate_limits": "Not publicly documented; defined per integration.",
        "objects": "Intake request, Approval, Supplier, Contract, Risk assessment, Purchase Order, Invoice (source-to-pay)"
      },
      "mvm": [
        {
          "object": "Intake request",
          "object_note": "Start the orchestration",
          "canonical": "service_category, sow.summary, budget, dates",
          "target": "Intake request (orchestrated workflow)",
          "required": "Required",
          "notes": "Routes through the configured source-to-pay flow"
        },
        {
          "object": "Supplier",
          "object_note": "Resolve + risk",
          "canonical": "supplier_name, tax_id, risk_flags",
          "target": "Supplier object + risk assessment",
          "required": "Tenant required",
          "notes": "Risk / onboarding gates progression"
        },
        {
          "object": "Contract / PO",
          "object_note": "Back-sync",
          "canonical": "contract_ref, po_lines, amount, status",
          "target": "Contract + PO via iPaaS connector",
          "required": "Read",
          "notes": "Synced from the downstream ERP / P2P system"
        }
      ],
      "tenant_note": "ORO is an orchestration layer, not a transactional system of record — it federates to your ERP / P2P (SAP, Oracle, NetSuite, Coupa, Ariba, JAGGAER, GEP) through its embedded iPaaS. There is no public REST object catalogue; integration is delivered via ORO's connector framework and provisioned per customer. Public API, auth and webhook specifications are not published."
    }
  ]
}