Contents

Appendix B. Licensing API Reference

Refusal Codes developer

A refusal is a JSON:API error with an HTTP status, a code your software can act on, a title in English, and meta with details and the customer's account_url:

{
    "errors": [{
        "status": "409",
        "code": "all_seats_bound",
        "title": "Every seat of the license is bound to another site",
        "meta": {"license_ids": [12], "account_url": "https://www.example.com/my-licenses"}
    }]
}

no_license (409)

The customer has no license for the product, or none that is active (meta.license_ids lists inactive ones). They need to buy or renew.

all_seats_bound (409)

Every seat is used by another site. The customer releases one on their licenses page, or buys more seats.

identifier_bound_elsewhere (409)

The site is bound to another customer's license of this product, or to an expired one still reserving it. It has to be released there first.

change_limit_reached (409)

The license has used all its moves to new sites for now. meta.next_change_at says when the next becomes available; the customer can also ask for one on their licenses page.

release_too_soon (409)

The site hasn't been bound for the product's minimum binding time. meta.releasable_at says when it can be released.

invalid_identifier (422)

The identifier isn't a valid host name, or doesn't end in a known public suffix.

identifier_not_allowed (422)

It is a development site, and the product refuses them.

not_found (404)

There is no such activation, or no such license.

invalid_request (400)

A required parameter is missing: filter[user] for listing, user_id, a product and identifier for activating.