Connector Details synchronous API's
Connector Details synchronous API's
General Information
Recently, SAP Ariba added new API endpoints which are following a synchronous structure. The affected API’s are:
Contract Compliance API
Supplier Data API with Pagination
Implementation and Request Structure
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.
OAuth Authorization
Post: https://api.ariba.com/v2/oauth/token HEADERS: ClientID ClientSecret
Common request headers for every resource requests
Common request headers
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.
Document Approval API
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
Per second: 300 request
Per minute: 800 requests
Per hour: 35000 requests
Routes implemented
GET Contract Requests
GET https://openapi.ariba.com/api/approval/v2/prod/changes
GET Contract Requests Line Items
GET https://openapi.ariba.com/api/approval/v2/prod/pendingApprovables
GET Contracts
GET https://openapi.ariba.com/api/approval/v2/prod/{approvableType}/{approvableId}
GET Contracts Line Items
GET https://openapi.ariba.com/api/approval/v2/prod/{approvableType}/{approvableId}/attachments/{attachmentId}
Contract Compliance API
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
Per second: 1 request
Per minute: 10 requests
Per hour: 100 requests
Filters
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
e.g. $filter=CreateDate ge '2020-07-01T12:00:00Z' and CreateDate le '2020-07-10T12:00:00Z'
Routes implemented
GET Contract Requests
GET https://openapi.ariba.com/api/contract-compliance/v1/prod/contractRequests?realm=XYZ
GET Contract Requests Line Items
GET https://openapi.ariba.com/api/contract-compliance/v1/prod/contractRequests/{contractRequestId}/lineItems?realm=XYZ
GET Contracts
GET https://openapi.ariba.com/api/contract-compliance/v1/prod/contracts?realm=XYZ
GET Contracts Line Items
GET https://openapi.ariba.com/api/contract-compliance/v1/prod/contracts/{contractId}/lineItems?realm=XYZ
Supplier Data API with Pagination
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 with Pagination API
Per second: 1 request
Per minute: 100 requests
Per hour: 6000 requests
Per day: 25000 requests
Filters
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.
e.g. $filter=updatedDateFrom ge '2020-07-01T00:00:00Z' and updatedDateTo le '2020-07-10T00:00:00Z'
Routes Implemented
Gets the data specified in request body filters for all suppliers.
POST https://openapi.ariba.com/api/supplierdatapagination/v3/prod/vendorDataRequests Body: { "outputFormat":"JSON", "withQuestionnaire":false, "withGenericCustomFields":true }
GET all supplier management certificate question data
GET https://openapi.ariba.com/api/supplierdatapagination/v3/prod/vendors/{vendorId}/certificates
Gets all supplier management projects (workspaces) for the specified supplier.
GET https://openapi.ariba.com/api/supplierdatapagination/v3/prod/vendors/{vendorId}/workspaces
Gets all modular questionnaire data for the specified supplier.
GET https://openapi.ariba.com/api/supplierdatapagination/v3/prod/vendors/{vendorId}/workspaces/questionnaires
Gets all question and answer data in all questionnaires for the specified supplier.
GET https://openapi.ariba.com/api/supplierdatapagination/v3/prod/vendors/{vendorId}/workspaces/questionnaires/qna