Skip to main content

Get help for ARIS Process Mining functions and services

HTTP extraction from Coupa

Use the following settings to configure the connection and HTTP extraction for a Coupa system.

Disclaimer

Any references to third-party applications in this documentation are provided solely for informational purposes. Such references do not constitute any contractual commitment, representation, or warranty of any kind. The information is provided “as is,” and no guarantee is made as to the accuracy, completeness, or currentness of information relating to third-party applications.

Connection

REST-API base URL

The typical base URL for Coupa REST APIs follows this format.

https://{instance_name}.coupahost.com

Key points:

  • Replace <instance_name> with your company instance name.

Test-connection resources

The simplest endpoint to test connectivity:

GET /api/invoices

Supported authentication methods

  • Bearer token

  • OAuth 2.0 (client credentials)

    Requires:

    • Client ID

    • Client Secret

    • Scope(s)

Tip

Use the Setup in Coupa to create a new OAuth client. Select the scopes that the client can access. Common mandatory scopes are openid, profile, email, offline_access, and core.common.read. Wenn saving the new client, Coupa generates the client ID and client secret. For more information on using the Coupa Setup, please refer to the Coupa documentation.

Permissions or scopes

Scopes define access to specific resources.

Examples

Resource

Endpoint(s)

Scope(s)

Accounts

GET /accounts, POST /accounts
core.accounting.read, core.accounting.write

Invoices

GET /invoices, POST /invoices
core.invoice.read, core.invoice.write

Extraction

Coupa API Resource Endpoints

Note that each sample response structure is simplified to show the main fields typically returned by Coupa. Actual responses may include more nested objects and links.

Resource type

Endpoint

Method

Sample response structure

Invoices

/api/invoices
GET
{"invoices":[{"id":"","invoice_number":"","supplier":{"id":"","name":""},"status":"","total":"","currency":"","created_at":"","updated_at":""}]}

Purchase orders

/api/purchase_orders
GET
{"purchase_orders":[{"id":"","po_number":"","supplier":{"id":"","name":""},"status":"","total":"","currency":"","created_at":"","updated_at":""}]}

Suppliers

/api/suppliers
GET
{"suppliers":[{"id":"","name":"","status":"","created_at":"","updated_at":""}]}

Accounts

/api/accounts
GET
{"accounts":[{"id":"","code":"","description":"","active":true,"created_at":"","updated_at":""}]}

Pagination

  • Type: Offset-based

  • Parameters:

    offset (starting index)

    limit (max records per page, default 50)

Example

GET /api/invoices?offset=100&limit=50

Limitations and known issues

Rate limits

  • Typically, 50 records per page

  • API throttling may apply (check Coupa instance settings)

Data freshness

  • Data may be cached; real-time updates depend on Coupa configuration.

Known bugs or API instabilities

  • Pagination with date filters can cause 400 errors if parameters are not correct formatted.

  • (Workaround: Ensure proper encoding of query parameters.)