- About the Coupa connector
- Coupa authentication
- Coupa events
Coupa authentication
Before establishing a connection with your Coupa instance, you need to choose the Authentication Type. Currently, the following type is supported:
- oauth2ClientCredentials
Creating an OAuth connection
To create an OAuth connection, you have to provide the following credentials:
- OAuth Scope
- Client ID
- Secret
- Domain
To obtain the necessary credentials, you first have to log in to Coupa as an integrations-enabled administrator to create a Client using a Client credentials Grant Type.
- Log in to your Coupa instance and click the Setup button in the upper-right corner of the interface.
- Scroll to the Integrations section and click Oauth2/OpenID Connect Clients.
- Click Create.
Scopes
The following Scopes are required for any connection and are pre-filled.
By default, the OAuth app must have the following scopes. The rest of the scopes must be filled in manually, depending on your case (see the table below).
- login
- offline_access
- openid
- profile
- core.common.read
Below is a list of objects and their respective scopes.
Write scopes are necessary only for Create/Update/Delete operations, whereas Read scopes are only needed for ListAll/List/Get operations.
The OAuth app must have, at all times, the same scopes that you manually provide when creating a connection. Otherwise, you encounter issues. For example, if your OAuth App has the email, login, offline_access, openid, profile, core.common.read, and core.supplier.read scopes, then you must make sure to provide only these scopes when you add a Coupa connection.
Object |
Scopes |
---|---|
accounts |
core.accounting.read core.accounting.write |
approvals |
core.approval.read |
budget_lines |
core.budget.read |
cancel_purchaseorders |
core.purchase_order.write |
close_purchaseorders |
core.purchase_order.write |
contracts |
core.contract.read |
contracts/{contractId |
core.contract.read |
expense_lines |
core.expense.read |
expense_reports |
core.expense.read |
inventory_transactions |
core.inventory.adjustment.read core.inventory.adjustment.write core.inventory.asn.read core.inventory.balance.read core.inventory.common.read core.inventory.consumption.read core.inventory.consumption.write core.inventory.receiving.read core.inventory.receiving.write core.inventory.transfer.read core.inventory.transfer.write |
invoices |
core.invoice.approval.bypass core.invoice.approval.write core.invoice.create core.invoice.delete core.invoice.read core.invoice.write |
issue_purchaseorders |
core.purchase_order.write |
items |
|
purchase_order_changes |
core.purchase_order.read |
purchase_order_lines |
core.purchase_order.read |
purchase_orders |
core.purchase_order.read core.purchase_order.write |
quote_requests |
|
Requisitions |
core.requisition.read core.requisition.write |
Suppliers |
core.supplier.read core.supplier.write |
user_groups |
core.user_group.read core.user_group.write |
Users |
core.user.read core.user.write |
The above steps were originally documented on the Coupa website on November 29, 2021. For updated information and more details regarding Coupa visit the OAuth 2.0 Getting Started with Coupa API page.