Statement descriptors

A statement descriptor is the text a cardholder sees for a charge on their bank or card statement. A clear descriptor helps cardholders recognize the payment, which reduces disputes.

For card payments, Moov uses the transfer-level descriptor if set, then the account-level descriptor. Otherwise, Moov will default to the DBA or legal business name of the Moov account truncated based on payment network limits.

Additionally, if a dedicated customer support phone number was not provided with the business account details, the main business phone number may be displayed in the statement descriptor instead. As a best practice, include a dedicated customer support number for the account.

Set an account-level statement descriptor

You can set the default statement descriptor for a merchant by using the account.settings.cardPayment.statementDescriptor field in the PATCH accounts endpoint. In the example provided, we set a statement descriptor for a local gym called "Whole Body Fitness" at the account level.

curl -X PATCH "https://api.moov.io/accounts/{accountID}" \
  -H "Authorization: Bearer {token}" \
  -H "x-moov-version: v2026.07.00" \
  --data-raw '{
    "profile": {
      "business": {
        "legalBusinessName": "Whole Body Fitness LLC",
        "businessType": "llc"
      }
    },
    "settings": {
      "cardPayment": {
        "statementDescriptor": "Whole Body Fitness"
      }
    }
  }'

American Express statement descriptors

Before a transaction settles with the bank, American Express statements may show a description of Moov Financial instead of the statementDescriptor that has been set for the merchant. Once the transaction settles and moves beyond the pending stage, the description will update with the statement descriptor that has been set for the merchant.

To avoid any confusion about the origin of the transaction, this information should be passed along to merchants to share with customers.

Set a transfer-level statement descriptor

Business accounts must be approved by Moov to set the source.cardDetails.dynamicDescriptor when creating a transfer. This field is an optional override of the default card statement descriptor, which allows a merchant to pass information to the card issuer at the time of transaction. The card issuer will then use this information to generate a description of the cardholder’s statement. In the example provided, we set a dynamic statement descriptor that captures the date of a yoga class at Whole Body Fitness.

curl -X POST "https://api.moov.io/accounts/{accountID}/transfers" \
  -H "Authorization: Bearer {token}" \
  -H "x-idempotency-key: UUID" \
  -H "X-Wait-For: rail-response" \
  -H "x-moov-version: v2026.07.00" \
  --data-raw '{
    "amount": {
      "value": 100,
      "currency": "USD"
    },
    "destination": {
      "paymentMethodID": "string"
    },
    "source": {
      "paymentMethodID": "string",
      "cardDetails": {
        "dynamicDescriptor": "WhlBdy *Yoga 11-12"
      }
    },
    "description": "Paying Jules for last 4 classes"
  }'

For ACH transfers, see customized ACH statement descriptors.