> ## 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.

# Tap

> Request read-only API keys from your Tap account manager for both environments, then add the Tap integration in the Portal.

## Prerequisites

* An active TAP merchant account
* A point of contact with your TAP account manager

## Overview

TAP does not currently offer self-service API key creation through their merchant portal. To get an API key, you need to **reach out to your TAP account manager** and request **read-only API keys** for the environments below.

To ensure we can ingest data for both your production and testing environments, please request two separate keys:

* One for **Live Mode** (production): key starts with `sk_live_...`
* One for **Sandbox / Test Mode**: key starts with `sk_test_...`

<Note>
  **Note on sandbox payouts**

  TAP's sandbox environment does not support payouts. We will still accept a sandbox key for testing the charges, authorizations and refunds flows, but no payout data will be ingested for the sandbox environment.
</Note>

## Step-by-step instructions

### Step 1: Request your API keys from TAP

1. Contact your TAP account manager
2. Request **two read-only API keys** scoped for reporting access:
   * One Live Mode key (`sk_live_...`) suggested label: `Payrails Live Reporting`
   * One Sandbox / Test Mode key (`sk_test_...`) suggested label: `Payrails Sandbox Reporting`
3. Once TAP has provisioned the keys, store them securely they typically cannot be retrieved again later

### Step 2: Add the TAP integration in the Payrails portal (self-serve)

1. Log in to the Payrails dashboard and open **Settings → Integrations → Data**.
2. Click **Add instance** (top-right).
3. In New instance, select provider: **TAP** and click **Continue**.
4. On the **Configure account** screen, fill in:
   * **Integration instance name**: a unique label (e.g. clearly mark Live vs Sandbox).
   * **Start Date**: the date of today or tomorrow (currently we can not backfill over the sel-serve capability. In the need of backfilling, please reach out to your Payrails account manager).
   * **Is Live**: enable for the Live key; leave off for the Sandbox key.
   * **API key**: `sk_live_...` for production, `sk_test_...` for sandbox. Create a separate instance for each environment.
   * *(Optional)* **Additional data**.
5. Click **Save account**. The instance appears in the Data integrations list and Payrails begins ingesting data.


## Related topics

- [SDK Concepts](/docs/orchestration/checkout-sdks/ios/sdk-concepts.md)
- [How to Accept Redirect Payments](/docs/orchestration/checkout-sdks/android/how-to-accept-redirect-payments.md)
- [How to Let Shoppers Choose a Card Network (Co-Branded Cards)](/docs/orchestration/checkout-sdks/android/how-to-co-branded-cards.md)
