Provision Result

A ProvisionResult represents the end result for a given ProvisionAttempt. A ProvisionResult indicates the status (Success or Fail) of provisioning, and returns information about the subscription in the Provisioner system.

Endpoints

GET /provision-requests/{provisionRequestId}/results
GET /provision-requests/{provisionRequestId}/results/{provisionResultId}
GET /provision-requests/{provisionRequestId}/results/latest
GET /provision-requests/{provisionRequestId}/results?provisionAttemptId={provisionAttemptId}
POST /provision-requests/{provisionRequestId}/results
  • A ProvisionResult cannot be posted for a ProvisionAttempt that already has an associated ProvisionResult.
  • Pax8 does not accept ProvisionResults for ProvisionAttempts that are not acknowledged
  • When the status is Fail The errorMessage field should contain relevant error information that
    a non-technical customer can understand. The errorMessage input is truncated to 500 characters.

Retries

Once you have posted a result for a ProvisionAttempt, any subsequent attempt to post another result will be rejected. However, there is an exception. If an error result is posted, Pax8 will initiate a retry with new provision details to rectify the error.

  • We create a new ProvisionAttempt and new ProvisionDetails.
  • The vendor can then post results for the latest attempt.##

Provision Result Object

{
    "id": "43b4b1f0-381b-473a-b3ca-a5af43e64c9a",
    "provisionAttemptId": "c9f3a6bd-acf7-4108-8cc6-0994ccb5fdb9",
    "status": "Success | Fail",
    "errorMessage": null,
    "externalProvisionerSubscriptionId": "0148b5ee-dd60-441e-9501-5a7056cb6be7",
    "externalProvisionerPartnerId": "53b97015-19e0-4fac-aa07-56188c6580c2",
    "externalProvisionerCompanyId": "29cf7b7d-08e3-4dcb-a4f8-493788d1fb09",
    "createdDate": "2022-10-03T10:15:30Z"
}

External Identifiers

  • Pax8 can store external identifiers for Partner, PartnerEnrollment, Company, and Subscription
  • They are stored in externalProvisionerPartnerId, externalProvisionerPartnerEnrollmentId, externalProvisionerCompanyId, and externalProvisionerSubscriptionId respectively.
  • These identifiers are optional. They are available across Pax8 APIs and can be used to correlate data between Pax8 and the Provisioner system. Pax8 does not validate these identifiers.
  • An example use case for using an external partner id could be:
    • Pax8 sends your system a Provision Notification Webhook for a partner that has never purchased with you before.
    • When you create the partner account in your system, let's say it has some id like "ABC"
    • When you send the provision result to Pax8, you can assign that "ABC" id to the partner record in the Pax8 system by including it as the value for externalProvisionerPartnerId
    • Then, on every subsequent webhook notification that Pax8 sends your system for that same partner, externalProvisionerPartnerId would appear in the details map, and the value would be "ABC"

Get All Provision Results for a Provision Request

GET /provision-requests/{provisionRequestId}/results
{
    "page": {
        "size": 10,
        "totalElements": 10,
        "totalPages": 10,
        "number": 1
    },
    "content": [
        {
            "id": "43b4b1f0-381b-473a-b3ca-a5af43e64c9a",
            "provisionAttemptId": "c9f3a6bd-acf7-4108-8cc6-0994ccb5fdb9",
            "status": "Success | Fail",
            "errorMessage": null,
            "externalProvisionerSubscriptionId": null,
            "externalProvisionerPartnerId": null,
            "externalProvisionerCompanyId": null,
            "createdDate": "2022-10-03T10:15:30Z"
        }
    ]
}

Get the Provision Results for a Provision Attempt

GET /provision-requests/{provisionRequestId}/results?provisionAttemptId={provisionAttemptId}
{
    "id": "43b4b1f0-381b-473a-b3ca-a5af43e64c9a",
    "provisionAttemptId": "c9f3a6bd-acf7-4108-8cc6-0994ccb5fdb9",
    "status": "Success | Fail",
    "errorMessage": null,
    "externalProvisionerSubscriptionId": null,
    "externalProvisionerPartnerId": null,
    "externalProvisionerCompanyId": null,
    "createdDate": "2022-10-03T10:15:30Z"
}

Get one Provision Result

GET /provision-requests/{provisionRequestId}/results/{provisionResultId}
{
    "id": "43b4b1f0-381b-473a-b3ca-a5af43e64c9a",
    "provisionAttemptId": "c9f3a6bd-acf7-4108-8cc6-0994ccb5fdb9",
    "status": "Success | Fail",
    "errorMessage": null,
    "externalProvisionerSubscriptionId": null,
    "externalProvisionerPartnerId": null,
    "externalProvisionerCompanyId": null,
    "createdDate": "2022-10-03T10:15:30Z"
}

Get latest Provision Result for an Order

GET /provision-requests/{provisionRequestId}/results/latest
{
    "id": "43b4b1f0-381b-473a-b3ca-a5af43e64c9a",
    "provisionAttemptId": "c9f3a6bd-acf7-4108-8cc6-0994ccb5fdb9",
    "status": "Success | Fail",
    "errorMessage": null,
    "externalProvisionerSubscriptionId": null,
    "externalProvisionerPartnerId": null,
    "externalProvisionerCompanyId": null,
    "createdDate": "2022-10-03T10:15:30Z"
}

Create Provision Result

POST /provision-requests/{provisionRequestId}/results
{
    "provisionAttemptId": "c9f3a6bd-acf7-4108-8cc6-0994ccb5fdb9",
    "status": "Success | Fail"
    "errorMessage": null,
    "externalProvisionerSubscriptionId": "0148b5ee-dd60-441e-9501-5a7056cb6be7",
    "externalProvisionerPartnerId": "53b97015-19e0-4fac-aa07-56188c6580c2",
    "externalProvisionerCompanyId": "29cf7b7d-08e3-4dcb-a4f8-493788d1fb09"
}
{
    "id": "43b4b1f0-381b-473a-b3ca-a5af43e64c9a",
    "provisionAttemptId": "c9f3a6bd-acf7-4108-8cc6-0994ccb5fdb9",
    "status": "Success | Fail",
    "errorMessage": null,
    "externalProvisionerSubscriptionId": "0148b5ee-dd60-441e-9501-5a7056cb6be7",
    "externalProvisionerPartnerId": "53b97015-19e0-4fac-aa07-56188c6580c2",
    "externalProvisionerCompanyId": "29cf7b7d-08e3-4dcb-a4f8-493788d1fb09",
    "createdDate": "2022-10-03T10:15:30Z"
}