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

# SAP Ariba

> SAP Ariba (Vendor Management & Sourcing): the API posture, publish target and field mapping composerID publishes a decision reference through.

This page records how composerID publishes into SAP Ariba: 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.

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.

<Info>
  Category: Vendor Management & Sourcing. Coverage status: Specification mapped. Vendor documentation: public developer portal.
</Info>

## Integration path

How composerID connects to this destination, at a glance.

| Step                 | Detail                                                                                                         |
| -------------------- | -------------------------------------------------------------------------------------------------------------- |
| Authentication       | OAuth 2.0 client-credentials PLUS a per-API Application Key.                                                   |
| composerID publishes | Requisition (Contingent): Operational Requisition / Sourcing Request                                           |
| Intent ID lands on   | `requisition` `extrinsic.IntentID`, written into 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="SAP Business Accelerator Hub: Ariba REST APIs" icon="external-link" href="https://api.sap.com/package/SAPAribaOpenAPIs/rest" horizontal />

  <Card title="Making REST API calls with OAuth token + application key" icon="external-link" href="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" horizontal />

  <Card title="SAP Ariba SOAP Web Service APIs" icon="external-link" href="https://help.sap.com/docs/strategic-sourcing/soap-web-service-api-integration/what-are-sap-ariba-soap-web-service-apis" horizontal />

  <Card title="SAP Ariba Developer Portal" icon="external-link" href="https://developer.ariba.com/" horizontal />
</Columns>

## API posture

| Aspect         | Detail                                                                                                                                                                                                                                    |
| -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Authentication | 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](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\\}](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.                                                                                                     |
| Events posture | Polling                                                                                                                                                                                                                                   |
| 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)                                                                                                                      |

## 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="Requisition (Contingent)" icon="arrow-right-left" description="Create external worker request">
    | Mapping                  | Detail                                                         |
    | ------------------------ | -------------------------------------------------------------- |
    | Canonical to destination | role\_title, location, start\_date, cost\_center, worker\_type |
    | Target                   | Operational Requisition / Sourcing Request                     |
    | Requirement              | Required + tenant required                                     |
    | Notes                    | Preflight enforces tenant-required fields                      |
  </Accordion>

  <Accordion title="Statement of Work" icon="arrow-right-left" description="Services / SOW engagement">
    | Mapping                  | Detail                                                          |
    | ------------------------ | --------------------------------------------------------------- |
    | Canonical to destination | service\_category, sow\.summary, deliverables\[], budget, dates |
    | Target                   | Contract Workspace (SOW type)                                   |
    | Requirement              | Often tenant required                                           |
    | Notes                    | SOW is modelled as a contract-workspace type                    |
  </Accordion>

  <Accordion title="Purchase Order" icon="arrow-right-left" description="Transact the order">
    | Mapping                  | Detail                       |
    | ------------------------ | ---------------------------- |
    | Canonical to destination | po\_lines, supplier, amount  |
    | Target                   | cXML PO over Ariba Network   |
    | Requirement              | Network-dependent            |
    | Notes                    | Transacted via Ariba Network |
  </Accordion>

  <Accordion title="Intent ID correlation" icon="arrow-right-left" description="Carry the Intent ID">
    | Mapping                  | Detail                                                                                 |
    | ------------------------ | -------------------------------------------------------------------------------------- |
    | Canonical to destination | intent\_id, intent\_version                                                            |
    | Target                   | cXML Extrinsic / custom field on the requisition                                       |
    | Requirement              | Required                                                                               |
    | Notes                    | Extrinsics ride existing cXML documents; realm-level app approval governs write access |
  </Accordion>
</AccordionGroup>

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