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

# Venmo

> Accept Venmo payments through PayNext.

Venmo is a popular digital wallet app in the US that allows customers to send, receive, and manage money using their mobile device. Customers can pay businesses using their Venmo balance or linked bank account.

## Payment Method Details

|                            |                          |
| :------------------------- | :----------------------- |
| **Customer locations**     | US                       |
| **Supported currencies**   | USD                      |
| **Recurrent payments**     | ✓                        |
| **Manual capture support** | ✓                        |
| **Refunds**                | ✓                        |
| **Supported processors**   | <Badge>Braintree</Badge> |

## Prerequisites

1. Connect and activate the [Braintree integration](/integrations/processors/braintree) in PayNext
2. Enable Venmo in your Braintree Control Panel under **Settings → Account Settings → Payment Methods → Venmo** and accept the terms of service
3. Turn on Venmo in your PayNext checkout configuration

## Testing

<Steps>
  <Step title="Configure sandbox credentials">
    Use Braintree Sandbox credentials in your PayNext integration
  </Step>

  <Step title="Use test Venmo accounts">
    Follow Braintree's [Venmo testing guide](https://developer.paypal.com/braintree/docs/guides/venmo/testing-go-live/) to obtain sandbox login details
  </Step>

  <Step title="Make a test payment">
    Complete a Venmo payment via PayNext SDK on your website
  </Step>

  <Step title="Verify payment">
    Confirm the payment appears in the PayNext dashboard
  </Step>
</Steps>

<Warning>
  Recurrent payments and MIT (Merchant-Initiated Transactions) do not work with Venmo test credentials. You must use a production Venmo account to test recurring and off-session payments.
</Warning>

## Dynamic Statement Descriptor <Badge>Advanced</Badge>

When enabled, PayNext generates a unique code and passes it as the Venmo dynamic descriptor. This helps match transactions with chargeback alert providers (Visa CDRN, Ethoca), allowing you to refund before a dispute occurs. You can also use the descriptor to retrieve payment history when a customer forgot their account details or can't access their account.

### How It Works

Venmo statement descriptors follow this format:

```
VENMO * + Business Name + Space + Dynamic Descriptor Name
```

The total is limited to **22 characters**. The `VENMO *` prefix takes 7 characters, leaving 15 characters for your business name, a space separator, and the dynamic code.

<Note>
  Unlike PayPal, Venmo does not return the full descriptor in API responses. PayNext only receives back the 5-character dynamic descriptor code that was sent to Braintree (this use case is Venmo specific). The full descriptor (including your business name) appears on the customer's bank statement.
</Note>

### Descriptor Length Examples

Your **business name** is configured in your Venmo application form and can be edited via the Venmo Processing page in the Braintree Control Panel.

<AccordionGroup>
  <Accordion title="Short business name (recommended)">
    If your business name is **9 characters or less** (e.g., `AStore`), you get room for a 4-character dynamic code:

    ```
    VENMO *AStore O-12
    ```

    The number of unique combinations depends on the code length:

    | Code Length  | Unique Combinations |
    | :----------- | :------------------ |
    | 5 characters | 60,466,176          |
    | 4 characters | 1,679,616           |
    | 3 characters | 46,656              |
  </Accordion>

  <Accordion title="Long business name (truncated)">
    If your business name is longer (e.g., `MyCompany Store`), the dynamic code gets truncated:

    ```
    VENMO *MyCompany S O
    ```

    Only 1-2 characters remain for the code, reducing uniqueness significantly.
  </Accordion>
</AccordionGroup>

<Warning>
  Keep your Venmo business name to **9 characters or less** to ensure at least 3-4 characters are available for the dynamic code. Using fewer than 3 characters is not recommended as it significantly reduces the effectiveness of transaction matching.
</Warning>

### Descriptor Rules

* Only `descriptor.name` is supported
* Allowed characters: `A-Z`, `a-z`, `0-9`, space, `+`, `-`, `.`
* Venmo enforces a **22-character limit**—no manual truncation needed
* Invalid characters are dropped; over-length descriptors are truncated automatically
* The business name portion is configured in your Venmo application form in the Braintree Control Panel

### Where The Descriptor Appears

* Searchable by and available for each payment in the dashboard
* `statement_descriptor` field in the payment object

<Tip>
  Enable this feature in **Dashboard → Integrations → Braintree → Enable Venmo dynamic statement descriptor**.
</Tip>

## If the customer revokes access

A customer can remove your merchant authorization in the Venmo app. PayNext receives that from Braintree and sets the payment method `status` to `revoked`.

A revoked payment method can't be charged. Renewals stop being attempted—the aborted attempt is recorded as `INCOMPLETE` with `decline_code` `payment_method_disabled`—and the subscription stays `past_due` for 14 days before it is cancelled with reason `dead_instrument`. See [Dead payment methods](/guides/use-cases/recover-subscriptions#dead-payment-methods).

Each change is reported by [`customer.payment_method.updated`](/webhooks/introduction/event-types#payment-method-events).
