• Last edited on: 13 May 2022

Comments API

Use the Comments API to create, display, and update comments on Coupa documents.

Introduction

The URL to access contract terms is: https://<instance>/api/comments. You can also include attachments with your comment by adding /attachments to the end of the URL. See the warning below for limitations.

Actions

To GET or POST comments, use the API for the object you’d like to pull data for, and add /comments to the end of the url; it should look like this:
/api/{transactional_object}/{object_id}/comments.

Using the GET call gets all comments for the document, where the POST call adds a new comment.

Comments can also be added by using /api/comments, where a payload is required to GET or POST properly.

The Comments API allows you to perform the following actions:

Verb Path Action Description
POST /api/invoices/:invoice_id/comments create Create comment
POST /api/expense_reports/:expense_report_id/comments create Create comment
POST /api/purchase_orders/:purchase_order_id/comments create Create comment
POST /api/users/:user_id/comments create Create comment
POST /api/requisitions/:requisition_id/comments create Create comment
GET /api/invoices/:invoice_id/comments index Query comments
GET /api/expense_reports/:expense_report_id/comments index Query comments
GET /api/purchase_orders/:purchase_order_id/comments index Query comments
GET /api/users/:user_id/comments index Query comments
GET /api/requisitions/:requisition_id/comments index Query comments
GET /api/invoices/:invoice_id/comments/:id show Show comment
GET /api/expense_reports/:expense_report_id/comments/:id show Show comment
GET /api/purchase_orders/:purchase_order_id/comments/:id show Show comment
GET /api/users/:user_id/comments/:id show Show comment
GET /api/requisitions/:requisition_id/comments/:id show Show comment
Warning
  • Passing an invalid id to the endpoint which has the nested loop as /api/comments/{invalid comment id}/attachments results in an airbrake and it's same for other objects
  • While passing the URL type attachment id to the endpoint /api/comments/{comment id}/attachments/{URL type attachment id} to view the particular attachment shows the following error: Attachment does not have a file attached

Elements

The following elements are available for the Comments API:

Element Description Required Field? Unique? Allowable Value Api-In Field? Api-Out Field? Data Type
attachments attachments         yes N/A
commentable-id commentable-id       yes yes integer
commentable-type commentable-type       yes yes string(255)
comment-type Denotes the type of the comment and is for internal use only         string(255)
comments The comment you want to post. You can mention a user by including @[User:{id}] as part of the comment field.       yes yes text
created-at Automatically created by Coupa in the format YYYY-MM-DDTHH:MM:SS+HH:MMZ         yes datetime
created-by User who created the comment.         yes User   
id Coupa's unique identifier for the comment.         yes integer
reason-code Comment reason code         yes string(255)
to-supplier to be shown to supplier?       yes boolean
updated-at Automatically created by Coupa in the format YYYY-MM-DDTHH:MM:SS+HH:MMZ         yes datetime
updated-by User who updated         yes user

Example: POST Call

<comment>
	 <commentable-id type="integer">123456</commentable-id>
	 <commentable-type>InvoiceHeader</commentable-type>
	 <comments>COMMENT TEXT</comments>
</comment>

It is also possible to mention a specific user in a comment posted via the API, this will notify the user that they have been mentioned in the comment, provided that they have document mentions notifications turned on.  When mentioning a user in a comment via the API refer to them via their user's technical ID, for example, to mention the user with technical ID 2 - include "@[User:2] " in the comment text, like this:

<comment>
	 <commentable-id type="integer">123456</commentable-id>
	 <commentable-type>InvoiceHeader</commentable-type>
	 <comments>@[User:2] please see this comment</comments>
</comment>

Related Items


Differences between XML and JSON in Coupa

16 December 2016

Tagging API

24 April 2017

Use the Tagging API to bring in and export tags to your third-party system.

Integration Runs API

24 April 2017

Use this API to create, query, or update an integration run, as well as update the status.

Dispute Reason API

05 August 2017