Provisioning Scenarios

Provisioning Validation Failure Example

  1. Pax8 Sends Webhook and creates a ProvisionAttempt
  2. Provisioner API returns HttpStatus 200, 201, or 202
    1. No validation should occur during this step. This is simply to let Pax8 know whether the Provision Notification was received.
  3. Pax8 marks the ProvisionAttempt as Acknowledged
  4. Provisioner processes the request asynchronously. During processing, it is determined that the request cannot be processed as is. An example of this could be, the email provided by the user is already in use for another account.
  5. Provisioner posts a ProvisionResult for the ProvisionAttempt with a Fail status and an errorMessage detailing what went wrong such as vendorAdminEmail in use by another account

Provisioning Success Example

  1. Pax8 Sends Webhook and creates a ProvisionAttempt
  2. Provisioner API returns HttpStatus 200, 201, or 202
    1. Pax8 expects the Provisioner API to simply acknowledge the Provision Notification. The Provisioner API should not do any synchronous processing or validation at this time.
  3. Pax8 marks the ProvisionAttempt as acknowledged
  4. Provisioner processes the request asynchronously. At this time that would include validating request data, and then provisioning services.
  5. Provisioner posts a ProvisionResult for the ProvisionAttempt with a Success status.

Transient Error Example

If our initial Provision Notification webhook fails, Pax8 employs a retry mechanism. Pax8 will automatically retry the webhook delivery up to three times. Each retry creates a new ProvisionAttempt, allowing for a total of four attempts: the initial attempt plus three retries.

  1. Pax8 Sends Webhook and creates ProvisionAttempt_1
  2. Provisioner API does not respond with an acceptable status code (200, 201, 202)
  3. Pax8 marks ProvisionAttempt_1 as failed
  4. Pax8 Sends Webhook and creates a ProvisionAttempt_2
  5. Provisioner API returns HTTPStatus 200
  6. Pax8 marks the ProvisionAttempt_2 as successful
  7. Provisioner returns a ProvisionResult for ProvisionAttempt_2