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

# Oracle

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

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

Oracle Fusion Cloud ERP/Procurement is a financial-commitment system of record for the outsourced work-order channel. composerID raises a Purchase Requisition (or Purchase Order, where policy allows) through the Fusion REST APIs, carries the Intent ID in a Descriptive Flexfield, and reconciles PO lifecycle changes back onto the intent timeline.

<Info>
  Category: ERP. 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 via OCI IAM identity domains - create a confidential application (client credentials for server-to-server, or JWT/certificate assertion); the Client ID must also exist as a Fusion user with the right roles. |
| composerID publishes | Purchase Requisition: POST /fscmRestApi/resources/\{v}/purchaseRequisitions (+ submit-for-approval action)                                                                                                               |
| Intent ID lands on   | `purchase_requisition` `DFF.intentId`, written into the destination record                                                                                                                                               |
| Back-sync            | Webhooks and polling: some lifecycle events are pushed, the rest are read on a schedule.                                                                                                                                 |

## Vendor documentation

<Columns cols={2}>
  <Card title="REST API for Oracle Fusion Cloud Procurement" icon="external-link" href="https://docs.oracle.com/en/cloud/saas/procurement/" horizontal />

  <Card title="Purchase Orders REST endpoints" icon="external-link" href="https://docs.oracle.com/en/cloud/saas/procurement/25c/fapra/api-purchase-orders.html" horizontal />

  <Card title="Purchase Requisitions REST endpoints" icon="external-link" href="https://docs.oracle.com/en/cloud/saas/procurement/20b/fapra/api-purchase-requisitions.html" horizontal />
</Columns>

## API posture

| Aspect         | Detail                                                                                                                                                                                                                                                                                                         |
| -------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Authentication | OAuth 2.0 via OCI IAM identity domains - create a confidential application (client credentials for server-to-server, or JWT/certificate assertion); the Client ID must also exist as a Fusion user with the right roles. Basic auth works but fails once MFA is enforced - treat OAuth as the production path. |
| Style          | REST, JSON (ADF-based resources; newer BOSS v1 endpoints use /api/boss/... paths); offset/limit pagination with hasMore                                                                                                                                                                                        |
| Base URL       | https\://\{instance}.fa.\{datacenter}.oraclecloud.com/fscmRestApi/resources/\{version}  (e.g. 11.13.18.05)                                                                                                                                                                                                     |
| Webhooks       | ERP business events consumed via Oracle Integration (OIC) or polling; no plain public webhook registry on the REST resources themselves.                                                                                                                                                                       |
| Events posture | Webhooks and polling                                                                                                                                                                                                                                                                                           |
| Rate limits    | Throttled per identity domain (unofficially \~5,000 calls/hour/user); 429 on breach - keep publishing transactional, use FBDI/bulk paths for volume.                                                                                                                                                           |
| Objects        | purchaseRequisitions (header/lines + submit action), purchaseOrders (+ communicateOnePurchaseOrder and other actions), draft POs, suppliers, receipts; Descriptive Flexfields (DFFs) on both PR and PO                                                                                                         |

## 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="Purchase Requisition" icon="arrow-right-left" description="Raise the demand">
    | Mapping                  | Detail                                                                                         |
    | ------------------------ | ---------------------------------------------------------------------------------------------- |
    | Canonical to destination | description, service\_category, cost\_center, budget, dates                                    |
    | Target                   | POST /fscmRestApi/resources/\{v}/purchaseRequisitions (+ submit-for-approval action)           |
    | Requirement              | Required                                                                                       |
    | Notes                    | Preparer coupling: the API user must be the requisition preparer (error POR-2010915 otherwise) |
  </Accordion>

  <Accordion title="Purchase Order" icon="arrow-right-left" description="Commit the spend">
    | Mapping                  | Detail                                                   |
    | ------------------------ | -------------------------------------------------------- |
    | Canonical to destination | supplier, amount, currency, dates                        |
    | Target                   | purchaseOrders REST resource                             |
    | Requirement              | Tenant                                                   |
    | Notes                    | Direct PO create/communicate where program policy allows |
  </Accordion>

  <Accordion title="Intent ID + back-sync" icon="arrow-right-left" description="Correlate and reconcile">
    | Mapping                  | Detail                                                              |
    | ------------------------ | ------------------------------------------------------------------- |
    | Canonical to destination | intent\_id (DFF attribute); PO/receipt changes                      |
    | Target                   | Descriptive Flexfield + ERP business events via OIC / delta polling |
    | Requirement              | Required                                                            |
    | Notes                    | DFFs carry the correlation on both PR and PO                        |
  </Accordion>
</AccordionGroup>

<Note>
  Auth is per identity domain: register the confidential app in OCI IAM and mirror its Client ID as a Fusion user with matching roles - a token alone is not enough. Version strings matter (resources exist in multiple versions; newer BOSS v1 endpoints use a different path shape). DFF segments are tenant-configured, so agree the Intent ID segment name per tenant. The API user must be a valid preparer for requisition creation.
</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>
