> ## Documentation Index
> Fetch the complete documentation index at: https://www.composer.id/llms.txt
> Use this file to discover all available pages before exploring further.

# Fairmarkit

> Fairmarkit (Procurement Orchestration): the API posture, publish target and field mapping composerID publishes a decision reference through.

This page records how composerID publishes into Fairmarkit: the vendor's API posture, the publish target and field mapping, and the documentation each claim rests on. It is for anyone evaluating the connection or building against it.

Fairmarkit is an autonomous sourcing platform: a request arrives from a connected P2P or ERP requisition or from its own intake form, Fairmarkit turns it into a competitive RFQ or RFP event, recommends and invites suppliers, collects bids and returns the award to the system of record. It exposes REST APIs covering sourcing events, bids and suppliers to customers and integration partners, with the endpoint reference behind the customer login rather than on an open developer portal. composerID publishes a services sourcing request for a Triage decision and records the linkage to the resulting Fairmarkit request on its own side, moving the Intent ID onto the request's external reference or a custom intake field once the tenant confirms which slot is free.

<Info>
  Category: Procurement Orchestration. Coverage status: Specification mapped. Vendor documentation: gated (customer or SKU documentation). No developer portal is evident.
</Info>

## Integration path

How composerID connects to this destination, at a glance.

| Step                 | Detail                                                                                                         |
| -------------------- | -------------------------------------------------------------------------------------------------------------- |
| Authentication       | Per-tenant API credentials issued by Fairmarkit at onboarding, exchanged for a bearer token.                   |
| composerID publishes | Sourcing request: Request create; Fairmarkit converts the request into an RFQ / RFP event                      |
| Intent ID lands on   | `Request` `request.external_reference`, held by composerID against the destination record                      |
| Back-sync            | Polling: the destination publishes no events composerID can subscribe to, so state is read back on a schedule. |

## Vendor documentation

<Columns cols={2}>
  <Card title="Fairmarkit platform overview" icon="external-link" href="https://www.fairmarkit.com/" horizontal />

  <Card title="Fairmarkit integrations (P2P, ERP, e-signature)" icon="external-link" href="https://www.fairmarkit.com/integrations" horizontal />
</Columns>

## API posture

| Aspect         | Detail                                                                                                                                                                                                                                                                                                                       |
| -------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Authentication | Per-tenant API credentials issued by Fairmarkit at onboarding, exchanged for a bearer token. The grant type (static API key or OAuth 2.0 client credentials) is indicative until confirmed at onboarding; the reference sits behind the customer login.                                                                      |
| Style          | REST, JSON                                                                                                                                                                                                                                                                                                                   |
| Base URL       | Tenant-specific API host supplied at onboarding; no openly published base URL.                                                                                                                                                                                                                                               |
| Webhooks       | No openly published webhook subscription contract. Fairmarkit's P2P and ERP connectors return the award to the source requisition, but that hand-back is connector plumbing, not a subscribable event feed. Treat integration as poll-first on request and event status until a webhook contract is confirmed at onboarding. |
| Events posture | Polling                                                                                                                                                                                                                                                                                                                      |
| Rate limits    | Not published openly. Confirm limits and retry guidance at onboarding and apply exponential backoff on 429.                                                                                                                                                                                                                  |
| Objects        | requests (sourcing intake, including auto-sourced tail-spend requests), sourcing events (RFQ / RFP), bids and quotes, awards, suppliers and supplier recommendations; requisition and PO references where a connected P2P supplies them                                                                                      |

## 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.

