Oracle E-Business Suite · Arazzo Workflow

Oracle EBS Procure-to-Pay

Version 1.0.0

Resolve a supplier, raise a purchase order, confirm it, then record the matching AP invoice.

1 workflow 2 source APIs 1 provider
View Spec View on GitHub Business ApplicationsE-Business SuiteEnterpriseERPOracleArazzoWorkflows

Provider

oracle-e-business-suite

Workflows

procure-to-pay
Find a supplier, create a purchase order, and book the AP invoice.
Resolves a supplier by name, raises a standard purchase order for a single line item, fetches the order to confirm it, and creates an Accounts Payable invoice for the same vendor and amount.
4 steps inputs: currencyCode, invoiceDate, invoiceNum, itemId, quantity, unitPrice, vendorName outputs: authorizationStatus, invoiceId, poHeaderId, vendorId
1
findSupplier
Search the supplier master for a vendor matching the supplied name, returning the first match.
2
createPurchaseOrder
Create a standard purchase order for the resolved supplier with a single line for the requested item, quantity, and price.
3
confirmPurchaseOrder
Read the created purchase order back by its header identifier to confirm it persisted and capture its authorization status.
4
createInvoice
Book an Accounts Payable invoice for the same vendor and order total so the purchase can be paid.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Oracle EBS Procure-to-Pay
  summary: Resolve a supplier, raise a purchase order, confirm it, then record the matching AP invoice.
  description: >-
    A core Oracle E-Business Suite buy-side flow. The workflow first locates an
    approved supplier by name, creates a standard purchase order against that
    vendor, reads the created order back to capture its header identifier, and
    finally books an Accounts Payable invoice referencing the same vendor and
    amount. Each step inlines its request so the procure-to-pay chain can be
    read and executed without opening the underlying OpenAPI descriptions.
  version: 1.0.0
  x-realizes-capability-ids:
  - BC-200.20
  - BC-500.30
  x-capability-derivation:
    method: 'deterministic join: sourceDescriptions -> per-tag OpenAPI -> tag/capability edge. No classification at this step.'
    min_confidence: 0.7
    sources:
    - capability_id: BC-200.20
      capability_name: Accounts Payable Management
      spec: oracle-e-business-suite-accounts-payable-api-openapi.yml
      confidence: 0.95
    - capability_id: BC-500.30
      capability_name: Purchase Order Management
      spec: oracle-e-business-suite-purchasing-api-openapi.yml
      confidence: 0.85
    model: Turbo EA Capabilities by Vincent Verdet — Turbo EA, https://github.com/vincentmakes/turbo-ea-capabilities, CC BY 4.0
sourceDescriptions:
- name: accountsPayableApi
  url: ../openapi/oracle-e-business-suite-accounts-payable-api-openapi.yml
  type: openapi
- name: purchasingApi
  url: ../openapi/oracle-e-business-suite-purchasing-api-openapi.yml
  type: openapi
workflows:
- workflowId: procure-to-pay
  summary: Find a supplier, create a purchase order, and book the AP invoice.
  description: >-
    Resolves a supplier by name, raises a standard purchase order for a single
    line item, fetches the order to confirm it, and creates an Accounts Payable
    invoice for the same vendor and amount.
  inputs:
    type: object
    required:
    - vendorName
    - itemId
    - quantity
    - unitPrice
    - currencyCode
    - invoiceNum
    - invoiceDate
    properties:
      vendorName:
        type: string
        description: Supplier name to search for (supports wildcards).
      itemId:
        type: integer
        description: Inventory item identifier to purchase.
      quantity:
        type: number
        description: Quantity to order.
      unitPrice:
        type: number
        description: Unit price for the purchase order line.
      currencyCode:
        type: string
        description: Currency code for the order and invoice.
      invoiceNum:
        type: string
        description: Supplier invoice number to record in Accounts Payable.
      invoiceDate:
        type: string
        description: Invoice date in YYYY-MM-DD format.
  steps:
  - stepId: findSupplier
    description: >-
      Search the supplier master for a vendor matching the supplied name,
      returning the first match.
    operationId: getSuppliers
    parameters:
    - name: vendorName
      in: query
      value: $inputs.vendorName
    - name: limit
      in: query
      value: 1
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      vendorId: $response.body#/items/0/vendorId
      vendorSiteId: $response.body#/items/0/sites/0/vendorSiteId
      termsId: $response.body#/items/0/termsId
  - stepId: createPurchaseOrder
    description: >-
      Create a standard purchase order for the resolved supplier with a single
      line for the requested item, quantity, and price.
    operationId: createPurchaseOrder
    requestBody:
      contentType: application/json
      payload:
        vendorId: $steps.findSupplier.outputs.vendorId
        vendorSiteId: $steps.findSupplier.outputs.vendorSiteId
        currencyCode: $inputs.currencyCode
        typeLookupCode: STANDARD
        termsId: $steps.findSupplier.outputs.termsId
        lines:
        - lineNum: 10
          itemId: $inputs.itemId
          quantity: $inputs.quantity
          unitPrice: $inputs.unitPrice
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      poHeaderId: $response.body#/poHeaderId
      totalAmount: $response.body#/totalAmount
  - stepId: confirmPurchaseOrder
    description: >-
      Read the created purchase order back by its header identifier to confirm
      it persisted and capture its authorization status.
    operationId: getPurchaseOrderById
    parameters:
    - name: poHeaderId
      in: path
      value: $steps.createPurchaseOrder.outputs.poHeaderId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      authorizationStatus: $response.body#/authorizationStatus
  - stepId: createInvoice
    description: >-
      Book an Accounts Payable invoice for the same vendor and order total so
      the purchase can be paid.
    operationId: createApInvoice
    requestBody:
      contentType: application/json
      payload:
        invoiceNum: $inputs.invoiceNum
        vendorId: $steps.findSupplier.outputs.vendorId
        vendorSiteId: $steps.findSupplier.outputs.vendorSiteId
        invoiceAmount: $steps.createPurchaseOrder.outputs.totalAmount
        invoiceCurrencyCode: $inputs.currencyCode
        invoiceDate: $inputs.invoiceDate
        invoiceType: STANDARD
        termsId: $steps.findSupplier.outputs.termsId
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      invoiceId: $response.body#/invoiceId
  outputs:
    vendorId: $steps.findSupplier.outputs.vendorId
    poHeaderId: $steps.createPurchaseOrder.outputs.poHeaderId
    authorizationStatus: $steps.confirmPurchaseOrder.outputs.authorizationStatus
    invoiceId: $steps.createInvoice.outputs.invoiceId

Work with this as data

Every workflow here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for arazzo workflows

4 MCP tools reach this
  • find_arazzoBrowse and filter every workflow in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This workflow
curl "https://apis.io/api/v1/arazzo/oracle-e-business-suite-procure-to-pay-workflow"
All arazzo workflows
curl "https://apis.io/api/v1/arazzo?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.