SDK telemetry
The Node and Python server SDKs can report their own failures back to Von Payments so SDK bugs surface faster. It is on by default with a test key (vp_sk_test_*) and off with a live key; an explicit setting always wins:
const vonpay = new VonPayCheckout({ apiKey, telemetry: { enabled: false } });
client = VonPayCheckout(api_key, telemetry={"enabled": False})
When it is on, the SDK prints one console notice at construction, linking here.
What is sent
One small JSON event when a call in a fixed set of operations fails — session create/get, payment intent create/capture/void, refund create, token create, capabilities, and webhook signature verification — on a non-retryable response, a retry that ran out or a network error. Buyer-profile, webhook-subscription and webhook-event calls never produce a telemetry event (your errorReporter still fires for them). It goes to POST /v1/sdk-telemetry with your secret key:
| Field | Value |
|---|---|
sdk_name, sdk_version, runtime | checkout-node / checkout-python, the SDK version, the runtime (e.g. node-22.4.0) |
operation | Which SDK method failed, from a closed list |
error_code | The API error code, or a generic class for a non-API failure |
request_id_hash | The X-Request-Id of the failed call as a SHA-256 hash — never the id itself |
occurred_at | Timestamp |
context.retry_count, context.http_status | When known |
Nothing else: no request or response bodies, no amounts, no buyer data, no headers. Before sending, the SDK scans every string in the event for the shape of an API key, a session secret, a webhook secret or an email address and drops the whole event on a match; an event over 2 KB is not sent. Each POST is fire-and-forget with a 5-second timeout, never throws into your code, and pauses for 60 seconds after a 429.
Your own errorReporter callback (Node, Python) is independent of this channel and runs whether or not telemetry is on.
Serverless runtimes
On Vercel or AWS Lambda the SDK warns at construction: the POST is fire-and-forget, so a function that freezes immediately after responding can drop it. Nothing about your payment calls is affected — only the telemetry event may be lost. If you want every event delivered from a serverless runtime, disable telemetry and use errorReporter with your own observability pipeline.
Behind a firewall
The event goes to https://checkout.vonpay.com/v1/sdk-telemetry — the SDK's default API host, regardless of any custom baseUrl you configured for your own calls. If the SDK warns about a telemetry network error or timeout while your API calls succeed, an egress rule is blocking that path; allow checkout.vonpay.com:443, or disable telemetry. The warning is printed once per SDK client (a serverless function that constructs a client per request sees it repeat) and the SDK keeps working either way.