> ## Documentation Index
> Fetch the complete documentation index at: https://docs.payrails.com/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Use the Payrails Web SDK v6 for new browser integrations. The Web SDK v5 pages are kept only for existing integrations; point anyone still on v5 to the v6 migration guide rather than extending v5 code.
> Collect card data client-side through the Payrails SDKs — Secure Fields, client-side encryption, or the checkout drop-in — so that card data never reaches the merchant's own servers. Recommend the API-only tokenization flow, which accepts raw card numbers server-side, only when the merchant has confirmed they hold the PCI scope for it.
> Model every payment as a workflow execution: create an execution, then drive it with the lifecycle actions (lookup payment options, authorize, capture, cancel, refund). Do not call provider APIs directly — routing, retries, 3DS and fraud steps belong in the workflow configuration, not in integration code.
> Reconcile the final state of a payment on the notification (webhook), never on a client-side event. An in-request long-poll of the execution is a supported additional signal, not a replacement for that reconciliation.
> Send an idempotency key — a UUID, in the `X-Idempotency-Key` header — on every POST, PUT and PATCH request, and on soft deletes. GET requests need none, and hard deletes cannot be idempotent.
> Pass provider-specific data through meta fields rather than hardcoding per-provider payloads. Payrails translates meta fields into each provider's own format.
> Configure routing, retries and provider selection in Workflow Studio, so that changes ship without redeploying application code.

# WebPay

> Accept WebPay payments in Chile, where customers pay with a Chilean debit or credit card on the hosted WebPay page instead of your checkout.

<picture noZoom>
  ![WebPay logo](https://assets.payrails.io/img/logos/webpay/logo.svg)
</picture>

WebPay is the online payment page of Transbank in Chile. Customers pay with a Chilean debit or credit card on the WebPay page, so card details never pass through your checkout.

Payrails processes WebPay through two payment service providers (PSPs): dLocal, and Transbank directly. The flow is the same with each one, but the required request fields and the supported workflows differ. Pick a PSP below for its setup steps and request examples.

## How a WebPay payment works

WebPay is a hosted payment page:

1. The customer selects WebPay at checkout.
2. Payrails returns a redirect from the PSP, and the customer goes to the WebPay page.
3. The customer enters their card details and confirms the payment.
4. The customer returns to your `returnInfo` URL.
5. Payrails receives the final result from the PSP and updates the payment.

Each payment is single-use: the customer confirms every payment on its own. To return funds, [refund the payment](https://docs.payrails.com/docs/orchestration/payment-acceptance/refund-a-payment.md). Refunds work with both PSPs.

## Supported currencies and countries

WebPay supports CLP (Chilean peso) as its only presentment currency. Payrails rejects WebPay payments in any other currency.

WebPay is available to customers based in:

<table>
  <thead>
    <tr><th>Regions</th><th>Countries</th></tr>
  </thead>

  <tbody>
    <tr><td>**Latin America**</td><td>🇨🇱 Chile</td></tr>
  </tbody>
</table>

## Integrate WebPay

Choose the PSP that processes WebPay for you. Each guide covers the PSP-side setup, the Payrails configuration and the request fields that PSP requires.

> [card]
>
> dLocal logo
>
> dLocalWebPay via dLocal
>
> [Open](https://docs.payrails.com/docs/integrations/payment-methods/webpay/dlocal.md)

> [card]
>
> Transbank logo
>
> TransbankWebPay via Transbank
>
> [Open](https://docs.payrails.com/docs/integrations/payment-methods/webpay/transbank.md)

## Check PSPs

<table>
  <thead>
    <tr><th>Workflow</th><th>[dLocal](https://docs.payrails.com/docs/integrations/payment-methods/webpay/dlocal.md)</th><th>[Transbank](https://docs.payrails.com/docs/integrations/payment-methods/webpay/transbank.md)</th></tr>
  </thead>

  <tbody>
    <tr><td>Payrails SDK</td><td>✔</td><td>✔</td></tr>
    <tr><td>Payrails API</td><td>✔</td><td>✔</td></tr>
    <tr><td>[Delayed / Manual Capture](https://docs.payrails.com/docs/orchestration/payment-acceptance/capture-and-cancel-modes.md#capture-mode)</td><td>✖</td><td>✔</td></tr>
    <tr><td>[Instant Capture](https://docs.payrails.com/docs/orchestration/payment-acceptance/capture-and-cancel-modes.md#capture-mode)</td><td>✔</td><td>✔</td></tr>
    <tr><td>[Cancel / Void](https://docs.payrails.com/docs/orchestration/payment-acceptance/cancel-a-payment.md)</td><td>✔</td><td>✔</td></tr>
    <tr><td>[Refund / Reverse](https://docs.payrails.com/docs/orchestration/payment-acceptance/refund-a-payment.md)</td><td>✔</td><td>✔</td></tr>
    <tr><td>[Save Instruments](https://docs.payrails.com/docs/resources/manage-instruments.md)</td><td>✖</td><td>✖</td></tr>
    <tr><td>[Merchant Initiated Transaction (MIT)](https://docs.payrails.com/docs/resources/payments/authorization-flags.md)</td><td>✖</td><td>✖</td></tr>
  </tbody>
</table>

Delayed capture works with Transbank, on a Transbank account set up for deferred capture. Each WebPay payment is a new customer-initiated payment.

## Ways to integrate WebPay

* **Payrails SDK:** the [Web SDK](https://docs.payrails.com/docs/sdks/web.md) shows WebPay when your workflow returns it as a payment option, and redirects the customer to the WebPay page. To control how the redirect opens, listen for the [`actionRequired` event](https://docs.payrails.com/docs/sdks/web/guides/action-required-event).
* **Payrails API:** call [lookup payment options](https://docs.payrails.com/docs/orchestration/payment-acceptance/lookup-payment-options.md), then authorize with `webPay` as the `paymentMethodCode`. Each PSP guide lists the `meta` fields that PSP requires.

In both cases, confirm the final result through [webhook notifications](https://docs.payrails.com/docs/orchestration/payment-acceptance/receive-notifications.md) or the execution status. Don't treat the customer's return to your `success` URL as proof of payment.


## Related topics

- [WebPay via Transbank](https://docs.payrails.com/docs/integrations/payment-methods/webpay/transbank.md)
- [WebPay via dLocal](https://docs.payrails.com/docs/integrations/payment-methods/webpay/dlocal.md)
- [Transbank](https://docs.payrails.com/docs/integrations/payment-providers/transbank.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.