Mapping MSP’s organization ID to Acronis tenant ID

After Acronis Cyber Platform successfully reads the MSP’s organization ID from the ISV’s service, it will first check whether the organization ID is already mapped. If it is not mapped, it will send a POST request to the callback handler containing the Acronis tenant ID and MSP’s organization ID that need to be mapped by the ISV’s service.

The callback request will:

  • Specify the cti.a.p.acgw.callback.v1.0~a.p.enablement.write.v1.0 callback identifier.

  • Specify the cti.a.p.acgw.request.v1.0~a.p.enablement.write.v1.0 callback request type.

  • Contain the payload field with the information about the mapping.

This request can be represented with the following cURL command:

curl -i -s -X POST <callback_handler_url> \
    --header 'Content-Type: application/json' \
    --header 'Authorization: Bearer <jwt>' \
    --header 'X-CyberApp-Auth: base64(<identity>:<secret>)' \
    --header 'X-CyberApp-Extra: base64(<json_extra_data>)' \
    --data '{"type": "cti.a.p.acgw.request.v1.0~a.p.enablement.write.v1.0", "request_id": "<request_id>", "created_at": "2023-04-10T15:33:01+00:00", "payload": {"vendor_tenant_id": "<vendor_msp_organization_id>", "acronis_tenant_id": "<acronis_msp_tenant_id>"}, "context": {"callback_id": "cti.a.p.acgw.callback.v1.0~a.p.enablement.write.v1.0", "endpoint_id": "<endpoint_id>", "tenant_id": "<acronis_tenant_id>", "datacenter_url": "<acronis_datacenter_url>"}}'

The callback response code must be 200 and the response body must:

  • Specify the cti.a.p.acgw.response.v1.0~a.p.success_no_content.v1.0 response type.

  • Omit the payload field.

HTTP/1.1 200 OK
<...>

{
    "type": "cti.a.p.acgw.response.v1.0~a.p.success_no_content.v1.0",
    "request_id": "<request_id>",
    "response_id": "<response_id>"
}