# Capture Payment Information (/docs/workflows/reference/category/voice/capturePaymentInformation)

> For the complete documentation index, see [llms.txt](https://docs.tandemcx.ai/llms.txt). Any page on this site can be fetched as Markdown by appending `.md` to its URL.

Securely capture card details from the caller via DTMF and charge them.

Hands the call to the PCI-isolated payment handler, which prompts the caller to key in their card number, expiry, and (optionally) CVV and billing ZIP, then charges the configured amount through the selected payment integration (Authorize.net or Meridian Payments). Meridian Payments sells only (`authCapture`) and needs the customer account number, the convenience fee, Capture CVV, and Capture Billing ZIP; without them the node routes on `fallback` before the caller is asked for a card. Card data never enters the workflow. Only the result, the card brand and last four digits, the transaction details and reason from the gateway, and, for `tokenize`, the stored profile ids are returned. Routes on `default` when approved, `declined` when the gateway declines, `invalidInput` when the caller fails to enter valid details, and `fallback` on a gateway or system error. A `fallback` with `<prefix>_outcomeUnknown` set to true means the card may have been charged anyway: do not retry the charge. If the call is being recorded, the recording is paused before the first card prompt and resumed when the capture ends, so that card entry is left out of the audio; a recording that starts during the capture starts paused. When the pause cannot be confirmed, Tandem tries to stop and delete the recording of the call, and the capture goes ahead. If neither the pause nor the delete can be confirmed, the capture still goes ahead and card entry may be in the recording.

**Category:** Voice  
**Provider:** Payments  
**Latest version:** 1.0.0

## Fields

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| Payment Integration (`integrationId`) | dynamicDropdown | Yes | The connected Authorize.net or Meridian Payments integration to charge through. |
| Transaction Type (`transactionType`) | string | Yes | authCapture charges immediately; authOnly authorizes for later capture; tokenize stores a reusable payment token. |
| Amount (`amount`) | string | Yes | The amount to charge, as a decimal string (e.g. "10.00"). Supports $(variable) substitution. |
| Invoice Reference (`invoiceRef`) | string | No | Optional invoice/order reference passed to the gateway. |
| Description (`description`) | string | No | Optional description passed to the gateway. |
| Customer Account Number (`customerAccountNumber`) | string | No | The member account number to apply the payment to. Required by Meridian Payments, along with Convenience Fee, Capture CVV, and Capture Billing ZIP. Ignored by Authorize.net. Supports $(variable) substitution. |
| Convenience Fee (`convenienceFee`) | string | No | The convenience fee the caller agreed to, as a decimal string (e.g. "2.50"). Required by Meridian Payments, along with Customer Account Number, Capture CVV, and Capture Billing ZIP. Ignored by Authorize.net. Supports $(variable) substitution. |
| Name on Card (`nameOnCard`) | string | No | Optional cardholder name, up to 50 characters. Used by Meridian Payments; ignored by Authorize.net. Supports $(variable) substitution. |
| Capture CVV (`captureCvv`) | boolean | No | Prompt the caller for the card security code (CVV). Required by most gateways for card-not-present. |
| Capture Billing ZIP (`captureZip`) | boolean | No | Prompt the caller for the billing postal code (AVS). |
| Invalid Entry Retries (`invalidEntryRetryCount`) | number | No | How many times to re-prompt the caller when a field entry is invalid or incomplete. |
| Card Number Prompt (`promptPan`) | dynamicDropdown | Yes | Prompt asking the caller to key in the card number. |
| Expiry Prompt (`promptExpiry`) | dynamicDropdown | Yes | Prompt asking the caller to key in the expiration date (MMYY). |
| CVV Prompt (`promptCvv`) | dynamicDropdown | No | Prompt asking the caller to key in the security code. |
| Billing ZIP Prompt (`promptZip`) | dynamicDropdown | No | Prompt asking the caller to key in the billing postal code. |
| Result Variable Prefix (`responseVariablePrefix`) | string | Yes | Prefix for the result variables written after the charge: <prefix>_result, <prefix>_last4, <prefix>_brand, <prefix>_transId, <prefix>_authCode, <prefix>_avsResult, <prefix>_message, <prefix>_outcomeUnknown, and, for tokenize, <prefix>_customerProfileId and <prefix>_paymentProfileId. |

## Exits

- `default` (required)
- `declined` (required)
- `invalidInput` (system)
- `fallback` (system)

System exits (auto-injected, hidden when unwired): `invalidInput`, `fallback`.
