هذه الصفحة متاحة بالإنجليزية فقط حاليًا.
Rapyd
Rapyd Hosted Checkout, cards and local payment methods in 100+ countries on Rapyd's page; the balance is credited only after the payment is re-read from Rapyd with a signed request.
What you need
In the Rapyd Client Portal (dashboard.rapyd.net), Developers → Credentials Details:
access_key: the access key.secret_key: the secret key.
In your panel open Settings → Payments → Add method → Rapyd and enter both.
Sandbox: switch the Client Portal to sandbox (top right), use the sandbox keys and tick sandbox (test) mode; the panel then talks to sandboxapi.rapyd.net. Sandbox and production keys differ.
Webhook (required)
Rapyd reports a finished payment by webhook. In Client Portal → Developers → Webhooks set the URL to:
https://<your-panel-domain>/payments/rapyd/callback
Enable at least Payment Completed. With Payment Failed, Payment Expired and Payment Canceled enabled too, failures show up in the panel at once.
The panel does not trust the webhook body. It reads only the payment id (payment_…) and fetches that payment again from Rapyd with a signed GET /v1/payments/{payment} using your keys. The balance is credited only when Rapyd returns the payment as closed (CLO) and captured (paid) and its reference matches our payment number. A forged webhook therefore cannot credit anything; a mismatch is refused with 400.
Flow
- The customer enters an amount and picks Rapyd. No phone number is asked.
- The panel opens a checkout page with a signed
POST /v1/checkout: amount in the panel currency,merchant_reference_idset to our payment number,capture: true, a 60-minute page lifetime (the same as the panel's payment record). The customer is sent to Rapyd's page, which lists cards, bank transfers, e-wallets and so on for the country. - When done, the customer returns to the panel's
/payments/rapyd/return, which only redirects to Add funds and never touches the balance. - Rapyd sends the webhook, the panel re-reads the payment and applies the result. The same payment arriving again with the same status is ignored; the balance is never credited twice.
Statuses
| Rapyd payment status | Result in the panel |
|---|---|
CLO with paid: true |
completed, balance credited |
CLO with paid: false, ACT |
pending (3D Secure, capture or a bank transfer outstanding) |
CAN, ERR |
failed; Rapyd's failure message goes into the payment note |
REV |
failed (reversed by Rapyd) |
EXP |
expired |
Country and currency
A Rapyd checkout page needs a country, which decides the methods shown. The panel uses the method's extra.billing_country (two-letter code) if set, otherwise the country of the panel currency (TRY → TR, USD → US, EUR → DE…). Set it if most of your customers are elsewhere.
The panel currency must be one your Rapyd account supports for that country. Decimals follow the currency (whole numbers for JPY, KRW and similar).
Common problems
- "Payment could not be started: UNAUTHENTICATED_API_CALL" or a signature error: the keys belong to the other environment, or the secret key was copied incompletely. The server clock must also be within 60 seconds.
- No payment methods on the page: your account has none enabled for that country and currency. Check
extra.billing_countryor your Rapyd account settings. - Paid but no balance: the webhook URL is missing or Payment Completed is off. Check the webhook log in the Client Portal; a 400 from the panel means the payment's reference does not belong to this panel.
- Payment stuck on pending: normal for bank transfers until the money arrives; Rapyd sends another webhook when it is captured and the payment completes by itself.