JouloDocs

List ERE positions per EAN

Returns the ERE position for one compliance year for every attributed customer with an EAN on the profile, ordered by EAN. Figures are the customer's net amounts, read from a cache that refreshes about every 15 minutes (computed_at).

GET
/partner/ere-positions
AuthorizationBearer <token>

Partner API key, sent as Authorization: Bearer <key>. Production keys start with jpk_live_ and work only on https://api.joulo.nl. Sandbox keys start with jpk_test_ and work only on https://api-staging.joulo.nl. Sandbox keys minted before September 2026 also start with jpk_live_. A key used on the wrong host returns 401 with a detail. A key is bound to one partner and reaches only the Partner API routes. Any other route returns 404 when it does not exist. A route that needs a scope the key lacks, such as GET /sessions, returns 403 with error: Insufficient scope and a required_scope. Every other route returns 403 with error: partner_api_key_scope. Mint and revoke keys in the partner portal. A partner has one active key at a time.

In: header

Query Parameters

year?integer

Compliance year. Values outside 2026 to 2100 are clamped. A missing or non-numeric value gives the default.

Default2026
Range2026 <= value <= 2100
limit?integer

Page size. Values outside 1 to 500 are clamped. 0 or a non-number gives the default.

Default200
Range1 <= value <= 500
offset?integer

Number of rows to skip. Negative values count as 0.

Default0
Range0 <= value

Response Body

curl -X GET "https://api.joulo.nl/functions/v1/api/partner/ere-positions?year=2026&limit=200&offset=0"
{
  "positions": [
    {
      "ean": "string",
      "external_ref": "string",
      "registration_status": "string",
      "ean_validation_status": "matched",
      "ere_eligible": true,
      "compliance_year": 0,
      "registered_ere": 0,
      "allocatable_ere": 0,
      "pending_ere": 0,
      "expected_net_eur": 0,
      "realized_net_eur": 0,
      "ytd_expected_net_eur": 0,
      "quarters": [
        {
          "quarter": "string",
          "registered_ere": 0,
          "sold_ere": 0,
          "unsold_ere": 0,
          "price_per_ere": 0,
          "realized_net_eur": 0,
          "net_eur_by_status": {
            "paid": 0,
            "payable": 0,
            "reserved": 0
          },
          "final": true
        }
      ],
      "computed_at": "2019-08-24T14:15:22Z"
    }
  ],
  "limit": 0,
  "offset": 0,
  "count": 0,
  "compliance_year": 0
}
{
  "error": "Missing or invalid API token"
}
{
  "error": "Not available for your partner type"
}
{
  "error": "No partner is linked to this API key"
}
{
  "error": "Too many requests",
  "retry_after_seconds": 3
}
{
  "error": "Failed to fetch ERE positions"
}
{
  "error": "Authentication is temporarily unavailable, try again shortly"
}