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 | /api/users |
index | Performs Get action to retrieve all users |
POST | /api/users |
create | Creates one or more users. |
PUT | /api/users |
update | Updates one or more users . Can perform mass updates. |
GET | /api/users/:id |
show | Shows the user data. |
PUT | /api/users/:id |
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 |
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.