---
title: Hosted checkout FAQs
sidebar_label: FAQs
slug: hosted-checkout/faqs
excerpt: >-
  Frequently asked questions about Pine Labs Hosted checkout — features,
  integration, payment methods, customization, pre-authorization, testing, and
  troubleshooting.
hidden: false
sidebar_order: 4
metadata:
  title: Hosted checkout FAQs – Pine Labs Payment Gateway
  description: >-
    Frequently asked questions about Pine Labs Hosted checkout — features,
    integration, payment methods, customization, pre-authorization, testing, and
    troubleshooting.
  robots: index
---
## General

<details>
<summary>What is Hosted checkout?</summary>

Hosted checkout is a Pine Labs managed payment page. You redirect customers to this page (or embed it in an iFrame), and Pine Labs handles the entire payment experience — payment method selection, card input, UPI, OTP, offers, and more.
</details>

---

<details>
<summary>Do I need to be PCI compliant to use Hosted checkout?</summary>

No. Pine Labs handles all payment data collection and storage. You never touch sensitive card data.
</details>

---

<details>
<summary>What payment methods does Hosted checkout support?</summary>

Cards (Visa, Mastercard, RuPay — credit and debit), UPI (Collect and Intent), Net Banking, Wallets, Credit EMI, Debit EMI, BNPL, and Reward Points.
</details>

---

<details>
<summary>Can I use Hosted checkout with mobile apps?</summary>

Yes. Use the Pine Labs [Web SDK](/sdks/web-sdks), [Android SDK](/sdks/mobile-sdks), or iOS SDK to integrate Hosted checkout in mobile applications.
</details>

---

## Integration

<details>
<summary>What API do I use for Hosted checkout?</summary>

Use the [Generate Checkout Link API](/api/checkout/generate-checkout-link) (`POST /api/checkout/v1/orders`). This creates an order and returns a `redirect_url` for the checkout page.
</details>

---

<details>
<summary>What's the difference between REDIRECT and IFRAME integration modes?</summary>

Both use the same API. In `REDIRECT` mode, the customer navigates to a full-page Pine Labs checkout. In `IFRAME` mode, the checkout is embedded inside an iFrame on your page. Set `integration_mode` to `REDIRECT` or `IFRAME`.
</details>

---

<details>
<summary>Can I switch from REDIRECT to IFRAME mode?</summary>

Yes. Change the `integration_mode` value in your API request. No other changes needed.
</details>

---

<details>
<summary>What happens if the customer closes the browser during payment?</summary>

The payment may still complete on Pine Labs' side. Configure [webhooks](/developer-tools/webhooks) to receive server-to-server payment status updates regardless of customer browser behavior.
</details>

---

<details>
<summary>Is signature verification mandatory?</summary>

Yes. Always verify the SHA256 HMAC signature on the callback to confirm the data is authentic and untampered. See [Signature Verification](/developer-tools/webhooks/signature-verification).
</details>

---

## Customization

<details>
<summary>Can I customize the look of the checkout page?</summary>

Yes. You can add your logo and configure brand colors. Contact the Pine Labs onboarding team for branding setup.
</details>

---

<details>
<summary>Can I control which payment methods appear?</summary>

Yes. Use the `allowed_payment_methods` array in the Generate Checkout Link API to specify which methods to show. Omit the array to show all enabled methods.
</details>

---

<details>
<summary>Can I pre-fill customer details?</summary>

Yes. Pass customer `email_id`, `first_name`, `last_name`, `mobile_number`, and address details in the `purchase_details.customer` object.
</details>

---

<details>
<summary>Can I display cart items on the checkout page?</summary>

Yes. Use the `purchase_details.cart_details.cart_items` array to show product names, images, quantities, and prices.
</details>

---

<details>
<summary>Can I enable express checkout for returning customers?</summary>

Yes. Set `express_checkout_enabled: "TRUE"` in the `merchant_metadata` object. Returning customers see auto-filled addresses and saved payment methods.
</details>

---

## Pre-authorization

<details>
<summary>How does pre-authorization work?</summary>

Set `pre_auth: true` in the API request. The payment is authorized but not captured. Once you're ready to settle (e.g., after shipping), call [Capture Order](/api/orders/capture-order). To void, call [Cancel Order](/api/orders/cancel-order).
</details>

---

<details>
<summary>Which payment methods support pre-authorization?</summary>

Pre-authorization is available for card payments only through Hosted checkout.
</details>

---

<details>
<summary>How long does an authorization hold last?</summary>

Authorization holds typically last 7 days, depending on the issuing bank. Capture or cancel the order before the hold expires.
</details>

---

<details>
<summary>What webhook events are sent for pre-auth?</summary>

`ORDER_AUTHORIZED` when payment is authorized. `ORDER_PROCESSED` when you capture.
</details>

---

## Plugins and SDKs

<details>
<summary>Which ecommerce platforms are supported?</summary>

Shopify, WooCommerce, Magento, and OpenCart. See [Ecommerce Plugins](/e-commerce-plugins).
</details>

---

<details>
<summary>Which SDKs are available?</summary>

Web SDK, Android SDK, and iOS SDK. See [SDKs](/sdks).
</details>

---

<details>
<summary>Can I use Hosted Checkout on Shopify?</summary>

Yes. See [Hosted Checkout on Shopify](/e-commerce-plugins/shopify).
</details>

---

## Testing

<details>
<summary>How do I test Hosted checkout?</summary>

Use the UAT environment (`https://pluraluat.v2.pinepg.in`) with [test card details](/test-card-details).
</details>

---

<details>
<summary>Can I test UPI payments in UAT?</summary>

UPI payments process real transactions even in UAT. Test with minimum amounts (₹1).
</details>

---

<details>
<summary>Which payment methods can I test in UAT?</summary>

Credit/Debit Cards, Net Banking (via SBI), Cross-Border, and Pay by Points. UPI processes real transactions.
</details>

---

<details>
<summary>When do I get production credentials?</summary>

After UAT sign-off. Share your callback and webhook URLs with the [integration team](mailto:pgintegration@pinelabs.com) for whitelisting before going live.
</details>

---

## Troubleshooting

<details>
<summary>Payment succeeded but customer wasn't redirected to my callback URL</summary>

The callback redirect depends on the customer's browser. Always configure [webhooks](/developer-tools/webhooks) as the primary mechanism for payment confirmation.
</details>

---

<details>
<summary>The signature verification is failing</summary>

Ensure you're: (1) sorting callback parameters alphabetically by key, (2) joining with `&`, (3) using HmacSHA256 with the correct `secret_key`, and (4) comparing the result in uppercase.
</details>

---

<details>
<summary>Getting "Payment processor is unavailable" error</summary>

This is a transient error from the payment processor. Retry the payment. If persistent, contact [support](mailto:pgsupport@pinelabs.com).
</details>

---

<details>
<summary>How do I contact support?</summary>

For integration support: [pgintegration@pinelabs.com](mailto:pgintegration@pinelabs.com). For general support: [pgsupport@pinelabs.com](mailto:pgsupport@pinelabs.com).
</details>

---

## Related pages

- [Hosted checkout — Overview](/hosted-checkout) — Features and capabilities of Hosted Checkout.
- [Hosted checkout — Customization options](/checkout-options/customization) — Configure branding, payment methods, and checkout behavior.
- [Hosted checkout — Integration steps](/hosted-checkout/integration-steps) — Step-by-step integration guide.
