Web: API-Based Integration
This integration is ideal for partners who want to predefine transaction parameters using the Paybis API and initialize the widget with a session ID (requestId).
You can either generate a direct URL to open the widget (via redirect, new tab, or iframe), or use the Paybis Web SDK to open it programmatically within your web application.
Building integration
To ensure the security of your integration, signature verification is required for all Public and Private API requests.
More details on how to generate the signature.
The widget must be opened from a whitelisted domain. This applies especially when used in a webview. Contact Paybis to register your domain(s).
To build the integration, follow these steps:
Step | Description | Required | Endpoints (server-to-server) |
|---|---|---|---|
1 | Get the list of supported fiat currencies and crypto assets depending on the transaction flow type (Buy/Sell).
| ⚠️ Optional | |
2 | Get the list of available payment/payout methods for the selected currency pair. | ⚠️ Optional | |
3 | Request a quote from Paybis for a certain amount and currency pair | ⚠️ Optional | |
4 | Obtain the | ✅ | |
4.1 | Passwordless option | ⚠️ Optional | — |
5 | Generate a widget URL using | ✅ | — |
Web: Widget initialization options
✅ Widget via Web SDK (Recommended)
For most use cases, we recommend using the Web SDK, which simplifies integration and ensures all features work out of the box.
The SDK provides multiple methods for opening the widget and supports flexible configuration options.
👉 For full integration details, see the guide:
Learn more in the Web SDK documentation
Direct Link to the Widget
Generate the widget URL using the following format:
https://{domain}/?requestId={requestId}&successReturnURL={urlencodedUrl}&failureReturnURL={urlencodedUrl}
The actual domain and encoded URLs need to be substituted into the placeholders:
domain:- Sandbox (for testing): widget.sandbox.paybis.com
- Production: widget.paybis.com
requestId: A string in the following format:uuid. For example,a122b998-15a4-4442-8b9e-2add17d59617.urlencodedUrl: A URL-encoded string for success and failure return URLs.
Supported query parameters:
Parameter | Required | Description | Comment |
|---|---|---|---|
| mandatory | Session ID is required to initialize the widget. | It can be obtained from the POST Request endpoint response. It's important to obtain a new |
| optional | Allows to set the URL to which a user is redirected after completing a transaction in the widget. | If the |
| optional | Allows to set the URL to which a user is redirected after getting a transaction rejected/canceled in the widget. | If the |
| optional | A unique token is generated for customer authorization. | One-time authentication token used as an argument on Widget initialization for automatic login of the customer |
| optional | Allows hiding the Close widget icon on the UI. | Set to |
| optional | Defines the widget layout. | Use |
If you intialize the widget via a custom iframe (not via the Web SDK)When using a raw iframe integration, you're responsible for:
Handling widget and Payment Gateway events manually, such as transaction completion or user cancellation
→ View the widget internal events
→ View the Payment Gateway event handling guideSetting correct iframe permissions and configuration to ensure proper functionality (e.g., payments, KYC)
→ See iframe configuration
Updated about 1 month ago