This section provides the complete technical specification for the Rebell Payments API. Use this reference alongside the Payment Integration guides for implementation details and best practices.Documentation Index
Fetch the complete documentation index at: https://docs.rebellapp.com/llms.txt
Use this file to discover all available pages before exploring further.
Base URLs
Sandbox
Production
Authentication
All API requests require RSA-SHA256 signature authentication. Every request must include these headers:| Header | Required | Description |
|---|---|---|
Client-Id | Yes | Your merchant identifier |
Request-Time | Yes | ISO 8601 UTC timestamp (e.g., 2024-01-10T12:22:30Z) |
Signature | Yes | RSA signature: algorithm=SHA256withRSA, keyVersion=<n>, signature=<base64> |
Content-Type | Yes | Must be application/json |
Signature Construction
The signature is computed over a signing string built from:For detailed signing implementation with code examples in Node.js, Python, and Java, see Authentication & Environments or the Authentication Deep Dive.
Request Format
All requests use JSON with the following conventions:- Amounts are specified in minor units (cents). Example:
1250= €12.50 - Timestamps use ISO 8601 format in UTC (with
Zsuffix) - IDs must be unique per transaction (
paymentRequestIdserves as idempotency key)
Example Request Body
Response Format
All responses include aresult object indicating the outcome:
Success Response
Result Status Codes
| Status | Meaning | Action |
|---|---|---|
S | Success | Transaction completed successfully |
F | Failure | Transaction failed - check resultCode for details |
U | Unknown | Indeterminate state - use Inquiry API to check status |
A | Accepted | Request accepted, processing asynchronously |
Available Endpoints
Payments
| Endpoint | Method | Description |
|---|---|---|
/v1/payments/createQROrder | POST | Create a merchant-presented QR code for payment |
/v1/payments/retailPay | POST | Process payment from customer-presented QR/barcode |
/v1/payments/linkPayCreate | POST | Create a redirect link for app-to-app payment |
/v1/payments/inquiryPayment | POST | Query payment status |
Webhooks
| Endpoint | Direction | Description |
|---|---|---|
| Your webhook URL | Rebell → Merchant | Receives payment notifications (payment.succeeded, payment.failed) |
Error Handling
When a request fails, the response includes error details:Error Response
Common Error Codes
| Code | Description | Resolution |
|---|---|---|
INVALID_SIGNATURE | Signature validation failed | Verify signing string construction and key |
TIMESTAMP_INVALID | Request-Time outside ±5 minute window | Sync server clock with NTP |
INVALID_CLIENT_ID | Client-Id not recognized | Verify credentials for correct environment |
ORDER_NOT_EXIST | Payment/order not found | Verify paymentId or paymentRequestId |
REPEAT_REQUEST | Duplicate paymentRequestId | Use unique ID for each transaction |
Rate Limits
| Environment | Limit |
|---|---|
| Sandbox | 100 requests/minute |
| Production | Contact Rebell for limits based on your integration |
Testing in Sandbox
The sandbox environment simulates the full payment flow:- Create payments using test credentials
- Simulate user actions - payments auto-complete after creation
- Receive webhooks to your configured endpoint
- Query status using the Inquiry API
SDK & Code Examples
Complete signing and API client implementations are available in the Authentication Deep Dive:- Node.js -
RebellClientclass with full signing - Python -
RebellClientclass with cryptography library - Java - Signing utilities and HTTP client examples
Related Documentation
Quick Integration Guide
Step-by-step integration walkthrough
Authentication Deep Dive
Detailed signing implementation
Webhooks
Webhook setup and signature verification
Error Handling
Complete error codes reference