---
title: "Developers: one REST API for payments | Centrobill"
description: "Checkout, tokenization, recurring billing, smart routing, recovery and reporting through one REST API, with SDKs for Node, Python, PHP and Go."
url: https://centrobill.com/developers/
canonical: https://centrobill.com/developers/
type: developers
related:
  - https://centrobill.com/high-risk-payment-processing/
  - https://centrobill.com/max/
---
# Built for the engineers who actually integrate it.

![Two colleagues reviewing sketches together in a modern office](https://centrobill.com/media/developers-uploaded-banner.webp)

One coherent REST API surface covers checkout, tokenization, recurring billing, smart routing, payment recovery, and reporting. SDKs for Node, Python, PHP, and Go. Sandbox parity with production.

## What you're actually working with

One API surface for every capability, built to behave the same way in production as it does in testing.

Node Python PHP Go

## Signed webhooks

Every event is signed, so your systems can verify it really came from Centrobill.

- Signed events
- Verified sender
- Documented payloads

Node.js

// Verify a webhook before trusting it

const expected = sign(rawBody, WEBHOOK_SECRET);

if (!safeEqual(expected, req.headers[SIGNATURE_HEADER])) {

return res.status(401).end(); // reject unsigned events

}

handleEvent(JSON.parse(rawBody));

## Idempotent writes

Retry any request safely. The same request never creates a second charge.

- Safe retries
- No duplicate charges
- Same response every time

HTTP

POST /payments

Idempotency-Key: 8c1f…42ab

→ 201 Created { "status" : "approved" }

POST /payments // retry, same key

→ 200 OK { "status" : "approved" } // no duplicate

## Exponential backoff

Failed calls are retried with growing gaps, so a temporary issue doesn't become a lost payment.

- Spaced retries
- Automatic after a failure
- No retry storms

Log

attempt 1 failed retry in 2s

attempt 2 failed retry in 4s

attempt 3 failed retry in 8s

attempt 4 approved

## Sandbox mirrors production

What passes testing behaves the same way when it goes live.

- Test cards
- Simulated declines
- Same behaviour as live

// Same code, two environments

const client = createClient({ environment : "sandbox" });

// Going live is a one-line change

const client = createClient({ environment : "production" });

Options

## Integration options

Choose the integration path that fits your team.

- Direct REST API Full control, for teams that want to build it themselves.
- Hosted checkout A PCI-compliant payment page, without building one.
- Mobile SDKs Native libraries for iOS and Android.
- Pre-built plugins Ready-made integrations for common e-commerce and subscription platforms.

![An engineer at a desk reading an API reference next to code on a large monitor](https://centrobill.com/media/developers-docs-1200.webp)

## What's documented

Everything a real integration needs is already written down.

- Complete API reference with request and response examples in every supported language
- Webhook event types and payload structures
- A sandbox with test cards and simulated decline scenarios
- A status page with live uptime and incident history

## Every setup starts with a conversation

Whatever stage you are at, from pre-launch to nine figures a year, bring your questions. Payments advice is free here.

## Talk to a Payment Advisor

https://centrobill.com/contact
