Skip to content

Pre-validate purchase

/me/order/pre_validate_purchase

Target audience: Developers

Release version: 4.3.5

Pre-validate purchase

Introduction

This endpoint is used to pre-validate a order for an authenticated user. The following criterion will be checked:

  • Whether the customer already has the package they are attempting to purchase.
  • Whether the customer already has the campaign they are attempting to purchase.
  • Whether the customer already has the base package of the campaign they are attempting to purchase.
  • Whether campaign purchase rules exist for the campaign they are attempting to purchase.

If you are only interested in validating configured campaign purchase rules rather than the entire list above, we recommend using the Eligible for campaign endpoint instead.

URI

Environment URI
Stage https://payway-api.stage.adeprimo.se/external/api/v1/me/order/pre_validate_purchase
Production https://backend.worldoftulo.com/external/api/v1/me/order/pre_validate_purchase

Requirements

Identity Scope
Yes /external/me/order/w

Parameters

Field Required Type Description
product_code Required String The product code for a package/campaign that should be pre validated.
Size range: 1..1024

Curl Example

curl --request GET \
  --url 'https://payway-api.stage.adeprimo.se/external/api/v1/me/order/pre_validate_purchase?product_code=some_product_code' \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer <insert identity token here>'

Response

Field Description
can_purchase Boolean stating wether a purchase of the package/campaign would be possible.
reason Code describing why can_purchase is true or false. Possible values:
campaign_purchase_rules_does_not_permit_purchase
campaign_already_purchased
package_already_active
base_package_already_active
purchase_allowed
{
  "item": {
    "can_purchase": true,
    "reason": "purchase_allowed"
  }
}

Errors

Example error response

HTTP 400 Bad Request
{
    "code": "invalid_parameter",
    "field": "period_id",
    "message": "Parameter must match format (/^[a-f\d]{24}$/)"
}

HTTP 400 Bad Request

Name Type Description
invalid_parameter Object Validation error on any of the fields in the posted json
json_parser_error Object The request body could not be parsed as valid json
invalid_content_type_error Object The requests Content-Type header isn't set to application/json
unknown_parameter Object One or more of the fields in the posted json was not recognized