EPR EU Rep · Developers

EPR in your product.
Real representation behind it.

Check obligations, quote from our live prices and send clients to a tracked checkout. It's free, with no key and no sales call.

Start here

The API checks, quotes, prepares a checkout link and simulates the onboarding. It doesn't sign, pay or register: a person signs and pays, and our team registers and files.

What you can build

It runs in production, free. You build the flow and our team does the registrations and filing behind it.

CapabilityEndpointAccess
Check which countries and streams applyPOST /checkOpen
Read the France questionnaireGET /france/questionnaireOpen
Quote from live pricesPOST /quoteOpen
Create a checkout link tied to your partnerPOST /onboarding-linksPartner code
Test each country's steps from start to finish/sandbox/onboardingsOpen
Follow real clients and their feesPartner dashboardPartner
Sign and track under your own brandSet up with youWhite label

Sandbox

Runs against the real API from this page. Step 4 is simulated: it creates no order, mandate, payment or registration, and its numbers aren't valid anywhere.

Choose a step.

Reference

JSON over HTTPS, base URL https://epreurep.com/api/v1. No key. Limit: 30 requests a minute per IP. Prices exclude VAT, and scheme fees are billed separately at cost. Full documentation · OpenAPI file

POST /api/v1/check

Which of your countries we cover, and a first guess at the product streams. The streams can go straight into /quote.

curl -X POST https://epreurep.com/api/v1/check \
  -H 'content-type: application/json' \
  -d '{"countries":["FR","DE"],"products":["cotton t-shirt"]}'

GET /api/v1/france/questionnaire

The questions our French checkout asks, with every stream, the lowest plan for each and the plan rules. Build your form from it.

curl https://epreurep.com/api/v1/france/questionnaire

POST /api/v1/quote

The yearly price, calculated by the same code as our checkout. France needs the three answers from the questionnaire and returns the plan they lead to. Germany needs this year's kilos and returns the licence estimate. custom_quote is true for Enterprise, which we quote first.

curl -X POST https://epreurep.com/api/v1/quote \
  -H 'content-type: application/json' \
  -d '{"france":{"sells_to":"consumers","streams":["toys"],"tonnes":"up_to_1"},"germany":{"packaging_kg":{"paper":120,"plastic":40}},"spain":{"plan":"essential","nif":true}}'

POST /api/v1/onboarding-links

A checkout link tied to your partner code, with the answers already in it and company and email filled in. Company and email stay in the URL fragment. Takes the same body as /quote. For Enterprise, the link opens the quote request and cannot be paid. northstar is a demo code for testing: use your own once you are a partner.

curl -X POST https://epreurep.com/api/v1/onboarding-links \
  -H 'content-type: application/json' \
  -d '{"partner":"northstar","germany":{"packaging_kg":{"paper":120,"plastic":40}},"company":"Example Ltd","email":"owner@example.com"}'

POST /api/v1/sandbox/onboardings

Starts a simulated onboarding for FR, DE or ES and returns an id. One step moves on every 5 seconds.

curl -X POST https://epreurep.com/api/v1/sandbox/onboardings \
  -H 'content-type: application/json' \
  -d '{"countries":["DE"]}'

GET /api/v1/sandbox/onboardings/{id}

The simulated status per country. client_action_required marks the steps a client has to do personally.

curl https://epreurep.com/api/v1/sandbox/onboardings/sbx_...

What no API can do

Why EPR can't be fully automated →