Category: Vendor Management & Sourcing. Coverage status: Specification mapped. Vendor documentation: public developer portal.
Integration path
How composerID connects to this destination, at a glance.Vendor documentation
Beeline Developers Portal
API catalog
Authentication overview
Integration use cases
FAQ (rate limits, tokens, webhooks)
Reporting as a Service (RaaS)
Supplemental Data Service (report-based reads)
API posture
Publish target and field mapping
Each object below pairs the canonical intent fields with the destination’s own fields and operations. The mapping is indicative until it is confirmed against a tenant at onboarding.Business Intake Request
Create the worker request
Business Intake Request
Create the worker request
Intent ID correlation
Carry the Intent ID
Intent ID correlation
Carry the Intent ID
Statement of Work
Services channel: read, approve, reconcile
Statement of Work
Services channel: read, approve, reconcile
Worker / Assignment
Read back the engagement
Worker / Assignment
Read back the engagement
Bulk read
Reconciliation at programme scale
Bulk read
Reconciliation at programme scale
Deep links and scenarios
Each scenario names the direction of travel (publish, read or round-trip), the flow, and the vendor APIs it uses. Deep-link shapes are illustrative and confirmed per tenant.Open a job (contingent request)
Publish
Open a job (contingent request)
Publish
Triage classifies the request as contingent; composerID publishes it through the Business Intake API with the Intent ID in the request’s externalId, a stock field that is filterable on reads, so the record is re-findable without storing Beeline internals. The intake appears in Beeline ready for the MSP to progress; the receipt links to the intake record, and the request link attaches when the MSP converts it.APIs: business-intake_2025-01-01 · client-defined-values (optional visible field)Deep link:
{tenant_host}/intakes/{intake_id} (illustrative)Partially complete a form
Round-trip
Partially complete a form
Round-trip
Beeline’s own Request Intake scenario: an intake starts in an external system and is automated into Beeline, where the MSP reviews the form and creates the corresponding Request. The Intake Form API takes exactly one required field: a client-supplied trackingNumber, which carries the Intent ID. Everything else is free-text pre-fill for what Triage captured, and the deep link lands the MSP or manager on the form to finish the tenant-only fields. Nothing is retyped, and the form is queryable by tracking number.APIs: worker-management_2023-07-01 (#tag/Request, intake-process/request-forms) · program-data + foundational (valid picklist values)Deep link:
{tenant_host}/intakes/{intake_id} (illustrative)Open a bid / track supplier responses
Read
Open a bid / track supplier responses
Read
Once the request is live, bid and candidate-submission events arrive through the Webhook Management API. A candidate submission with its resume lands on the intent timeline as it happens, and the deep link opens the request’s candidate list in Beeline.APIs: webhook-management_2023-07-01 (bid.submitted, candidate.submitted) · worker-management (#tag/Candidate)Deep link:
{tenant_host}/requests/{request_id}/candidates (illustrative)Follow an SoW (services channel)
Read
Follow an SoW (services channel)
Read
Statements of Work are created inside Beeline. Its API exposes no SOW create endpoint, and this page does not pretend otherwise. What the API does give the intent timeline: approval-stage webhooks as the SOW moves through its lifecycle, real-time reads of the SOW, its milestones and payments for reconciliation, and approve/reject calls on SOWs and milestone payments from wherever the approver works.APIs: sow_2025-01-01 (Project Agreement Management: reads + approvals) · webhook-management (SOW events)Deep link:
{tenant_host}/sows/{sow_id} (illustrative)Approve time and spend where it happens
Read
Approve time and spend where it happens
Read
A timesheet submitted in Beeline raises a webhook; composerID retrieves the timesheet and financial detail so spend appears against the Intent ID, and can approve or reject it. Project milestone payments follow the same pattern: a pending event, a read, and an approve/reject call from wherever the approver works.APIs: bte_2023-07-01 (#tag/Timesheet: read + approve/reject) · sow_2025-01-01 (milestone payments) · webhook-management (timesheet.submittedforapproval)
Programme-scale reconciliation
Read
Programme-scale reconciliation
Read
Any Report Builder report becomes a JSON endpoint through Reporting-as-a-Service, one report per call, so composerID sweeps a programme for drift with a report keyed on externalId instead of polling record by record. Attachments come back as binary through the Attachment API when the evidence pack needs the source documents.APIs: RaaS (supplemental-data_2025-09-01, scope run:raas) · attachment_2025-01-01
What crosses the boundary
Triage decides and keeps the evidence; Beeline receives a valid request and the identifier that ties it back. This is the complete outbound payload of a contingent publish, taken from the create schema of business-intake_2025-01-01.Sent
Read back
- Webhook events as references: the event id, type, time and the Beeline record ids needed for a deep link.
- Request and intake status, so the timeline shows where the request has reached.
- Assignment dates, rate and status, compared against the Intent Record to detect drift.
- SOW approval state, milestones and payments for the services channel.
- Timesheet and financial detail, so spend appears against the Intent ID.
- Programme-wide reads through a RaaS report keyed on externalId, instead of polling record by record.
Never sent
This list is a promise composerID keeps true: none of the following crosses the boundary.
- The diagnostic conversation: questions asked, answers given, scores, rankings or override events.
- The Compliance File, or any link that would expose it without authentication.
- Candidate or worker personal data. composerID collects none, and resumes stay in Beeline unless a programme puts them in scope.
- Rates, budgets or commercial terms beyond what the programme’s mapping explicitly includes.
- Credentials, tokens or signing material belonging to any other system.
Access we ask for
Beeline grants scopes per API product, so least privilege is checkable rather than promised. This is the full grant we ask for, and the grant we do not.Excluded: No Foundational Data writes (write:iam, write:org, write:user, write:spend_authority), no supplier or invoice scopes, and no approval-write scopes. Approving time or candidates from a chat surface needs write:bte or write:candidate, which stays a separate and explicit grant rather than something bundled into the publish integration.
What proven will mean
- Publish a contingent request end to end with the Intent ID in externalId, re-find it by the list filter, and replay a duplicate publish without creating a second record.
- Create a webhook subscription, prove endpoint ownership with the validate handshake, verify delivery authenticity with the agreed method, and recover a deliberately missed event from event history.
- Show preflight reading the site’s own required fields and picklists, and rejecting an incomplete publish before it reaches Beeline.
- Produce a field-level mapping document for the site. Only then does the public coverage status move beyond what the specifications alone support.
Everything on this page is verified against Beeline’s published OpenAPI specifications (vendored with provenance in the engineering repo, 2026-08-13); it has not yet been exercised against a tenant. That is the sandbox phase, and the exit criteria are published on this page. Beeline programmes carry tenant-specific configuration: picklists and mandatory fields per programme, client-defined field definitions, and webhook subscriptions enabled per site. Scopes are granted per API product at onboarding, so preflight reads the tenant’s own required-field set rather than assuming this page’s list. Beeline documents no idempotency header, so duplicate safety is built on the externalId filter (find before create). Deep-link URL shapes on this page are illustrative and confirmed per tenant; the IDs they carry come from the APIs above.
Next steps
How composerID connects
The five ways composerID reaches a destination, and the minimum a destination must offer.
Publishing
Plan, preflight and publish: how a decision becomes a valid record in a destination.
All destinations
Every destination composerID documents, with its category and coverage status.