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

# Repay - Card

> Connect to Repay to accept credit and debit card payments.

**Repay**

Repay is a payments technology company. Gr4vy integrates with Repay's Payrazr
gateway to process card payments for merchants in the United States.

## Setup

Repay doesn't offer self-service sign-up. Speak to your Repay account manager
to request sandbox credentials for the Payrazr gateway.

## Connector configuration

After setting up your Repay connector in the dashboard, configure how
transactions are routed to it. Choose one of the following options:

* **Using Flow** - Configure Repay as the target connector in
  [Flow](https://integration.wpay.com.au/guides/dashboard/flow/overview) to automatically route card
  transactions to this connector
* **Using the API** - Explicitly set the `payment_service_id` parameter to the
  Repay connector ID when creating transactions. This overrides any Flow
  routing rules.

The connector ID can be found in the dashboard under **Connections** ->
**Configured connections**.

## Credentials

Configure the following credentials in the Gr4vy dashboard, which are
provided by your Repay account manager:

* **API Username** - Your Payrazr API username
* **API Password** - Your Payrazr API password
* **ZID** - Your Payrazr merchant location identifier

## Capabilities

This list is for guidance only. It doesn't guarantee availability or
create any rights, and the provider may need to enable some features for
your account.

Cards are stored with Repay, which keeps and replays the [Mastercard Transaction Link Identifier (TLID)](https://integration.wpay.com.au/guides/features/recurring-payments/mastercard-tlid.md) itself. Nothing is needed from you or from Gr4vy.

## Supported countries

## Supported currencies

## Level 2 and 3 data

Cart items sent on a transaction are forwarded to Payrazr as Level 3 line item
details. Commercial and purchasing cards can use this data to qualify for lower
interchange rates, though whether a given transaction qualifies is determined by
the card scheme and your acquirer, not by Gr4vy.

## Storing cards

Storing a card with Repay creates a customer record in Payrazr, which requires a
state on the billing address. Gr4vy sends the buyer's `state_code`, so include it
in ISO 3166-2 format, for example `US-NY`.

> [!WARNING]
>
> A `state` name on its own isn't enough. Without `state_code`, Repay rejects the
> request with a generic `The request is invalid.` error that doesn't identify the
> address as the cause. This affects storing a card, charging a stored card, and
> recurring payments.

## Limitations

* **Only Apple Pay is supported** - Of the digital wallets, Payrazr only
  supports Apple Pay. Attempting to pay with Google Pay or another wallet
  returns an `unsupported_payment_method` error.
* **Zero-amount authorizations require card details** - Verifying a card
  without charging it only works when card details are submitted directly,
  including in a request that also stores the card with `store` set to `true`.
  It isn't supported when charging a stored token, so verify a card before
  you store it.
* **No network tokens** - Repay doesn't accept network tokens.
* **Single recurring indicator** - Repay doesn't distinguish the first
  customer-initiated transaction in a recurring series from later
  merchant-initiated ones. Gr4vy flags the whole series as recurring using a
  single indicator.
* **Limited address verification** - Only the billing address line and postal
  code are sent for AVS checks. City, state, and country aren't included.
* **No shipping address** - The Payrazr API has no field for shipping
  details, so shipping information isn't sent.

> [!NOTE]
>
> This is a closed-loop connector, with no open-loop option. A card stored with
> Repay can only be charged through Repay, so merchant-initiated payments on it
> can't fail over to another connection. For details, see [Open-loop versus
> closed-loop](https://integration.wpay.com.au/guides/features/recurring-payments/open-loop).

## Integration

To accept card payments with Repay, use one of Gr4vy's client-side
integration methods to securely collect card details. Due to PCI compliance
requirements, card data should never be sent directly to your servers.

You can integrate using:

* **[Embed](https://integration.wpay.com.au/guides/payments/embed/quick-start)** - A pre-built, customizable
  payment form that handles the complete payment flow
* **[Secure Fields](https://integration.wpay.com.au/guides/payments/secure-fields/quick-start)** - Embed card
  input fields for building custom payment forms while maintaining PCI
  compliance
* **[Mobile SDKs](https://integration.wpay.com.au/guides/payments/mobile.md)** - Embed SDKs for iOS, Android, and React Native

These methods handle card data collection and tokenization. Once the card
details are collected and tokenized, create a transaction through the Gr4vy
API, which routes the payment to your configured Repay connection based on
your Flow rules or explicit `payment_service_id` parameter.

## Testing

Repay's sandbox accepts the following test card numbers. Use any future
expiry date and any 3-digit CVV (4 digits for American Express).

| Card brand | Card number |
| - | - |
| Visa | `4111111111111111` |
| Mastercard | `5212677777777770` |
| Discover | `6011000993026909` |
| American Express | `371449635392376` |
| Diners Club | `38555565010005` |
| JCB | `3530142019955809` |

Any correctly formatted transaction over \$1 that doesn't match one of the
triggers below is approved. To simulate a decline, submit the trigger amount
as the transaction amount, or pass the trigger value in the cardholder name.

| Trigger | Amount | Result |
| - | - | - |
| `#InsufficientFunds` | `$0.21` | Declined - insufficient funds |
| `#ExpiredCard` | `$0.29` | Declined - expired card |
| `#DeclineCVVFailure` | `$0.48` | Declined - CVV mismatch |
| `#IncorrectCvv` | `$0.15` | Declined - incorrect CVV |
| `#CallIssuer` | `$0.01` | Declined - refer to card issuer |
| `#DeclinePickUp` | `$0.05` | Declined - pick up card |
| `#InvalidAcct` | `$0.14` | Declined - invalid card number |
| `#InvalidAmt` | `$0.11` | Declined - invalid amount |
| `#IssuerUnavailable` | `$0.04` | Declined - issuer unavailable |


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