Company API
Use the Company API's to create, update, or query the Company Data.
The URL to access the API's is : https://<instance>.cso.coupahost.com/api/companies
See Integration Best Practices for more info.
Actions
Verb |
Path |
Action |
Description |
---|---|---|---|
GET |
|
index |
Performs Get action to retrieve all Companies |
POST |
|
create |
Creates one or more Companies objects. |
PUT |
|
update |
Updates one or more Companies . Can perform mass updates. |
GET |
|
show |
Show one Company data. |
PUT |
|
update |
Update one Company at a time using the ID |
Elements
These are the elements available for the Company API
Field Name |
Field Description |
Req'd |
Unique? |
Allowable Values |
In |
Out * |
Type |
---|---|---|---|---|---|---|---|
id |
ID of the Company |
Yes |
yes |
integer |
|||
state |
Status of the company |
Active, Removed (Case-Sensitive) |
yes |
yes |
string |
||
name |
Name of the Company |
Yes |
yes |
yes |
string |
||
phone-number |
Phone number of the company |
yes |
yes |
string |
|||
|
Email of the company |
yes |
yes |
string |
|||
street |
Street part of the company address |
yes |
yes |
string |
|||
zipcode |
Zip code part of the company address |
yes |
yes |
string |
|||
city |
City part of the company address |
yes |
yes |
string |
|||
country |
Country part of the company address |
yes |
yes |
string |
|||
duns-scac |
The duns scac code for the company. |
yes |
yes |
string |
|||
keywords |
Keywords associated to the company |
yes |
yes |
string |
Response payload does not show null values.
Examples
In this example, we queried for a company API. We did a GET to the URL:
https://<instance>.cso.coupahost.com/api/companies
Company GET Response
{
"total": 7,
"compannies": [
{
"id": "9219592888303484960",
"state": "Active",
"name": "! New Supplier (Spanish)"
},
{
"id": "9219594398656586067",
"state": "Active",
"name": "! Simon Test Organization",
"email": "simon@kepgames.com"
},
{
"id": "9219592919623127484",
"state": "Active",
"name": "! SKF (test bidders)"
},
{
"id": "9219592881350550871",
"state": "Active",
"name": "! Spanish bidder",
"email": "heloisa.spanish@tradeext.com"
},
{
"id": "9219592230193035378",
"state": "Active",
"name": "! TE",
"email": "lorena@te.se",
"duns-scac": "testing123456789",
"keywords": "test"
},
{
"id": "9219596145584379778",
"state": "Active",
"name": "! TE Test Company"
},
{
"id": "9219592639285418804",
"state": "Active",
"name": "! TE Test Company 2",
"phone-number": "123-234-3456",
"email": "testcompany2+upg@coupa.com",
"street": "street address1",
"zip-code": "12345",
"city": "valahalla",
"country": "United States Minor Outlying Islands",
"keywords": "Carrier"
}
]
}
Create/Update
The following describes how you can use the Coupa API to perform actions on Company.
Create
/api/companies
The below payload creates two Companies.
Payload:
{
"companies": [
{
"state": "Active",
"name": "Yes Heloisa",
"duns-scac": "Shall be updated"
},
{
"name": "TE Test Company 2",
"phone-number": "123-234-3456",
"email": "testcompany2+upg@coupa.com"
}
]
}
Response: 201
{
"result": [
{
"type": "api.post.added",
"description": "2 objects created."
}
],
"added": 2,
"companies": [
{
"id": "9220538753256092391"
},
{
"id": "9220538753250662192"
}
]
}
Update
/api/companies
The below payload updates a Company(ies).
To update one or more Company at a time:
Payload:
{
"companies": [
{
"id": "9219594319065198091",
"state": "Active",
"name": "! (TE) Heloisa",
"duns-scac": "Shall be updated"
},
{
"id": "9219596218212801426",
"state": "Active",
"name": "! (TE) Org only with bidders (Italian)",
"duns-scac": "Shall be updated",
"email": "testbidders_itl@coupa.com"
},
{
"id": "9219596218212801429",
"state": "Active",
"name": "! (TE) Org with only bidders",
"duns-scac": "Shall be updated",
"keywords": "Bidders"
}
]
}
Response: 200 OK
{
"result": [
{
"type": "api.put.updated",
"description": "3 objects updated."
}
],
"updated": 3
}
Updates are done in a lenient manner, i.e. if updating one resource fails, the other ones might be successful. Company ID is required for updates.
Successful requests will return HTTP 200 Response
. The body of the response will include the created requisition. Unsuccessful requests will return
HTTP 400 Bad
Request
. The body of the response will include validation errors formatted as XML.