JouloDocs
CpoApi

ERE positions

Per-account eligibility checklist and delivered charging data • monetary position fields follow later.

ERE positions

GET /v1/ere-positions — scope cpo:accounts:read

One row per account: is it ERE-eligible, which onboarding gates are still open, and which months of charging data we received from you. Paginated with ?limit (default 50, max 200) and ?offset; narrow to one account with ?cpo_external_ref=.

curl "https://api.joulo.nl/functions/v1/api/v1/ere-positions?cpo_external_ref=your-crm-id-001" \
  -H "Authorization: Bearer <token>"
{
  "positions": [
    {
      "account_id": "60092124-…",
      "cpo_external_ref": "your-crm-id-001",
      "payout_handler": "via_cpo_invoicing",
      "ere_eligible": true,
      "mandate_valid_from": "2026-01-01",
      "checklist": {
        "mandate_signed": true,
        "ean_validated": true,
        "mid_charger_registered": true,
        "iban_present": true
      },
      "delivered_months": [
        {
          "period": "2026-07-01",
          "total_kwh": 184.2,
          "session_count": 31,
          "status": "staged",
          "received_at": "2026-08-01T09:12:00Z"
        }
      ],
      "total_kwh_delivered": 184.2,
      "ere": null
    }
  ],
  "limit": 50,
  "offset": 0,
  "count": 1
}

The checklist

The four automated gates that make an account ERE-eligible. ere_eligible flips to true when all four are green:

FieldMeaning
mandate_signedThe customer signed the machtiging on the Joulo-hosted screen.
ean_validatedThe account has an active connection whose EAN address check did not return mismatched. See below.
mid_charger_registeredAn active charger from a MID-certified catalog model is bound to the connection.
iban_presentAn IBAN is on file. Required for every account, also under via_cpo_invoicing.

ean_validated passes on every EAN check result except mismatched: that is matched, unverified, unavailable, and a connection with no result yet. Joulo reviews an unverified or unavailable connection by hand, but this gate does not wait for that review. It is false when the account has no active connection, or when a later check by Joulo found the EAN at another address.

ere_eligible says the account is complete. It does not say a given month counts. For that, read mandate_valid_from: the date the signed machtiging starts, or null before signing. A switcher is eligible today and counts from 1 January of the next year.

Delivered months

Every month you pushed through POST /v1/sessions:batch, with its status:

  • staged — received and stored; not yet part of the ERE pipeline.
  • promoted — promoted into the ERE pipeline; counts toward the position.
  • outside_mandate: stored, but before mandate_valid_from, so it will never count.

The ere block

ere is null for now. The allocation, value and payout figures per account • and which monetary numbers apply per payout_handler model • are still being structured on our side. The field is already in the response so the shape won't change under you: it becomes an object once those figures go live, announced ahead of time.