<AccordionGroup>
  <Accordion title="Sourcing request" icon="arrow-right-left" description="Open the services sourcing event">
    | Mapping                  | Detail                                                                                                                                                                                                                                                                         |
    | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
    | Canonical to destination | service\_category, scope.summary, deliverables\[], budget, start\_date, end\_date, cost\_center, requester                                                                                                                                                                     |
    | Target                   | Request create; Fairmarkit converts the request into an RFQ / RFP event                                                                                                                                                                                                        |
    | Requirement              | Required                                                                                                                                                                                                                                                                       |
    | Notes                    | The request is Fairmarkit's intake object and the only thing composerID creates; Fairmarkit's own logic converts it into a competitive event and invites suppliers. Intake forms are tenant-configured, so the exact field names are indicative until confirmed at onboarding. |
  </Accordion>

  <Accordion title="Intent ID correlation" icon="arrow-right-left" description="Carry the Intent ID">
    | Mapping                  | Detail                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
    | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
    | Canonical to destination | intent\_id -> request.external\_reference (indicative), else a custom intake field; link-mode until the slot is confirmed                                                                                                                                                                                                                                                                                                                                                                                           |
    | Target                   | Client-supplied reference on the Request, the slot the P2P connectors fill with the source requisition number                                                                                                                                                                                                                                                                                                                                                                                                       |
    | Requirement              | Required                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
    | Notes                    | Fairmarkit requests carry the source requisition reference when fed by a P2P, so a client-supplied reference exists; its API name is not published openly and the field here is indicative. composerID records the request id against the Intent ID on its side (mode link) and stamps the reference once the tenant confirms the slot is not reserved for a live P2P requisition number; a custom intake field is the fallback. Deep link https\://\{tenant\_host}/requests?search=\{external\_id} (illustrative). |
  </Accordion>

  <Accordion title="Supplier" icon="arrow-right-left" description="Resolve incumbents and preferred suppliers">
    | Mapping                  | Detail                                                                                                                       |
    | ------------------------ | ---------------------------------------------------------------------------------------------------------------------------- |
    | Canonical to destination | supplier\_name, supplier\_external\_id, category                                                                             |
    | Target                   | Supplier reads                                                                                                               |
    | Requirement              | Read scope only                                                                                                              |
    | Notes                    | Used to pin an incumbent or preferred supplier onto the request when the Triage decision names one; never creates suppliers. |
  </Accordion>

  <Accordion title="Award read-back" icon="arrow-right-left" description="Close the loop">
    | Mapping                  | Detail                                                                                                                                                                                   |
    | ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
    | Canonical to destination | event\_status, awarded\_supplier, awarded\_amount, bid\_count                                                                                                                            |
    | Target                   | Event, bid and award reads filtered by request                                                                                                                                           |
    | Requirement              | Read scope only                                                                                                                                                                          |
    | Notes                    | Poll on request and event status until a webhook contract is confirmed; the award, and any PO number the connected P2P returns, are recorded against the Intent ID on composerID's side. |
  </Accordion>
</AccordionGroup>

<Note>
  Only the tenant can tell us what the API reference actually says: Fairmarkit issues credentials and the endpoint reference per customer, so the auth grant, base host, request field names, rate limits and any webhook contract stated here are indicative until read at onboarding. Intake forms are configured per tenant, so agree at onboarding which request field receives the Intent ID (the client-supplied external reference if it is free, a custom intake field if that slot is reserved for a P2P requisition number) and confirm the field is searchable in the request list before flipping the carrier from link to stamp. Where Fairmarkit is fed by a connected P2P (Coupa, Ariba, Jaggaer, Ivalua), decide whether composerID publishes to Fairmarkit directly or to the P2P and lets the existing connector carry the reference through; never both, or one decision produces two sourcing events.
</Note>

## Next steps

<Columns cols={3}>
  <Card title="How composerID connects" icon="plug-zap" href="/guides/connect">
    The five ways composerID reaches a destination, and the minimum a destination must offer.
  </Card>

  <Card title="Publishing" icon="send" href="/concepts/publishing">
    Plan, preflight and publish: how a decision becomes a valid record in a destination.
  </Card>

  <Card title="All destinations" icon="plug" href="/destinations">
    Every destination composerID documents, with its category and coverage status.
  </Card>
</Columns>
