Pagos con monedas estables
Usa Rapyd para cobrar pagos con monedas estables. Esta opción permite a los clientes pagar con sus monederos criptográficos mientras tú recibes fondos en moneda fiduciaria en

El cliente selecciona el criptografía opción en tu página de pago.
Tu backend solicita a Rapyd que cree un pago especificando el importe, la moneda y el tipo de método de pago (por ejemplo, at_crypto_ewallet).
Rapyd responde con una redirect_url única. Tu sitio web debe dirigir al cliente a esta URL para completar

En la página de pago alojada (página de redireccionamiento), el cliente selecciona su moneda estable (por ejemplo, USDC o USDT) y la red preferida (por ejemplo, Ethereum o Polygon).
Al cliente se le presenta un código QR o una dirección de monedero de cadena de bloques. Utilizan su propia billetera criptográfica (como MetaMask o Trust Wallet) para escanear el código o copiar la dirección y enviar los fondos
La página alojada espera a que se confirme la transacción en la cadena de bloques.

Una vez que se detecta la transacción, la página alojada (URL de redireccionamiento) redirige automáticamente al cliente a la página de «pago exitoso».
Rapyd confirma que se han recibido los fondos y actualiza el estado del pago a Cerrado y envía una notificación.
Rapyd envía un webhook a tu servidor, indicando que el pago se ha completado.
Para identificar las eWallets que están disponibles en SG y SGD, use Listar los métodos de pago por país con los siguientes parámetros:
Descripción de los parámetros de consulta
Parámetro de consulta | Descripción |
|---|---|
país | Introducir SG como código del país. |
moneda | Introducir SGD como código de la moneda. |
Solicitud de la lista de métodos de pago por país
Solicitud
// Request URL: GET https://sandboxapi.rapyd.net/v1/payment_methods/country?currency=USD&country=AT // Message body absent
Respuesta para la lista de métodos de pago por país
Listar métodos de pago por país describe los campos de la respuesta.
Respuesta
{ "status": { "error_code": "", "status": "SUCCESS", "message": "", "response_code": "", "operation_id": "f4cf29d5-4715-438f-93a8-64fa302ef3fa" }, "data": [ { "type": "at_crypto_ewallet", "name": "Crypto E-Wallet in Austria", "category": "ewallet", "image": "", "country": "AT", "payment_flow_type": "redirect_url", "currencies": [ "USD" ], "status": 1, "is_cancelable": false, "payment_options": [ { "name": "complete_payment_url", "type": "string", "is_required": true, "instructions": "URL to redirect user to upon successful payment", "is_updatable": false }, { "name": "error_payment_url", "type": "string", "is_required": true, "instructions": "URL to redirect user to upon failed payment", "is_updatable": false }, { "name": "customer", "type": "customer", "regex": "", "description": "Customer details. Requires specific fields within.", "is_required": true, "is_updatable": false, "required_fields": [ { "name": "name", "type": "string", "regex": "^[a-zA-Z ]{1,100}$", "description": "Customers full name", "is_required": true, "is_updatable": false }, { "name": "email", "type": "string", "regex": "^(?=.{1,512}$)[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+[.][a-zA-Z]{2,}$", "description": "Customer’s email", "is_required": true, "is_updatable": false } ] } ], "is_expirable": false, "is_online": true, "is_refundable": false, "minimum_expiration_seconds": 5, "maximum_expiration_seconds": 259200, "virtual_payment_method_type": null, "is_virtual": false, "multiple_overage_allowed": true, "amount_range_per_currency": [ { "currency": "USD", "maximum_amount": null, "minimum_amount": 5 } ], "is_tokenizable": false, "supported_digital_wallet_providers": [], "is_restricted": false, "supports_subscription": false, "supports_aft": false }, { "type": "at_amex_pos", "name": "AustriaAmex POS PMT", "category": "pos", "image": "", "country": "AT", "payment_flow_type": "", "currencies": [ "USD" ], "status": 1, "is_cancelable": true, "payment_options": [ { "name": "capture", "type": "boolean", "regex": "", "description": "Determines when the payment is processed for capture.", "is_required": false, "is_updatable": false }, { "name": "statement_descriptor", "type": "string", "regex": "", "description": "A text description suitable for a customer's payment statement. 5-22 characters.", "is_required": true, "is_updatable": false }, { "name": "ewallet", "type": "string", "regex": "^ewallet_[a-f0-9]{32}$", "description": "ID of the wallet that the money is paid into. String starting with ewallet_.", "is_required": true, "is_updatable": false }, { "name": "initiation_type", "type": "string", "regex": "(card_present|customer_present|installment|moto|recurring|unscheduled)", "description": "How the transaction was initiated.", "is_required": false, "is_updatable": false }, { "name": "device_id", "type": "string", "regex": "", "description": "Unique ID from POS provider.", "is_required": true, "is_updatable": false }, { "name": "payment_advice", "type": "object", "regex": "", "description": "Raw JSON from POS device.", "is_required": true, "is_updatable": false } ], "is_expirable": true, "is_online": false, "is_refundable": true, "minimum_expiration_seconds": 0, "maximum_expiration_seconds": 2592000, "virtual_payment_method_type": null, "is_virtual": false, "multiple_overage_allowed": false, "amount_range_per_currency": [ { "currency": "USD", "maximum_amount": null, "minimum_amount": null } ], "is_tokenizable": false, "supported_digital_wallet_providers": [], "is_restricted": false, "supports_subscription": false, "supports_aft": false }, { "type": "at_mastercard_card", "name": "Mastercard", "category": "card", "image": "https://iconslib.rapyd.net/checkout/at_mastercard_card.png", "country": "AT", "payment_flow_type": "", "currencies": [ "USD" ], "status": 1, "is_cancelable": true, "payment_options": [ { "name": "capture", "type": "boolean", "regex": "", "description": "Determines when the payment is processed for capture.", "is_required": false, "is_updatable": false }, { "name": "complete_payment_url", "type": "string", "regex": "", "description": "the complete_payment_url field must be filled in.", "is_required": true, "is_updatable": false }, { "name": "error_payment_url", "type": "string", "regex": "", "description": "the error_payment_url field must be filled in.", "is_required": true, "is_updatable": false }, { "name": "customer", "type": "string", "regex": "", "description": "ID of a customer object, a string starting with ‘cus_‘. The customer object must contain the fields listed as required, and can contain additional fields listed here.If the customer object does not exist yet, use ‘Create Customer‘", "is_required": true, "is_updatable": false }, { "name": "ewallet", "type": "string", "regex": "^ewallet_[a-f0-9]{32}$", "conditions": [ { "operator": "$eq", "description": "If the value of the field type is true, ewallet is mandatory field", "element_name": "payment.payment_method_options.aft", "threshold_value": "true" } ], "description": "ID of the wallet that the money is paid into. String starting with ewallet_.", "is_required": false, "is_updatable": false }, { "name": "initiation_type", "type": "string", "regex": "(customer_present|installment|moto|recurring|unscheduled)", "description": "This indicates how the transaction was initiated", "is_required": false, "is_updatable": false } ], "is_expirable": true, "is_online": false, "is_refundable": true, "minimum_expiration_seconds": 600, "maximum_expiration_seconds": 604800, "virtual_payment_method_type": null, "is_virtual": false, "multiple_overage_allowed": false, "amount_range_per_currency": [ { "currency": "USD", "maximum_amount": null, "minimum_amount": null } ], "is_tokenizable": false, "supported_digital_wallet_providers": [], "is_restricted": false, "supports_subscription": true, "supports_aft": true }, { "type": "at_visa_card", "name": "Visa", "category": "card", "image": "https://iconslib.rapyd.net/checkout/at_visa_card.png", "country": "AT", "payment_flow_type": "", "currencies": [ "USD" ], "status": 1, "is_cancelable": true, "payment_options": [ { "name": "capture", "type": "boolean", "regex": "", "description": "Determines when the payment is processed for capture.", "is_required": false, "is_updatable": false }, { "name": "complete_payment_url", "type": "string", "regex": "", "description": "the complete_payment_url field must be filled in.", "is_required": true, "is_updatable": false }, { "name": "error_payment_url", "type": "string", "regex": "", "description": "the error_payment_url field must be filled in.", "is_required": true, "is_updatable": false }, { "name": "customer", "type": "string", "regex": "", "description": "ID of a customer object, a string starting with ‘cus_‘. The customer object must contain the fields listed as required, and can contain additional fields listed here.If the customer object does not exist yet, use ‘Create Customer‘", "is_required": true, "is_updatable": false }, { "name": "ewallet", "type": "string", "regex": "^ewallet_[a-f0-9]{32}$", "conditions": [ { "operator": "$eq", "description": "If the value of the field type is true, ewallet is mandatory field", "element_name": "payment.payment_method_options.aft", "threshold_value": "true" } ], "description": "ID of the wallet that the money is paid into. String starting with ewallet_.", "is_required": false, "is_updatable": false }, { "name": "initiation_type", "type": "string", "regex": "(customer_present|installment|moto|recurring|unscheduled)", "description": "This indicates how the transaction was initiated", "is_required": false, "is_updatable": false } ], "is_expirable": true, "is_online": false, "is_refundable": true, "minimum_expiration_seconds": 600, "maximum_expiration_seconds": 604800, "virtual_payment_method_type": null, "is_virtual": false, "multiple_overage_allowed": false, "amount_range_per_currency": [ { "currency": "USD", "maximum_amount": null, "minimum_amount": null } ], "is_tokenizable": false, "supported_digital_wallet_providers": [], "is_restricted": false, "supports_subscription": true, "supports_aft": true } ] }
Identifique los campos que su cliente debe completar para el método de pago. Para hacerlo, use Campos obligatorios para obtener el método de pago con el siguiente parámetro:
Descripción de los parámetros de ruta
Parámetro de ruta | Descripción |
|---|---|
tipo | Introduzca sg_grabpay_ewallet como tipo de método de pago. |
Obtener la solicitud para los campos obligatorios del método de pago.
Solicitud
// Request URL: GET https://sandboxapi.rapyd.net/v1/payment_methods/required_fields/at_crypto_ewallet // Message body absent
Obtener la respuesta para los campos obligatorios del método de pago.
Respuesta
{ "status": { "error_code": "", "status": "SUCCESS", "message": "", "response_code": "", "operation_id": "b65cb7c6-d870-4e57-89ce-d7107d98d4c5" }, "data": { "type": "at_crypto_ewallet", "fields": [], "payment_method_options": [], "payment_options": [ { "name": "complete_payment_url", "type": "string", "is_required": true, "instructions": "URL to redirect user to upon successful payment", "is_updatable": false }, { "name": "error_payment_url", "type": "string", "is_required": true, "instructions": "URL to redirect user to upon failed payment", "is_updatable": false }, { "name": "customer", "type": "customer", "regex": "", "description": "Customer details. Requires specific fields within.", "is_required": true, "is_updatable": false, "required_fields": [ { "name": "name", "type": "string", "regex": "^[a-zA-Z ]{1,100}$", "description": "Customers full name", "is_required": true, "is_updatable": false }, { "name": "email", "type": "string", "regex": "^(?=.{1,512}$)[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+[.][a-zA-Z]{2,}$", "description": "Customer’s email", "is_required": true, "is_updatable": false } ] } ], "minimum_expiration_seconds": 5, "maximum_expiration_seconds": 259200 } }
Cuando su cliente haga el pago en su sitio web, use Crear un pago con los siguientes parámetros para que Rapyd procese el pago bancario de su cliente:
Descripción de los parámetros de cuerpo
Parámetro del cuerpo | Descripción |
|---|---|
amount | Introducir 19.99 como monto del pago. |
currency | Introducir SGD como código de la moneda. |
payment_method | Entrar at_crypto_ewallet como el valor. |
complete_payment_url | Sustituya el ejemplo https://success_example.net con la URL real de tu sitio web al que desea redirigir al cliente cuando el pago se realice correctamente. |
error_payment_url | Sustituya el ejemplo https://error_example.net con la URL de su sitio web real al que desea redirigir al cliente cuando se produzca un error en el pago. |
Crear solicitud de pago
Solicitud
/ Request URL: POST https://sandboxapi.rapyd.net/v1/payments // Message body: { "amount": 100, "currency": "USD", "payment_method": "at_crypto_ewallet", "customer": "cus_4e25112ac20e144ad073a614dc46934b", "complete_payment_url": "https://complete.rapyd.net", "error_payment_url": "https://error.rapyd.net" }
Crear respuesta de pago
Respuesta
{ "status": { "error_code": "", "status": "SUCCESS", "message": "", "response_code": "", "operation_id": "4f052852-0950-4fa9-9f49-456f60dc0ab0" }, "data": { "id": "payment_724f85b89536bee8a605369e152cca30", "amount": 0, "original_amount": 100, "is_partial": false, "currency_code": "USD", "country_code": "AT", "status": "ACT", "description": "", "merchant_reference_id": "", "customer_token": "cus_4e25112ac20e144ad073a614dc46934b", "payment_method": "other_9df7ce3e637d161ba3ac5ad9649fe590", "payment_method_data": { "id": "other_9df7ce3e637d161ba3ac5ad9649fe590", "type": "at_crypto_ewallet", "category": "ewallet", "metadata": {}, "image": "", "webhook_url": "", "supporting_documentation": "", "next_action": "not_applicable", "bic_swift": "", "account_last4": "" }, "auth_code": null, "expiration": 1761735777, "captured": true, "refunded": false, "refunded_amount": 0, "receipt_email": "", "redirect_url": "", "complete_payment_url": "https://complete.rapyd.net", "error_payment_url": "https://error.rapyd.net", "receipt_number": "", "flow_type": "", "address": null, "statement_descriptor": "Doc Team", "transaction_id": "", "created_at": 1761476577, "metadata": {}, "failure_code": "", "failure_message": "", "paid": false, "paid_at": 0, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual_codes": {}, "textual_codes": { "code": "paygw_3cd7b4416b8acbb696b3a31155ffa2d9" }, "instructions": [ { "name": "instructions", "steps": [ { "step1": "Redirect to PalWallet payment page.", "step2": "Scan the QR code or pay via your crypto wallet." } ] } ], "ewallet_id": "ewallet_c1943cfeda5f98247ab117e5d2648861", "ewallets": [ { "ewallet_id": "ewallet_c1943cfeda5f98247ab117e5d2648861", "amount": 100, "percent": 100, "refunded_amount": 0 } ], "payment_method_options": {}, "payment_method_type": "at_crypto_ewallet", "payment_method_type_category": "ewallet", "fx_rate": 1, "merchant_requested_currency": null, "merchant_requested_amount": null, "fixed_side": "", "payment_fees": null, "invoice": "", "escrow": null, "group_payment": "", "cancel_reason": null, "initiation_type": "customer_present", "mid": "", "next_action": "pending_confirmation", "error_code": "", "remitter_information": {}, "save_payment_method": false, "merchant_advice_code": null, "merchant_advice_message": null, "transaction_link_id": null } }
Simulación de un pago con una eWallet local
El sandbox no simula directamente la acción del cliente al completar la transacción con la eWallet local. Puede simular esta acción con el procedimiento descrito en Completar el pago. Para ello, necesitará el ID de pago que generó en su sandbox.