User API
Use the User API's to create, update, or query the User Data.
The URL to access the API's is : https://<instance>.cso.coupahost.com/api/users
See Integration Best Practices for more info.
Actions
Verb |
Path |
Action |
Description |
---|---|---|---|
GET |
|
index |
Performs Get action to retrieve all users |
POST |
|
create |
Creates one or more users. |
PUT |
|
update |
Updates one or more users . Can perform mass updates. |
GET |
|
show |
Shows the user data. |
PUT |
|
update |
Update one user at a time using the ID |
Elements
These are the elements available for the User API
Field Name |
Field Description |
Req'd |
Unique? |
Allowable Values |
In |
Out * |
Type |
---|---|---|---|---|---|---|---|
id |
ID of the user |
Yes |
yes |
integer |
|||
state |
Status of the user |
Blocked, Active, Disabled, Removed (Case-Sensitive) |
yes |
yes |
string |
||
name |
The login name of the user. Once set cannot be changed. |
Yes |
yes |
string |
|||
first-name |
The first name of the user |
yes |
|||||
last-name |
The last name of the user |
yes |
|||||
phone-number |
Phone number of the user |
yes |
yes |
string |
|||
mobile-number |
The mobile number of the user |
yes |
|||||
|
Email of the User. Once set it cannot be changed. |
yes |
string |
||||
company-id |
The Company ID for the User. Once set it cannot be changed |
||||||
street |
Street part of the User address |
yes |
yes |
string |
|||
zip-code |
Zip code part of the User address |
yes |
yes |
string |
|||
city |
City part of the User address |
yes |
yes |
string |
|||
country |
Country part of the User address |
yes |
yes |
string |
|||
keywords |
Keywords associated to the User |
yes |
yes |
string |
|||
external-user-name |
The external user name assigned to the user. |
yes |
|||||
accepts-agreement |
Indicates whether or not the user has accepted required agreements. |
yes |
yes |
||||
provide-information |
Indicates whether or not the user shall provide user information at the next login. |
yes |
yes |
||||
change-password |
Indicates whether or not the user shall change their password at the next login. |
yes |
|||||
invoicing_user |
Invoicing User |
any |
yes |
boolean |
Response payload does not show null values.
Examples
In this example, we queried for a User API. We did a GET to the URL:
https://<instance>.cso.coupahost.com/api/users
User GET Response
{
"total": 3,
"users": [
{
"id": "9219595862193003588",
"state": "Active",
"name": "dekke434",
"first-name": "Arjan",
"last-name": "Goud",
"phone-number": "+310987898789",
"mobile-number": "+31(0) 6 98876554",
"email": "a.goud@deeder.com",
"company-id": "9219592232917474305",
"street": "IJsseldijk west 66",
"zip-code": "2935AR",
"city": "Ouderkerk aan den IJssel",
"country": "Netherlands",
"accepts-agreement": false,
"provide-information": false,
"change-password": false
},
{
"id": "9219595145795283441",
"state": "Active",
"name": "deeed",
"first-name": "Arjan",
"last-name": "Deeed",
"phone-number": "+313132323133",
"email": "mh@test.nl",
"company-id": "9219592331212583950",
"country": "Netherlands",
"accepts-agreement": false,
"provide-information": true,
"change-password": true
},
{
"id": "9219592232917474526",
"state": "Active",
"name": "eurot494",
"first-name": "Marjus",
"last-name": "van Dee",
"phone-number": "+31121212121",
"mobile-number": "+31313131333",
"email": "test@test.com",
"company-id": "9219592232917474528",
"street": "Brielselaan 69, Haven 1357",
"zip-code": "3081AA",
"city": "Rotterdam",
"country": "Netherlands",
"accepts-agreement": false,
"provide-information": true,
"change-password": false
}
]
}
Create/Update
The following describes how you can use the Coupa API to perform actions on User.
Create
/api/users
The below payload creates two users.
Payload:
{
"users": [
{
"state": "Active",
"name": "tester123456",
"first-name": "tester",
"last-name": "user1",
"phone-number": "+1(111)-234-5678",
"mobile-number": "+1(11)-123-3456",
"email": "testeruser@tester.com",
"company-id": "9220538753250662192",
"street": "12345 bethoven road",
"zip-code": "30811",
"city": "Rotterdam",
"country": "United States",
"accepts-agreement": false,
"provide-information": true,
"change-password": false
},
{
"name": "tester12345",
"first-name": "testing",
"last-name": "user",
"phone-number": "+1(111)-234-5678",
"mobile-number": "+1(11)-123-3456",
"email": "tester@tester.com",
"company-id": "9220538753250662192",
"street": "12345 bethoven road",
"zip-code": "30811",
"city": "Rotterdam",
"country": "United States",
"accepts-agreement": true,
"provide-information": true,
"change-password": false
}
]
}
Response: 201
{
"result": [
{
"type": "api.post.added",
"description": "2 objects created."
}
],
"added": 2,
"users": [
{
"id": "9220538753483272432"
},
{
"id": "9220538753482068122"
}
]
}
Update
/api/users
The below payload updates a User(s).
To update one or more User at a time:
Payload:
{
"users": [
{
"id": "9220538753483272432",
"state": "Blocked",
"email": "testeruser-upd@tester.com",
"accepts-agreement": true,
"provide-information": true,
"change-password": false
},
{
"id": "9220538753482068122",
"state": "Blocked",
"email": "tester-upd@tester.com",
"accepts-agreement": false,
"provide-information": true,
"change-password": false
}
]
}
Response: 200 OK
{
"result": [
{
"type": "api.put.updated",
"description": "2 objects updated."
}
],
"updated": 2
}
Updates are done in a lenient manner, i.e. if updating one resource fails, the other ones might be successful. User 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.