  

 

Tracelink University

 ## Breadcrumb

1. [Home](/)
2. [Resources](/resources/resource-center)
3. [TraceLink University](/resources/tracelink-university)
 
  

 

 

# Intro to APIs

 

 

 

 

 

 

 

 

- [Download PDF](/node/628306/pdf)
- [Share](#)
    - [ LinkedIn ](https://www.linkedin.com/shareArticle?mini=true&url=https://www.tracelink.com/resources/tracelink-university/intro-apis&title=Intro to APIs&summary=Before referring to the API portion of this guide, users that might integrate via API should work with their TraceLink implementation team to help configure their system and receive the appropriate endpoints and authentication information.&source=TraceLink "LinkedIn")
    - [ Facebook ](https://www.facebook.com/share.php?u=https://www.tracelink.com/resources/tracelink-university/intro-apis&t=Intro to APIs "Facebook")
    - [ Mail ](mailto:?subject=Intro to APIs+|+TraceLink&body=https://www.tracelink.com/resources/tracelink-university/intro-apis "Mail")
    - [ Twitter ](https://twitter.com/intent/tweet?text=Intro to APIs https://www.tracelink.com/resources/tracelink-university/intro-apis&via=TraceLink "Twitter")
 
 

 

 

 

 

#### Table of contents

 

 

 

Before referring to the API portion of this guide, users that might integrate via API should work with their TraceLink implementation team to help configure their system and receive the appropriate endpoints and authentication information.

Learn the basics about integrating with the Opus Platform through TraceLink's event-driven APIs:

## Event-driven APIs

[![Closed](/sites/default/files/tech_comms/poet/Skins/Default/Stylesheets/Images/transparent.gif)Introduction](#)The OPUS Platform accepts all APIs through one exposed `/api/events` endpoint per environment using the POST HTTP method regardless of the operation being performed or the object being operated upon. This is unlike a traditional RESTful Web service, which exposes multiple endpoints where users can perform operations with HTTP methods (e.g. GET, POST, PUT, etc.). The app that handles the request and the objects affected by the request are determined based on the contents of the header section of the request body.These event-driven APIs can be used to integrate the TraceLink app with your company's internal systems (e.g. enterprise resource planning system, warehouse management system).

#### Request header

The request header contains the metadata associated with the API request. All API calls to the OPUS Platform must include the following key-value pairs in the request header:

- **Content-Type** – The media type for the message. Valid value is `application/json`.
- **Authorization** – The authorization token required to connect to the platform and environment.
 
#### Request body

The request body contains the message routing and handler information as well as the contents of the request. All API requests submitted to the OPUS Platform must include the following `header` and `payload` elements:

- **header** – Specifies the event type of the request and the app that will receive the request. This must include the following parameters: 
    - **headerVersion** –The header version. Valid value is `1`.
    - **eventName** – The fully qualified name of the event that will be triggered by the request. This is typically formatted as `[app-name]:[event-name]:[version]` (e.g. `agile-process-teams:add-incident:v1`).
    - **appName** – The application that owns the event (e.g. `agile-process-teams`).
    - **ownerId** – The identifier for the company that is providing the app.
    - **dataspace** – The dataspace within the environment that the request call is being made. Valid value is `default`.
 
- **payload**– Includes the contents of the request.
 
 

 

[![Closed](/sites/default/files/tech_comms/poet/Skins/Default/Stylesheets/Images/transparent.gif)Authorization](#)Users are granted authorization to the OPUS Platform through an API token. The users need to generate an API token prior to sending an API request in order to identify a username (an API key) and password (an API secret). A valid username and password must be included in the headers to process the API request successfully. This username and password does not expire, and it can be used in all API calls.

 

 

[![Closed](/sites/default/files/tech_comms/poet/Skins/Default/Stylesheets/Images/transparent.gif)](#)<a name="http"></a>[HTTP response status codes](#)TraceLink APIs use standard response codes to indicate whether an HTTP request was successful. Response status codes may include, but are not limited to, the following: [![Closed](/sites/default/files/tech_comms/poet/Skins/Default/Stylesheets/Images/transparent.gif)Successful response](#)CodeDescription200OK. The request was successful. 



[![Closed](/sites/default/files/tech_comms/poet/Skins/Default/Stylesheets/Images/transparent.gif)Redirect message](#)CodeDescription307Temporary Redirect. The client must get the requested resource at another URI with the same HTTP method that was used in the prior request.



[![Closed](/sites/default/files/tech_comms/poet/Skins/Default/Stylesheets/Images/transparent.gif)Client error status codes](#)CodeDescription400Bad Request. The server could not understand the request due to invalid syntax.401Unauthorized. The client is unauthenticated, not allowed access, and should re-request credentials.403Forbidden. The request is valid and the client is authenticated, but the client is not allowed access rights to the content for any reason.404Not Found. The server cannot find the requested item. This can also mean that the endpoint is valid but the resource does not exist.



[![Closed](/sites/default/files/tech_comms/poet/Skins/Default/Stylesheets/Images/transparent.gif)Server error status codes](#)CodeDescription500Internal Server Error. The server has encountered an unknown error.502Bad Gateway. The server is working as a gateway to handle the request and received an invalid response.503Service Unavailable. The server is not ready to handle the request. 504Gateway Timeout. The server is acting as a gateway and cannot get a response in time.





 

## How to use this guide

[![Closed](/sites/default/files/tech_comms/poet/Skins/Default/Stylesheets/Images/transparent.gif)Read the guidelines table](#)A guidelines table contains element requirements for a message:

       Element Type Description     Header **Required.** The response header.

     headerVersion Integer **Required.**The version identifier for the call. Valid value is `1`.    eventName String **Required.**The fully qualified name of the add event response. Valid value is `agile-process-teams:<span class="mc-variable local_variables.CRUDBQ variable">add</span>-<span class="mc-variable local_variables.event_name variable">(Undefined variable: local_variables.event name)</span>-response:v1`.    ownerId String **Required.** The identifier for the Owner company associated with the request.    isErr String **Required.** Indicates whether the request was successful. Valid values:

- `true` – The call was successful.
- `false` – The call was not successful. The **errCode** and **errMsg** fields provide error information for troubleshooting.
 
     errCode String **Required.** The status code of the response.

     errMsg String **Conditionally required** if the call is unsuccessful. The message associated with the error code (e.g. `"Process Type is required."`).    licensePlate String **Required.** The unique identifier for the message instance.    exceptionName String The exception thrown based on the error code.

Valid values:- `400 BadRequestException` – The request is missing fields or has invalid data.
- `404 NotFoundException` – The request is referencing an object that APT cannot find.

   Payload –  **Required.**(missing or bad snippet)

     commentId String **Conditionally required** if the call is successful. The identifier for the added comment.    [![Closed](/sites/default/files/tech_comms/poet/Skins/Default/Stylesheets/Images/transparent.gif)Element](#)This column indicates the source/element name included in the API call.

 

 

[![Closed](/sites/default/files/tech_comms/poet/Skins/Default/Stylesheets/Images/transparent.gif)Type](#)This column indicates the element's data format type (e.g. String, Integer, Boolean, Date, or Time).

 

 

[![Closed](/sites/default/files/tech_comms/poet/Skins/Default/Stylesheets/Images/transparent.gif)Description](#)This column indicates whether the element is required for the message and provides a brief description of the element, including any relevant notes (e.g. country requirements, formatting notes, etc.).

 ![](/sites/default/files/tech_comms/poet/Content/Resources/Images/global_images/note_tip_24x24.png)Hover over a footnote to display the data input sample for that Data Element. If using the printed version of the document, refer to the matching footnote at the bottom of the table.

 

 

 

 

[![Closed](/sites/default/files/tech_comms/poet/Skins/Default/Stylesheets/Images/transparent.gif)Export a guidelines table to Excel](#)1. Navigate to the guidelines table for the message you want to export.
2. Select the Download ![](/sites/default/files/tech_comms/poet/Content/Resources/Images/global_images/icons/icon_download_to_excel_api.png) icon.
3. The file downloads locally.
 
 ![](/sites/default/files/tech_comms/poet/Content/Resources/Images/global_images/note_tip_24x24.png) In the Excel output of the API Guidelines:

- When you open the file in Excel, the following dialog box might display: "The file format and extension of \[file name\] don't match. The file could be corrupted or unsafe. Unless you trust its source, don't open it. Do you want to open it anyway?" This message is expected. Select Yes to open the file.
- The Occurs and Length values will be enclosed by square brackets (i.e. \[1...1\] or \[1/20\]). These brackets do not change the value of the data and are present to prevent Excel from interpreting the Occurs and Length values as dates or fractions.
 
 

 

 

[![Closed](/sites/default/files/tech_comms/poet/Skins/Default/Stylesheets/Images/transparent.gif)Read the message example](#)Sample requests and responses, where relevant, are provided for each message.

Below is a Copy Indirect Supplier Incident request example:

```
<small>{ "header": { "headerVersion": 1, "eventName": "agile-process-teams:copy-indirect-supplier-incident:v1", "ownerId": "94f94f37-2772-4b39-8041-9c2dcfcfff82", "appName": "agile-process-teams", "dataspace": "default", "processNetworkId": "a70ca41a-ef4d-4b5a-b243-26cff72434ce" }, "payload": { "processId": "4ec1229a-d46f-4fc0-878f-188d318db55a", "aptBusinessObjectSummary": "Label misprint", "copyGeneralInfo": true, "copyPartnerInfo": true, "copyImpactInfo": false, "copyReferenceIds": false, "copyRelatedProceses": false }</small>
```

Sample requests and responses, where relevant, are provided for each message.

 

 

[![Closed](/sites/default/files/tech_comms/poet/Skins/Default/Stylesheets/Images/transparent.gif)Copy and paste a message example](#)API examples can be easily copied and pasted into a text editor by selecting Copy.

1. Create a blank text file and save it locally.
2. Navigate to the API example that you want to copy.
3. Select Copy.
4. Navigate to the first row of the saved text file, right-click, and select Paste.The API example's structure is maintained.
    
    ![](/sites/default/files/tech_comms/poet/Content/Resources/Images/global_images/note_tip_24x24.png) Syntax highlights will not reflect unless enabled in the file editor.
    
    There is a known issue in the documentation where the example might have extra spaces or quotation marks added if copied through a Chromium-based browser (e.g. Google Chrome, Microsoft Edge). This issue will be fixed in a future revision. For now, if this problem results in a validation error, either:
    
    
    - Manually copy the example by highlighting the full text, right-clicking, and selecting Copy.or
    - Use a non-Chromium-based browser (e.g. Mozilla Firefox, Apple Safari) to copy the example.
 
 

 



 

 

 

 

#### Table of contents

 

 

 

 

 

 



 

##### Related Content

 

 [ ![Related content](https://www.tracelink.com/sites/default/files/2024-09/cloud.svg) ](/resources/tracelink-university/forecast-plan-idoc) 

#####  Forecast plan (IDoc) 

 Forecasting APIs allow companies to exchange data about anticipated product demand and supply availability with upstream supply chain Partners without giving these Partners access to their serialization system of record. 

 

 [View More](/resources/tracelink-university/forecast-plan-idoc) 

 

 [ ![Related content](https://www.tracelink.com/sites/default/files/2024-09/cloud.svg) ](/resources/tracelink-university/forecast-plan-x12) 

#####  Forecast plan (X12) 

 Forecasting APIs allow companies to exchange data about anticipated product demand and supply availability with upstream supply chain Partners without giving these Partners access to their serialization system of record. 

 

 [View More](/resources/tracelink-university/forecast-plan-x12) 

 

 [ ![Related content](https://www.tracelink.com/sites/default/files/2024-09/cloud.svg) ](/resources/tracelink-university/forecast-plan-response-idoc) 

#####  Forecast plan response (IDoc) 

 Forecasting APIs allow companies to exchange data about anticipated product demand and supply availability with downstream supply chain Partners without giving these Partners access to their serialization system of record. 

 

 [View More](/resources/tracelink-university/forecast-plan-response-idoc)