# Statement descriptors

Learn how to customize statement descriptors on card payments.

Statement descriptors are the text that describe transactions presented to us by our digital banking feeds (or paper statements) so that we can recognize them. Setting clear statement descriptors can help to reduce disputes and improve the user experience by providing context on what the payment was for.

For card payments, Moov will use the statement descriptor added at the transfer or account level. Otherwise, Moov will default to the DBA or legal business name of the Moov account truncated based on payment network limits.

## [Account level statement descriptor](#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](/api/moov-accounts/accounts/patch/). In the example provided, we set a statement descriptor for a local gym called "Whole Body Fitness" at the account level.

[cURL](#tab-785149326-1-0) [Go SDK](#tab-785149326-1-1) [Moov.js](#tab-785149326-1-2)

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

```go
mc, _ := moov.NewClient()

updatedAccount := moov.Account{
  AccountID:   "string",
  AccountType: moov.AccountType_Business,
  Profile: moov.Profile{
    Business: &moov.Business{
      LegalBusinessName: "Whole Body Fitness LLC",
      BusinessType: moov.BusinessType_Llc,
    },
  },
  Settings: &moov.AccountSettings{
    CardPayment: &moov.CardPaymentSettings{
        StatementDescriptor: "Whole Body Fitness",
    },
  },
}

mc.UpdateAccount(ctx, updatedAccount)
```

```javascript
const moov = Moov(token);

const updatedAccount = {
  accountType: "business",
  profile: {
    business: {
      legalBusinessName: "ClassBooker",
      businessType: "llc"
    }
  },
  settings: {
    cardPayment: {
      statementDescriptor: "Whole Body Fitness",
    }
  }
};

moov.accounts.update(updatedAccount);
```

### [American Express statement descriptors](#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.

## [Transfer level statement descriptor](#transfer-level-statement-descriptor)

Business accounts must be approved by Moov to set the `source.cardDetails.dynamicDescriptor` when creating a [transfer](/api/money-movement/transfers/create/). 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](#tab-436985217-2-0) [Go SDK](#tab-436985217-2-1)

```zsh
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: v2024.01.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"
  }'\
```

```go
mc, _ := moov.NewClient()

var accountID string

mc.CreateTransfer(ctx, accountID, moov.CreateTransfer{
  Amount: moov.Amount{
    Currency: "USD",
    Value:    100, // $1.00
  },
  Destination: moov.CreateTransfer_Destination{
    PaymentMethodID: "string",
  },
  Source: moov.CreateTransfer_Source{
    PaymentMethodID: "string",
    CardDetails: &moov.CreateTransfer_CardDetailsSource{
      DynamicDescriptor: "WhlBdy *Yoga 11-12",
    },
  },
  Description: "Paying Jules for last 4 classes",
})
```
