Payment terminal providers

Test your payment terminal integration before a CPO connects.

ChargerDojo plays the CPO against your terminal management system, from terminal activation to the capture confirmation, and grades every exchange. No CPO sandbox to wait for. From 1 January 2027, AFIR requires CPOs to take payment cards at public points of 50 kW or more on the TEN-T road network, older points included.

OCPI 2.3.0 Payments and the 2.2.1 Direct Payment extension.Free on our sandbox, no login. Testing your own system: $499 a month.Covers your OCPI interface, not terminals, settlement or AFIR compliance.

Direct terminal payment · OCPI 2.3.0

20 passed · 2 not applicable · 18 not tested
  1. 06POST/terminals/activate200 · 44 ms
  2. 08INTerminal registration received
  3. 09PUT/terminals/{terminal_id}200 · 23 ms
  4. 13INTariff pull received
  5. 15INSTART_SESSION received
  6. 18POST/cdrs201 · 31 ms
  7. 20INFinancial Advice Confirmation received
  8. 23POST/terminals/{terminal_id}/deactivate200 · 23 ms
Sandbox run, 5 November 2026. Eight of 23 steps. 18 checks need evidence this run could not observe, and the report gives the reason for each.

One payment, start to finish

On OCPI 2.3.0, your system sends five of the thirteen calls.

We send what a CPO sends, then wait up to 5 minutes for each request your system owes.

We activate a terminal and assign it to a location and EVSE, as a CPO's CSMS would. Your system pulls the location and tariff, starts the session with an authorization reference and, when the CPO invoices, confirms the capture.

We push the Session and the CDR with that reference, then deactivate the terminal.

OCPI 2.2.1 runs the same flow without activation and deactivation.

Your systemUnder test
ChargerDojoPlays the CPO
  1. PTP to CPO.
    POST/terminals Reply: 201
  2. PTP to CPO.
    GET/locations/{location_id} Reply: 200
  3. PTP to CPO.
    GET/tariffs/{tariff_id} Reply: 200
  4. PTP to CPO.
    POSTSTART_SESSION Reply: 200
  5. PTP to CPO.
    POST/financial-advice-confirmations Reply: 201

We send the other eight: activation, assignment and its read-back, the START_SESSION result to your response_url, two Session updates, the CDR and deactivation.

All thirteen calls
  1. CPO to PTP.
    POST/terminals/activate Reply: 200
  2. PTP to CPO.
    POST/terminals Reply: 201
  3. CPO to PTP.
    PUT/terminals/{terminal_id} Reply: 200
  4. CPO to PTP.
    GET/terminals/{terminal_id} Reply: 200
  5. PTP to CPO.
    GET/locations/{location_id} Reply: 200
  6. PTP to CPO.
    GET/tariffs/{tariff_id} Reply: 200
  7. PTP to CPO.
    POSTSTART_SESSION Reply: 200
  8. CPO to PTP.
    POST{response_url}
  9. CPO to PTP.
    PUT/sessions Reply: 201
  10. CPO to PTP.
    PUT/sessions Reply: 200
  11. CPO to PTP.
    POST/cdrs Reply: 201
  12. PTP to CPO.
    POST/financial-advice-confirmations Reply: 201
  13. CPO to PTP.
    POST/terminals/{terminal_id}/deactivate Reply: 200

The report

Every capture confirmation is checked against the CDR it pays for.

When the CPO invoices, D12 matches the captured total to the CDR, and D10 checks a successful capture's total, currency and EFT data. On the sandbox you can choose a partial or failed capture instead, and D11 keeps it a payment failure even when the CDR itself is valid. A PTP invoice sends no confirmation, so D10, D11 and D12 do not run.

Terminal
D02An assignment stays retrievable after the PUT.
Price
D04Your system pulls the tariff it shows on the terminal.
Session
D06START_SESSION carries a Token and every field its version requires.
D07START_SESSION carries an authorization reference and, when the CPO invoices, the confirmation repeats it.
Capture
D10The confirmation records total, currency and EFT data.
D12The captured total matches the CDR total. A business check, beyond what OCPI requires.
D15A duplicate confirmation creates no second transaction, on the deeper adversarial run.
OCPI conformance8 passed · 11 not tested
Business checks2 passed · 2 not tested
Observations10 passed · 2 not applicable · 5 not tested
Payment settlementOutside OCPI

The sandbox run above. The report names what it could not grade, such as the processor's preauthorization release.

OCPI versions

Two versions, two contracts.

A 2.2.1 Direct Payment integration does not carry over to 2.3.0 unchanged.

What changesOCPI 2.2.1 Direct PaymentOCPI 2.3.0 Payments
Defined inEVRoaming Foundation working document, March 2024Core specification chapter
Preauthorization amountmax_price on the Tariffpreauthorize_amount on the Tariff
Terminal activationNot in the documentactivate and deactivate on the PTP interface
Price shapeexcl_vat, incl_vatbefore_taxes, taxes

OCPI has no PTP value in its Role enum, so ChargerDojo records your system as OTHER. OCPI 2.3.0 testing scope

Before you rely on a report

What a verdict covers.

It covers

  • Your terminal management system's OCPI interface.

  • Each request and response, with the rule behind the result.

  • A report you can share with a CPO.

It does not cover

  • Physical terminals.

  • Settlement with your payment processor.

  • AFIR compliance.

AFIR places the card payment duty on operators of recharging points, not on terminal providers. From 1 January 2027 it reaches existing points of 50 kW or more on the TEN-T road network and on safe and secure parking areas. Your OCPI side is what we test. Regulation (EU) 2023/1804, Article 5

Sandbox-tested. These checks have run against our own sandbox terminal system, not yet against a terminal provider's own system. A report is not a certification.

Before you connect.

Do I need a physical terminal?

No. ChargerDojo talks to your terminal management system over OCPI. Your system still has to start the session and, when the CPO invoices, send the confirmation, so use a test terminal or a script of your own.

Our system connects as an eMSP. Does this apply?

The journey needs a Payments Sender interface. If you connect through eMSP modules without Payments, test your system as an eMSP endpoint instead. If you can choose, connect over OCPI 2.3.0 Payments, where the module is part of the standard.

We are a CPO connecting a terminal provider. What can we test?

Run the Payments suite against your Receiver interface, on Automate, $499 a month. No journey plays the PTP against a CPO today.

Is a report a certification?

No. ChargerDojo is an independent testing tool. A report records the checks that ran against your endpoint.

Run it before your first CPO connects.

Free on our sandbox, no login. Testing your own system needs Automate, $499 a month.