Error catalog ยท OpenAPI 3.2.1

ValidConvert API usage guide

Swagger is intentionally read-only. Try it out is disabled and authorization is never persisted. Examples below use placeholders only.

Quick examples

Get converters

curl https://api.validconvert.com/v1/converters

Browser session: CSRF and login

curl -c vc-cookies.txt https://api.validconvert.com/v1/auth/csrf

curl -b vc-cookies.txt -c vc-cookies.txt \
  -H "Content-Type: application/json" \
  -H "X-CSRF-TOKEN: <CSRF_TOKEN>" \
  -d '{"email":"[email protected]","password":"<PASSWORD>"}' \
  https://api.validconvert.com/v1/auth/login

If adaptive login protection responds with VC_TURNSTILE_REQUIRED, obtain a fresh Turnstile token for action login_challenge and retry with X-ValidConvert-Turnstile-Token: <TURNSTILE_TOKEN>.

Create an API key

curl -b vc-cookies.txt \
  -H "Content-Type: application/json" \
  -H "X-CSRF-TOKEN: <CSRF_TOKEN>" \
  -H "Idempotency-Key: 0afde9dd-3643-44b2-9164-9cd4a155cb5b" \
  -d '{}' \
  https://api.validconvert.com/v1/account/api-key

The API-key secret is returned once. Store it securely; it cannot be recovered later.

API conversion

curl --data-binary @statement.xml \
  -H "Authorization: Bearer <API_KEY>" \
  -H "Content-Type: application/octet-stream" \
  -H "Idempotency-Key: 0afde9dd-3643-44b2-9164-9cd4a155cb5b" \
  -H "X-ValidConvert-Input-Bytes: <EXACT_DECIMAL_BYTES>" \
  "https://api.validconvert.com/v1/conversions?converter_id=camt053-to-mt940&converter_version=1" \
  --output statement.mt940

Replay the same logical request with the same Idempotency-Key. A successful replay does not debit credits again while the retained result remains available.

Get balance

curl -H "Authorization: Bearer <API_KEY>" https://api.validconvert.com/v1/credits/balance

Create checkout and read purchase

curl -b vc-cookies.txt \
  -H "Content-Type: application/json" \
  -H "X-CSRF-TOKEN: <CSRF_TOKEN>" \
  -H "Idempotency-Key: 2f7583dc-b8ff-4bb4-970f-9ae80e6a9df4" \
  -d '{"pack_id":"STANDARD"}' \
  https://api.validconvert.com/v1/billing/checkout-sessions

curl -b vc-cookies.txt https://api.validconvert.com/v1/billing/purchases/pur_<UUID>

PowerShell binary upload

$headers = @{
  Authorization = "Bearer <API_KEY>"
  "Idempotency-Key" = "0afde9dd-3643-44b2-9164-9cd4a155cb5b"
  "X-ValidConvert-Input-Bytes" = (Get-Item .\statement.xml).Length.ToString()
}
Invoke-WebRequest \
  -Uri "https://api.validconvert.com/v1/conversions?converter_id=camt053-to-mt940&converter_version=1" \
  -Method Post \
  -Headers $headers \
  -ContentType "application/octet-stream" \
  -InFile .\statement.xml \
  -OutFile .\statement.mt940

For browser-session calls in PowerShell, keep the same WebRequestSession for cookies and send the current X-CSRF-TOKEN on state-changing requests.

Conversion limits and credit cost

Trial input is limited to 10,000,000 decimal bytes and 10,000 transactions. Paid web/API input is limited to 50,000,000 decimal bytes and 50,000 transactions. Successful conversion output is capped at 100,000,000 decimal bytes.

Paid CAMT053-to-MT940 V1 cost is max(1, ceil(input_bytes / 10,000,000)) credits: 1-10,000,000 bytes = 1 credit; 10,000,001-20,000,000 = 2; 20,000,001-30,000,000 = 3; 30,000,001-40,000,000 = 4; 40,000,001-50,000,000 = 5.

Successful encrypted output is retained privately for idempotent replay for up to 24 hours; the original input is not retained after processing.

Authentication lifetimes

Email-verification tokens expire after 24 hours. Password-reset tokens expire after 30 minutes and are one-use. Web sessions expire after 30 minutes of inactivity and have a 12-hour absolute lifetime; recent authentication is valid for 10 minutes.

API usage

Supported technical uses include internal automation, processing accounting/professional client files, ERP integrations where ValidConvert is a secondary function, and legitimate server-to-server automation.

Without a separate agreement, do not expose an API key, resell API access or credits, operate a generic public proxy whose backend is primarily ValidConvert, or present ValidConvert as a white-label service.

Browser origin and server-to-server clients

The production browser frontend origin is exactly https://validconvert.com. There is no wildcard, Origin: null allowance, or implicit arbitrary-subdomain allowance. CORS is a browser policy, not authentication.

Server-to-server Bearer clients do not need an Origin header.

Errors and versioning

Machine-readable errors use application/problem+json. Unknown paths return 404 VC_NOT_FOUND; unsupported HTTP methods return 405 VC_METHOD_NOT_ALLOWED, never an HTML error page. See the error catalog. The public API remains under /v1; OpenAPI document version 3.2.1 is independent from ValidConvert API version 1.0.0.

Within V1, removing or renaming fields, changing field types or authentication, adding a required parameter, changing idempotency or economic semantics, or reducing a contractual guarantee is a breaking change and requires a new API version when applicable. Optional fields or endpoints, new converters or converter versions, and higher limits may be compatible additions depending on the change. V1 is the active initial API and is not deprecated or under a sunset policy.