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 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 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.