Synchronous APIs for SAP Ariba
The affected synchronous APIs for SAP Ariba are:
Contract compliance API
Document approval API
Supplier data API with pagination
For each API, an overview and the API limits are detailed below.
In addition, you can find the implementation and request structure to use with these APIs:
The Contract Compliance API set allows the client to get information about contract requests and contracts created in SAP Ariba.
API limits for the contract compliance API
The following API limits apply:
Per second: 1 requests
Per minute: 10 requests.
Per hour: 100 requests.
Filters for the contract compliance API
To filter responses, this API provides OData filter with conditional operators or, and, eq, ne, gt, ge, lt, le to use with `$filter` keyword sent as query parameter.
The following date filters are available:
CreateDate
LastModified
ApprovedDate
For example:
$filter=CreateDate ge '2020-07-01T12:00:00Z' and CreateDate le '2020-07-10T12:00:00Z'
Routes implemented for the contract compliance API
The following routes are implemented:
Method | Call | Rute |
---|---|---|
GET | GET Contract Requests | GET https://openapi.ariba.com/api/contract-compliance/v1/prod/contractRequests?realm=XYZ |
GET | GET Contract Requests Line Items | GET https://openapi.ariba.com/api/contract-compliance/v1/prod/contractRequests/{contractRequestId}/lineItems?realm=XYZ |
GET | GET Contracts | GET https://openapi.ariba.com/api/contract-compliance/v1/prod/contracts?realm=XYZ |
GET | GET Contracts Line Items | GET https://openapi.ariba.com/api/contract-compliance/v1/prod/contracts/{contractId}/lineItems?realm=XYZ |
The Document Approval API set allows the client to get information about Invoice and Requisition changes and pending approvables in SAP Ariba.
API limits for the document approval API
The following API limits apply:
Per second: 300 requests.
Per minute: 800 requests.
Per hour: 35000 requests.
Routes implemented for the document approval API
The following routes are implemented:
Method | Call | Route |
---|---|---|
GET | GET Contract Requests | GET https://openapi.ariba.com/api/approval/v2/prod/changes |
GET | GET Contract Requests Line Items | GET https://openapi.ariba.com/api/approval/v2/prod/pendingApprovables |
GET | GET Contracts | GET https://openapi.ariba.com/api/approval/v2/prod/{approvableType}/{approvableId} |
GET | GET Contracts Line Items | GET https://openapi.ariba.com/api/approval/v2/prod/{approvableType}/{approvableId}/attachments/{attachmentId} |
The Supplier Data API with Pagination allows the client to retrieve supplier data from SAP Ariba Supplier Lifecycle and Performance or SAP Ariba Supplier Information and Performance Management (new architecture) solution, including supplier names, addresses, registration, qualification, and preferred statuses, and questionnaire details.
API limits for the supplier data API
The following API limits apply:
Per second: 1 request.
Per minute: 100 requests.
Per hour: 6000 requests.
Per day: 25000 requests.
Filters for the supplier data API
To filter responses this API provides only a single upper and lower bound filter with conditional operators ge and le to use with `$filter` keyword sent as query parameter.
Following date filters are available:
updatedDateFrom: The earliest update date for records to be returned. This parameter uses the ge (greater than or equal to) operator and a date.
updatedDateTo: The latest update date for records to be returned. This parameter uses the le (less than or equal to) operator and a date.
For example:
$filter=updatedDateFrom ge '2020-07-01T00:00:00Z' and updatedDateTo le '2020-07-10T00:00:00Z'
Routes implemented for the supplier data API
The following routes are implemented:
Method | Call | Route |
---|---|---|
POST | Gets the data specified in request body filters for all suppliers. | POST https://openapi.ariba.com/api/supplierdatapagination/v4/prod/vendorDataRequests Body: { "outputFormat":"JSON", "withQuestionnaire":false, "withGenericCustomFields":true } |
GET | GET all supplier management certificate question data | GET https://openapi.ariba.com/api/supplierdatapagination/v4/prod/vendors/{vendorId}/certificates |
GET | GET all supplier management projects (workspaces) for the specified supplier. | GET https://openapi.ariba.com/api/supplierdatapagination/v4/prod/vendors/{vendorId}/workspaces |
GET | GET all modular questionnaire data for the specified supplier. | GET https://openapi.ariba.com/api/supplierdatapagination/v4/prod/vendors/{vendorId}/workspaces/questionnaires |
GET | GET all question and answer data in all questionnaires for the specified supplier. | GET https://openapi.ariba.com/api/supplierdatapagination/v4/prod/vendors/{vendorId}/workspaces/questionnaires/qna |
Implementation and request structure
SAP Ariba Contract Compliance API and Supplier Data API are synchronous APIs, hence, follow the common pattern of request/response like other connectors.
To authorize for the API access, a post request is sent to get the OAuth Access-Token that is used to authorize for all upcoming requests:
Post: https://api.ariba.com/v2/oauth/token HEADERS: ClientID ClientSecret
You then need common request headers for every resource request:
HEADERS: Content-Type application/json apiKey zzz Authorization Bearer <Access-Token>
Metadata
The Contract Compliance API and Supplier Data API do not provide any metadata route for building the table structure. Hence, the API resource definitions are built as JSON configuration files for each API, which hold all the resource tables that need to be extracted. These definitions contain the resource endpoints, required parameters, columns for each table, nested child tables, etc.
Response processing
The API responses are realtime responses to the requests and the extracted records are uploaded to Vertica like other connectors.