POST /api/contracts/{ContractID}/actions
Executes a workflow action associated with a specific change of contract status.
Authorization Roles/Permissions: Must be logged in. Must have permission to modify the contract. To complete this operation successfully, a user must be a member of the applicable team (App team member or API Admin). However, the workflow itself might enforce additional requirements:
- The specific workflow action to be executed must be valid for the specific contract the action will be performed on.
- In addition, each action might require its own conditions. Some workflow actions can only be performed by an API Admin, some by an app admin, and so forth. Depending on the combination of action name and ContractID, this operation might require different roles. For example, Activate can only be done by an API admin or business admin; Resubmit can be done by app team members or API admins. Custom workflow definitions could require different roles for different actions.
For more information, see Executing Workflow Actions.
This topic includes the following sections:
HTTP Method
POST
URL
https://{hostname}/api/contracts/{ContractID}/actions
Sample Request
Examples below:
- Sample request body #1: Activates a contract.
- Sample request body #2: Suspends an active contract.
- Sample request body #3: Reactivates a suspended contract (resumes).
- Sample request body #4: Cancels a contract.
Sample Request URL
https://{hostname}/api/contracts/e31f8041-ff77-4153-8d4b-4a86795b2865.acmepaymentscorp/actions
Sample request headers
POST /api/contracts/e31f8041-ff77-4153-8d4b-4a86795b2865.acmepaymentscorp/actions HTTP/1.1 Host: {hostname} Accept: */* Content-Type: application/json; charset=UTF-8 X-Csrf-Token_acmepaymentscorp: TokenID%3D8ed70a13-8469-11e8-b37a-b155e4eabeb8%2CexpirationTime%3D153...
Sample request body #1
Activates a contract.
{ "ActionName":"apicontract.action.activate", "Comments":"Granting production access (activating)." }
Sample request body #2
Suspends an active contract.
{ "ActionName":"apicontract.action.suspend", "Comments":"Suspending temporarily; apologies for any inconvenience." }
Sample request body #3
Reactivates a suspended contract (resumes).
{ "ActionName":"apicontract.action.resume", "Comments":"Ending the temporary suspension. All good." }
Sample request body #4
Cancels a contract.
{ "ActionName":"apicontract.action.cancel" }
Request Headers
For general information on request header values, refer to HTTP Request Headers.
Header | Description |
---|---|
Accept | text/plain |
Content-Type |
Any one of the following media types is valid for the request Content-Type: application/json application/vnd.soa.v71+json or application/vnd.soa.v71+xml application/vnd.soa.v72+json or application/vnd.soa.v72+xml application/vnd.soa.v80+json or application/vnd.soa.v80+xml application/vnd.soa.v81+json or application/vnd.soa.v81+xml |
Cookie | AtmoAuthToken_{fedmemberid}={cookie value, which usually starts with TokenID}—The platform cookie. This is the Akana API Platform authorization token, and must be sent with every API request that requires login. For more information and an example, see Session cookies. |
X-Csrf-Token_{fedmemberID} | The CSRF prevention header; may or may not be required, depending on platform settings. See CSRF Prevention on the Platform. By default, the CSRF header is not required for GET operations and is required for all others, with a few exceptions relating to user login. |
Request Parameters
Parameter | Parm Type | Data Type | Required | Description |
---|---|---|---|---|
ContractID | Path | string | Required | The unique ID for a specific contract between an app version and an API version. |
Action | Body | Action | Required |
Contains information about an action performed on a resource as part of a workflow-related activity. For information on possible values for groups, see All Groups: Valid Workflow Actions. For app/API contracts, see App/API Contracts: Valid Workflow Actions. For tickets, see Tickets: Valid Workflow Actions. Additional actions might be defined in custom workflows. |
Response
If successful, this operation returns HTTP status code 200, with the new contract status in plain text.
Sample Response
Examples below:
- Sample response body #1: Contract is activated.
- Sample response body #2: Contract is suspended.
- Sample response body #3: Contract is resumed (reactivated).
- Sample response body #4: Contract is cancelled.
Sample response headers
HTTP/1.1 200 OK Content-Type: text/plain Date: Wed, 10 Jul 2013 19:57:49 GMT
Sample response body #1
Contract is activated.
apicontract.status.activated
Sample response body #2
Contract is suspended.
apicontract.status.suspended
Sample response body #3
Contract is resumed.
apicontract.status.activated
Sample response body #4
Contract is cancelled.
apicontract.status.cancelled
Response Headers
For general information on response header values, refer to HTTP Response Headers.
Header | Description |
---|---|
Content-Type | text/plain |
Response Body
Name | Type | Description |
---|---|---|
Response | string | The updated API Contract State value for the contract. |
Error Codes/Messages
If the call is unsuccessful an error code/message is returned. One or more examples of possible errors for this operation are shown below.
Item | Value |
---|---|
401 | Unauthorized. For example, you would get this response if you didn't include the custom X-Csrf-Token_{fedmemberID} header in the request, when it was required by the platform settings; or if you included an invalid or expired value for this header. You would also get this response for any operation that requires login (almost all) if the login cookie was missing. |
404 | The resource could not be found. |
405 | Method Not Allowed. You might get this if there is an error in the URL, or if you used the wrong HTTP verb. You would also get this if you provided incorrect values in the body of the request message. |
409 | The action attempted was not valid for the current resource state. |
500 | An An error occurred processing the call. |
More information about Akana API Platform API error messages.