Rheopay

Webhooks & API

Integrate Rheopay into your own systems using API keys and outgoing webhooks.

3 MIN READ

Webhooks & API

Rheopay exposes a REST API and an outgoing webhook system so you can integrate payment events into your own applications, automations, and back-office systems.


API keys

API keys let your server-side code call the Rheopay API on behalf of your merchant account.

Creating an API key

  1. Go to Settings → API Keys → New Key.
  2. Give it a descriptive name (e.g. CRM integration, Automation server).
  3. Copy the key immediately — it is shown only once.
Store keys securely

API keys have full merchant-level access. Store them in environment variables or a secrets manager, never in source code or client-side JavaScript.

Revoking an API key

Go to Settings → API Keys, find the key, and click Revoke. Any requests using that key will immediately return 401 Unauthorized.

Using an API key

Pass your API key in the Authorization header on every request:

Authorization: Bearer <your-api-key>

REST API overview

The base URL for all API requests is https://yourdomain.com/api.

Authentication

All endpoints require either a logged-in session (cookie-based) or an Authorization: Bearer <api-key> header.

Core endpoints

MethodPathDescription
GET/api/linksList all payment links.
POST/api/linksCreate a new payment link.
GET/api/links/:idGet a single link by ID.
PUT/api/links/:idUpdate a link.
DELETE/api/links/:idDelete a link.
POST/api/links/:id/activateActivate a draft link.
POST/api/links/:id/deactivateDeactivate an active link.
POST/api/links/:id/send-emailSend the link by email.
POST/api/links/:id/duplicateDuplicate a link as a new draft.

Transactions

MethodPathDescription
GET/api/transactionsList transactions with filters.
GET/api/transactions/:idGet transaction detail.
POST/api/transactions/:id/refundRefund a transaction.

Customers

MethodPathDescription
GET/api/customersList customers.
POST/api/customersCreate a customer.
GET/api/customers/:idGet a customer.
PUT/api/customers/:idUpdate a customer.
DELETE/api/customers/:idDelete a customer.

Products

MethodPathDescription
GET/api/productsList products.
POST/api/productsCreate a product.
PUT/api/products/:idUpdate a product.
DELETE/api/products/:idDelete a product.

Analytics

MethodPathDescription
GET/api/analytics/statsSummary stats for a date range.
Http
POST /api/links
Content-Type: application/json
Authorization: Bearer 

{
  "description": "Invoice #1042",
  "amount": 12500,
  "currency": "EUR",
  "customerName": "Jane Smith",
  "customerEmail": "jane@example.com",
  "expiresAt": "2025-12-31T23:59:59Z",
  "status": "ACTIVE"
}

Amounts are in the smallest currency unit (e.g. cents for EUR/USD). 12500 = €125.00.

Response:

Json
{
  "id": "clx...",
  "token": "abc123xyz",
  "url": "https://yourdomain.com/pay/abc123xyz",
  "status": "ACTIVE",
  "createdAt": "2025-06-01T10:00:00Z"
}

Outgoing webhooks

Rheopay can send an HTTP POST to your server whenever a payment event occurs.

Configuring a webhook

  1. Go to Settings → Webhooks → New Webhook.
  2. Enter your endpoint URL (must be publicly reachable, HTTPS recommended).
  3. Select the events to subscribe to.
  4. Save. Rheopay will send a test event to verify the endpoint.

Webhook events

EventTriggered when
transaction.succeededA payment is completed successfully.
transaction.failedA payment attempt fails.
transaction.refundedA refund is issued.
link.createdA new payment link is created.
link.activatedA link is activated.
link.expiredA link reaches its expiry date or max-use limit.
link.paidA link transitions to Paid status.

Webhook payload

All events share the same envelope:

Json
{
  "event": "transaction.succeeded",
  "timestamp": "2025-06-01T10:05:00Z",
  "data": {
    "transactionId": "txn_...",
    "linkId": "clx...",
    "amount": 12500,
    "currency": "EUR",
    "customerEmail": "jane@example.com",
    "status": "SUCCEEDED"
  }
}

Verifying webhook signatures

Each request from Rheopay includes an X-Rheopay-Signature header. Verify it to confirm the request is genuine:

  1. Take the raw request body as a string.
  2. Compute HMAC-SHA256(body, your-webhook-secret).
  3. Compare the result (hex-encoded) to the X-Rheopay-Signature header value.

Your webhook secret is shown once when you create the webhook endpoint. Store it securely.

Retry policy

If your endpoint returns anything other than a 2xx status code, Rheopay retries with exponential back-off up to 5 times over 24 hours.

Testing webhooks

From the webhook detail page, click Send test event to fire a sample payload to your endpoint and verify your handler is working.

Delivery log

Go to Settings → Webhooks → [your webhook] → Delivery Log to see a history of all sent events, their HTTP response codes, and any error details.


Global search API

Http
GET /api/search?q=jane
Authorization: Bearer 

Returns matching links, customers, and transactions in a single response. Useful for building internal dashboards or search interfaces.


© 2026 RheopayBuilt with Mordoc