View as Markdown

llms.txt

The API reference isn't available right now

This instance couldn't load its API specification. The reference returns as soon as the specification is readable again.

Back to the API reference

No such operation

This instance documents no operation under that identifier. It may have been renamed, or it may belong to a feature this installation hasn't enabled.

Back to the API reference

This reference may be out of date

This instance couldn't reach its API specification on the last attempt, so this page shows the copy fetched before that. Anything added or changed since then is missing here, and the reference updates itself as soon as the specification is readable again. Last fetched 2026-10-22 22:09 UTC.

API reference Customers

Adds a new stored payment method to a customer's collection and persists it.

POST /api/customers/add-stored-payment-method-async deprecated

Requires: Customers.Customers, Customers.Customers.Create, merchant scope.

**Required permissions**: `Customers`, `Customers.Create` **Scope**: merchant

Signed in, you can send this request to your own sandbox merchant from the console and read the answer. Sign in to try it.

Example request

Each example below is one request, shown in every language. Choose an example and a language, then replace {{BASE_URL}} with the address of the API you are calling and {{API_KEY}} with your own key.

The request body is a AddStoredPaymentMethodInput. See the Request body section below for its fields.

Code sample language
Request example

Adds a credit/debit card to the customer's stored payment methods. Set IsDefault = true to mark this as the customer's default payment method (any prior default is automatically demoted server-side).

cURL

curl -X POST "{{BASE_URL}}/api/customers/add-stored-payment-method-async" \
  -H "api-key: {{API_KEY}}" \
  -H "Content-Type: application/json" \
  -d '{
  "paymentMethodType": "Card",
  "cardData": {
    "cardNumber": "4111111111111111",
    "expirationDate": "2028-10-22",
    "cardVerificationValue": "123",
    "nameOnCard": "Jane Smith",
    "entryMode": "Manual",
    "cvPresence": "None",
    "billingAddress": {
      "address1": "456 Oak Ave",
      "city": "Reno",
      "state": "NV",
      "zip": "89501",
      "country": "USA"
    }
  },
  "isDefault": true,
  "customName": "Personal Visa"
}'

PowerShell

$headers = @{
    'api-key' = '{{API_KEY}}'
}

$body = @'
{
  "paymentMethodType": "Card",
  "cardData": {
    "cardNumber": "4111111111111111",
    "expirationDate": "2028-10-22",
    "cardVerificationValue": "123",
    "nameOnCard": "Jane Smith",
    "entryMode": "Manual",
    "cvPresence": "None",
    "billingAddress": {
      "address1": "456 Oak Ave",
      "city": "Reno",
      "state": "NV",
      "zip": "89501",
      "country": "USA"
    }
  },
  "isDefault": true,
  "customName": "Personal Visa"
}
'@

$response = Invoke-RestMethod -Method POST -Uri '{{BASE_URL}}/api/customers/add-stored-payment-method-async' `
    -Headers $headers -ContentType 'application/json' -Body $body

npm install @winkpg/winkpg-api

TypeScript (SDK)

import { Configuration, CustomersApi } from '@winkpg/winkpg-api';

const api = new CustomersApi(new Configuration({
  basePath: '{{BASE_URL}}',
  apiKey: '{{API_KEY}}',
}));

const { data } = await api.customersAddStoredPaymentMethod({
  "paymentMethodType": "Card",
  "cardData": {
    "cardNumber": "4111111111111111",
    "expirationDate": "2028-10-22",
    "cardVerificationValue": "123",
    "nameOnCard": "Jane Smith",
    "entryMode": "Manual",
    "cvPresence": "None",
    "billingAddress": {
      "address1": "456 Oak Ave",
      "city": "Reno",
      "state": "NV",
      "zip": "89501",
      "country": "USA"
    }
  },
  "isDefault": true,
  "customName": "Personal Visa"
});

TypeScript (raw HTTP)

const response = await fetch('{{BASE_URL}}/api/customers/add-stored-payment-method-async', {
  method: 'POST',
  headers: {
    "api-key": "{{API_KEY}}",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "paymentMethodType": "Card",
    "cardData": {
      "cardNumber": "4111111111111111",
      "expirationDate": "2028-10-22",
      "cardVerificationValue": "123",
      "nameOnCard": "Jane Smith",
      "entryMode": "Manual",
      "cvPresence": "None",
      "billingAddress": {
        "address1": "456 Oak Ave",
        "city": "Reno",
        "state": "NV",
        "zip": "89501",
        "country": "USA"
      }
    },
    "isDefault": true,
    "customName": "Personal Visa"
  }),
});

const data = await response.json();

dotnet add package WinkPg.Api.Client

C# (SDK)

using WinkPg.Api.Client.Api;
using WinkPg.Api.Client.Client;
using System.Text.Json;

var config = new Configuration { BasePath = "{{BASE_URL}}" };
config.AddApiKey("api-key", "{{API_KEY}}");

var api = new CustomersApi(config);
var body = JsonSerializer.Deserialize<AddStoredPaymentMethodInput>("""
    {
      "paymentMethodType": "Card",
      "cardData": {
        "cardNumber": "4111111111111111",
        "expirationDate": "2028-10-22",
        "cardVerificationValue": "123",
        "nameOnCard": "Jane Smith",
        "entryMode": "Manual",
        "cvPresence": "None",
        "billingAddress": {
          "address1": "456 Oak Ave",
          "city": "Reno",
          "state": "NV",
          "zip": "89501",
          "country": "USA"
        }
      },
      "isDefault": true,
      "customName": "Personal Visa"
    }
    """);

var result = await api.CustomersAddStoredPaymentMethodAsync(body);

C# (raw HTTP)

using System.Text;

using var http = new HttpClient { BaseAddress = new Uri("{{BASE_URL}}") };

var request = new HttpRequestMessage(new HttpMethod("POST"), "/api/customers/add-stored-payment-method-async");
request.Headers.Add("api-key", "{{API_KEY}}");

request.Content = new StringContent("""
    {
      "paymentMethodType": "Card",
      "cardData": {
        "cardNumber": "4111111111111111",
        "expirationDate": "2028-10-22",
        "cardVerificationValue": "123",
        "nameOnCard": "Jane Smith",
        "entryMode": "Manual",
        "cvPresence": "None",
        "billingAddress": {
          "address1": "456 Oak Ave",
          "city": "Reno",
          "state": "NV",
          "zip": "89501",
          "country": "USA"
        }
      },
      "isDefault": true,
      "customName": "Personal Visa"
    }
    """, Encoding.UTF8, "application/json");

var response = await http.SendAsync(request);
response.EnsureSuccessStatusCode();
var json = await response.Content.ReadAsStringAsync();

pip install winkpg-api

Python (SDK)

import winkpg_api

configuration = winkpg_api.Configuration(host="{{BASE_URL}}")
configuration.api_key["ApiKey"] = "{{API_KEY}}"

with winkpg_api.ApiClient(configuration) as client:
    api = winkpg_api.CustomersApi(client)
    body = winkpg_api.AddStoredPaymentMethodInput.from_dict({
      "paymentMethodType": "Card",
      "cardData": {
        "cardNumber": "4111111111111111",
        "expirationDate": "2028-10-22",
        "cardVerificationValue": "123",
        "nameOnCard": "Jane Smith",
        "entryMode": "Manual",
        "cvPresence": "None",
        "billingAddress": {
          "address1": "456 Oak Ave",
          "city": "Reno",
          "state": "NV",
          "zip": "89501",
          "country": "USA"
        }
      },
      "isDefault": True,
      "customName": "Personal Visa"
    })
    result = api.customers_add_stored_payment_method(body)

pip install requests

Python (raw HTTP)

import requests

headers = {
    "api-key": "{{API_KEY}}",
    "Content-Type": "application/json",
}

body = {
  "paymentMethodType": "Card",
  "cardData": {
    "cardNumber": "4111111111111111",
    "expirationDate": "2028-10-22",
    "cardVerificationValue": "123",
    "nameOnCard": "Jane Smith",
    "entryMode": "Manual",
    "cvPresence": "None",
    "billingAddress": {
      "address1": "456 Oak Ave",
      "city": "Reno",
      "state": "NV",
      "zip": "89501",
      "country": "USA"
    }
  },
  "isDefault": True,
  "customName": "Personal Visa"
}

response = requests.request(
    "POST",
    "{{BASE_URL}}/api/customers/add-stored-payment-method-async",
    headers=headers,
    json=body,
)
response.raise_for_status()
data = response.json()

Adds a US checking or savings account for ACH debits/credits. Routing + account numbers are required; the account is tokenized server-side.

cURL

curl -X POST "{{BASE_URL}}/api/customers/add-stored-payment-method-async" \
  -H "api-key: {{API_KEY}}" \
  -H "Content-Type: application/json" \
  -d '{
  "paymentMethodType": "Check",
  "checkData": {
    "nameOnCheck": "Acme Corp",
    "routingNumber": "021000021",
    "accountNumber": "123456789",
    "checkType": "Business",
    "accountType": "Checking"
  },
  "customName": "Operating Account"
}'

PowerShell

$headers = @{
    'api-key' = '{{API_KEY}}'
}

$body = @'
{
  "paymentMethodType": "Check",
  "checkData": {
    "nameOnCheck": "Acme Corp",
    "routingNumber": "021000021",
    "accountNumber": "123456789",
    "checkType": "Business",
    "accountType": "Checking"
  },
  "customName": "Operating Account"
}
'@

$response = Invoke-RestMethod -Method POST -Uri '{{BASE_URL}}/api/customers/add-stored-payment-method-async' `
    -Headers $headers -ContentType 'application/json' -Body $body

npm install @winkpg/winkpg-api

TypeScript (SDK)

import { Configuration, CustomersApi } from '@winkpg/winkpg-api';

const api = new CustomersApi(new Configuration({
  basePath: '{{BASE_URL}}',
  apiKey: '{{API_KEY}}',
}));

const { data } = await api.customersAddStoredPaymentMethod({
  "paymentMethodType": "Check",
  "checkData": {
    "nameOnCheck": "Acme Corp",
    "routingNumber": "021000021",
    "accountNumber": "123456789",
    "checkType": "Business",
    "accountType": "Checking"
  },
  "customName": "Operating Account"
});

TypeScript (raw HTTP)

const response = await fetch('{{BASE_URL}}/api/customers/add-stored-payment-method-async', {
  method: 'POST',
  headers: {
    "api-key": "{{API_KEY}}",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "paymentMethodType": "Check",
    "checkData": {
      "nameOnCheck": "Acme Corp",
      "routingNumber": "021000021",
      "accountNumber": "123456789",
      "checkType": "Business",
      "accountType": "Checking"
    },
    "customName": "Operating Account"
  }),
});

const data = await response.json();

dotnet add package WinkPg.Api.Client

C# (SDK)

using WinkPg.Api.Client.Api;
using WinkPg.Api.Client.Client;
using System.Text.Json;

var config = new Configuration { BasePath = "{{BASE_URL}}" };
config.AddApiKey("api-key", "{{API_KEY}}");

var api = new CustomersApi(config);
var body = JsonSerializer.Deserialize<AddStoredPaymentMethodInput>("""
    {
      "paymentMethodType": "Check",
      "checkData": {
        "nameOnCheck": "Acme Corp",
        "routingNumber": "021000021",
        "accountNumber": "123456789",
        "checkType": "Business",
        "accountType": "Checking"
      },
      "customName": "Operating Account"
    }
    """);

var result = await api.CustomersAddStoredPaymentMethodAsync(body);

C# (raw HTTP)

using System.Text;

using var http = new HttpClient { BaseAddress = new Uri("{{BASE_URL}}") };

var request = new HttpRequestMessage(new HttpMethod("POST"), "/api/customers/add-stored-payment-method-async");
request.Headers.Add("api-key", "{{API_KEY}}");

request.Content = new StringContent("""
    {
      "paymentMethodType": "Check",
      "checkData": {
        "nameOnCheck": "Acme Corp",
        "routingNumber": "021000021",
        "accountNumber": "123456789",
        "checkType": "Business",
        "accountType": "Checking"
      },
      "customName": "Operating Account"
    }
    """, Encoding.UTF8, "application/json");

var response = await http.SendAsync(request);
response.EnsureSuccessStatusCode();
var json = await response.Content.ReadAsStringAsync();

pip install winkpg-api

Python (SDK)

import winkpg_api

configuration = winkpg_api.Configuration(host="{{BASE_URL}}")
configuration.api_key["ApiKey"] = "{{API_KEY}}"

with winkpg_api.ApiClient(configuration) as client:
    api = winkpg_api.CustomersApi(client)
    body = winkpg_api.AddStoredPaymentMethodInput.from_dict({
      "paymentMethodType": "Check",
      "checkData": {
        "nameOnCheck": "Acme Corp",
        "routingNumber": "021000021",
        "accountNumber": "123456789",
        "checkType": "Business",
        "accountType": "Checking"
      },
      "customName": "Operating Account"
    })
    result = api.customers_add_stored_payment_method(body)

pip install requests

Python (raw HTTP)

import requests

headers = {
    "api-key": "{{API_KEY}}",
    "Content-Type": "application/json",
}

body = {
  "paymentMethodType": "Check",
  "checkData": {
    "nameOnCheck": "Acme Corp",
    "routingNumber": "021000021",
    "accountNumber": "123456789",
    "checkType": "Business",
    "accountType": "Checking"
  },
  "customName": "Operating Account"
}

response = requests.request(
    "POST",
    "{{BASE_URL}}/api/customers/add-stored-payment-method-async",
    headers=headers,
    json=body,
)
response.raise_for_status()
data = response.json()

Parameters

Name In Type Description
customerId required query string (uuid) The customer to add the payment method to.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
suppressNulls required query boolean If true, omit properties with null values.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

Request body

application/json , required

Field Type Description
paymentMethodType required CustomerStoredPaymentMethodType CustomerStoredPaymentMethodType Gets or sets the type of payment method (Card or Check). Conditional: When IsReaderTokenBacked is true. Must equal Card.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
Card
Check
cardData required CardData CardData Gets or sets the card data when `paymentMethodType` is Card. Required: When PaymentMethodType == Card and IsReaderTokenBacked is false. Conditional: When CardData is not null and PaymentMethodType == Card and IsReaderTokenBacked is false.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

Fields of CardData:

Field Type Description
cardNumber required string The card account number. Conditional: When IsStoredPayment is not true. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
last4CardNumber required integer (int32) The last 4 digits of the card number as an integer. nullableread only
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
expirationMonth required integer (int32) The expiration month of the card as an integer in the range `1` to `12`.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
expirationYear required integer (int32) The expiration year of the card. Either a two-digit year (e.g. `29`) or a four-digit year (e.g. `2029`); two-digit years resolve to the 2000s.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
expirationDate required string (date-time) The expiration date of the card. Conditional: When IsStoredPayment is not true. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
binData required BinData BinData The BIN (Bank Identification Number) data associated with the card.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
cvv required integer (int32) Deprecated: send `cardVerificationValue` instead. The CVV (Card Verification Value) of the card as an integer. Conditional: When IsStoredPayment is not true. Range: 100 to 9999. nullabledeprecated
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
cardVerificationValue required string The card verification value (CVV, CVC or CID) exactly as printed on the card: three digits, or four for American Express. Send it as a string so a leading zero is kept. Conditional: When IsStoredPayment is not true. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
nameOnCard required string The name on the card. Conditional: When IsStoredPayment is not true. Max length: 25. nullablemin length 0max length 25
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
pin required string The PIN (Personal Identification Number) of the card. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
keySerialNumber required string The Key Serial Number associated with the card. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
emvData required string The EMV (Europay, Mastercard, and Visa) data associated with the card. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
trackData required string The track data of the card. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
encryptedTrack1Data required string The encrypted track 1 data of the card. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
encryptedTrack2Data required string The encrypted track 2 data of the card. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
encryptedTrack3Data required string The encrypted track 3 data of the card. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
dynamicCardVerificationData required string A reader-generated dynamic card verification value captured at the moment the card was read. Card readers that support it derive this value from physical characteristics of the magnetic stripe, which differ between an original card and a copy, so the decryption service that fronts the processor can score whether the presented card is genuine. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
dynamicCardVerificationStatus required string Status metadata the reader reported alongside `dynamicCardVerificationData` (for example whether the reader considered the dynamic verification read successful). Non-secret: it describes the read, it is not the verification value itself, so it is persisted as submitted. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
iin required string The IIN (Issuer Identification Number) of the card. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
arqc required string The ARQC (Authorization Request Cryptogram) of the card. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
entryMode required EntryModes EntryModes The entry mode of the card.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
Unknown The entry mode is unknown.
NotApplicable The entry mode is not applicable for this transaction.
Manual The transaction details were entered manually.
UnencryptedCardReaderSwipe The card was swiped through an unencrypted card reader.
EncryptedCardReaderSwipe The card was swiped through an encrypted card reader.
Icc The transaction was processed using an ICC (Integrated Circuit Card) or chip card.
Proximity The transaction was processed using a proximity or contactless payment method.
Fallback The transaction was processed using a fallback method when the primary method failed.
TechnicalFallback The transaction was processed using a fallback method when the primary method failed.
EmptyCandidateFallback The transaction was processed using a fallback method when the primary method failed.
DigitalWallet The transaction was processed using a digital wallet.
cvPresence required CvPresence CvPresence The CV (Card Verification) presence status.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
None The CV status is not specified or unknown.
NotSubmitted The CV has not been submitted.
Submitted The CV has been successfully submitted.
Illegible The submitted CV is illegible or cannot be read.
NotPresent The CV is not present or missing from the submission.
billingAddress required Address Address The billing address associated with the card. Optional by default (no nested validation enforced). Conditional: When IsStoredPayment is not true.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
phone required string The phone number associated with the card. Conditional: When IsStoredPayment is not true. Max length: 15. Pattern: ^[0-9+()\-\s]*$. nullablemin length 0max length 15
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
email required string The email address associated with the card. Conditional: When IsStoredPayment is not true. Must be a valid email. Max length: 50. nullablemin length 0max length 50
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
hasEmvData required boolean Indicates whether EMV data was provided in the original request. The raw `emvData` value is not stored. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
hasTrackData required boolean Indicates whether track data was provided in the original request. The raw `trackData` value is not stored. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
hasEncryptedTrackData required boolean Indicates whether any encrypted track data (track 1, 2, or 3) was provided in the original request. The raw encrypted track values are not stored. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
hasCvv required boolean Indicates whether a CVV was provided in the original request, in either `cardVerificationValue` or `cvv`. The raw value is not stored. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
hasPin required boolean Indicates whether a PIN was provided in the original request. The raw `pin` value is not stored. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
hasDynamicCardVerificationData required boolean Indicates whether reader-generated dynamic card verification data was provided in the original request. The raw `dynamicCardVerificationData` value is not stored. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
emvAid required string nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
isDebitRouting required boolean nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
tenderType required CardTenderType CardTenderType The card-rail tender the caller is attempting to use. Drives deterministic processor routing. `null` (or absent JSON) is treated as `CreditDebit` for backward compatibility: see `EffectiveTenderType`. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
CreditDebit Standard credit/debit card. The current card-rail behaviour. isDebitRouting modulates whether the request prefers debit-network routing within this rail.
EbtSnap EBT SNAP (food benefits). Routes through the EBT SNAP processor lane and requires PIN + card-present per program rules.
EbtCash EBT Cash (cash benefits). Distinct rail from SNAP; supports cashback where SNAP does not. PIN + card-present required.
Ewic eWIC (Women, Infants, and Children). Distinct rail from EBT, with item-level eligibility / voucher-select flow handled in the eWIC follow-up epic.
isStoredPayment required boolean When `true`, this card data originates from a stored payment method and client-side field validation is not applicable. The server resolves actual card data from the payment token. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
terminalCapability required TerminalCapability TerminalCapability The static hardware capability of the terminal. Selects the POS capability subfields on the processor wire message. Resolved once in `ProcessorSelectionApplier`: request value wins over the processor-profile default, which wins over `Unspecified`. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
Unspecified No capability declared. The handler emits its current default POS capability fields, preserving existing wire behavior exactly.
MagneticStripe Magnetic stripe reader only (implies keyed entry).
MagneticStripeWithPin Magnetic stripe reader with PIN pad (implies keyed entry).
Chip Contact chip reader (EMV ICC).
ChipWithPin Contact chip reader with PIN pad.
ChipContactless Contactless chip reader (EMV contactless / NFC).
ChipContactlessWithPin Contactless chip reader with PIN pad.
cryptogram required string The payment network cryptogram recovered from wallet-token decryption (the online payment cryptogram for Apple Pay / Google Pay DPAN transactions). Sensitive: masked from logs. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
eciIndicator required string The Electronic Commerce Indicator (ECI) describing the authentication context of a tokenized / wallet transaction (e.g. `"05"` for a 3DS-authenticated transaction). Drives the liability-shift indicators processors include in the network message. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
isTokenized required boolean Indicates the credential is a tokenized account number (DPAN / network token) rather than a raw PAN. `null` means unknown, which is treated the same as not tokenized. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
tokenTransactionId required string The provider-specific transaction identifier returned alongside a wallet token (Apple Pay `transactionIdentifier`, network-token transaction id). Used for dispute matching against the wallet provider. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

This body has no documented fields.

checkData required CheckData CheckData Gets or sets the check data when `paymentMethodType` is Check. Required: When PaymentMethodType == Check. Conditional: When CheckData is not null and PaymentMethodType == Check.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

Fields of CheckData:

Field Type Description
nameOnCheck required string The name printed on the check. Required: When IsStoredPayment is not true. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
routingNumber required string The routing number of the bank. Required: When IsStoredPayment is not true. Conditional: When IsStoredPayment is true. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
routingNumberLast4 required string The last 4 digits of `routingNumber` as a string, preserving leading zeros, or `null` when no digits are available. nullableread only
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
accountNumber required string The account number associated with the check. Required: When IsStoredPayment is not true. Conditional: When IsStoredPayment is true. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
accountNumberLast4 required string The last 4 digits of `accountNumber` as a string, preserving leading zeros, or `null` when no digits are available. nullableread only
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
checkNumber required string The check number. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
micr required string The Magnetic Ink Character Recognition (MICR) data. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
driversLicense required string The driver's license number of the check writer. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
state required string The state of issuance for the driver's license. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
ssn required string The Social Security Number of the check writer. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
dateOfBirth required string The date of birth of the check writer. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
checkType required CheckType CheckType The type of check.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
Personal Represents a personal check. This is typically issued by an individual from their personal account.
Business Represents a business check. This is typically issued by a company or organization from their business account.
accountType required CheckAccountType CheckAccountType The type of account associated with the check. Conditional: When IsStoredPayment is not true.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
Checking Represents a checking account.
Savings Represents a savings account.
rawMicr required string The raw MICR data. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
branchCity required string The city of the bank branch. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
emailAddress required string The email address of the check writer. Conditional: When IsStoredPayment is not true. Must be a valid email. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
telephoneNumber required string The telephone number of the check writer. Conditional: When IsStoredPayment is not true. Pattern: ^[0-9+()\-\s]*$. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
address required Address Address The address associated with the check. Optional by default (no nested validation enforced). Conditional: When IsStoredPayment is not true.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
secCode required SecCode SecCode The Standard Entry Class (SEC) code for the transaction. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
Ccd Corporate Credit or Debit (CCD) - Used for business-to-business transactions.
Ppd Prearranged Payment and Deposit (PPD) - Used for consumer transactions.
Web Internet-Initiated/Mobile Entry (WEB) - Used for internet or mobile-initiated transactions.
Arc Accounts Receivable Conversion (ARC) - Used for converting eligible checks to ACH debits.
Tel Telephone-Initiated Entry (TEL) - Used for telephone-initiated transactions.
isStoredPayment required boolean When `true`, this check data originates from a stored payment method and client-side field validation is not applicable. The server resolves actual account data from the payment token. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

This body has no documented fields.

isDefault required boolean Gets or sets whether this should be the customer's default payment method.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
customName required string Gets or sets an optional user-defined display name (e.g., "Marriott Chase"). nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
initialSchemeTransactionId required string Optional initial (first-in-series) network / scheme transaction id captured from the authorization response of the cardholder-initiated transaction that stored this credential. Populated only on the transaction-driven save-card path (the manual Customer admin add has no authorization response); persisted onto the stored payment method so later charges can echo it without a consent lookup. Non-sensitive card-network protocol metadata. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
schemeTransactionIdBrand required string Optional card brand at capture time (e.g. "Visa") tagged alongside `initialSchemeTransactionId`. Ignored when the initial id is absent. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
schemeTransactionIdProcessor required string Optional originating processor ("tsys" / "fiserv") tagged alongside `initialSchemeTransactionId`. Ignored when the initial id is absent. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
readerToken required string The processor reader token to store for a PAN-less card (a decrypt-and-forward processor such as MagTek DAF, where the gateway never sees the PAN). When set, this input mints a reader-token stored method: the token is written encrypted onto the backing vault token's `ProcessorTokens` and there is no card data to vault. Set by the server only: a value supplied over the API is not accepted. Never logged. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
readerTokenProcessorName required string The processor key ("magtekdaf") the `readerToken` belongs to, used as the `ProcessorTokens` selection key. Required when `readerToken` is set. Required: When IsReaderTokenBacked is true. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
readerTokenProcessorProfileId required string (uuid) The processor profile the `readerToken` was captured under, used as the second part of the `ProcessorTokens` selection key. Optional. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
readerTokenRequestorId required string Optional token-requestor id captured alongside the `readerToken`. Stored on the backing token's `ProcessorTokens` entry for lineage. Non-sensitive. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
readerTokenMaskedCardNumber required string The masked card number of the card the `readerToken` stands in for, in the platform's masked shape (for example `411111******1111`), read off the approved authorization. Optional: absent when the processor response carried no card identity. Display only. It is never a charge credential and never a dedupe input (two distinct reader tokens can share a last four; `ReaderTokenFingerprint` stays the only matching key). The consuming services re-mask it before persisting, so a full PAN cannot travel through this field. Ignored unless `readerToken` is set. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
readerTokenCardBrand required string The card brand ("Visa", "Mastercard", ...) resolved for the card behind the `readerToken`, or `null` when neither the processor response nor the BIN lookup produced one. Best-effort display metadata; ignored unless `readerTokenMaskedCardNumber` is set. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
isReaderTokenBacked required boolean True when this input describes a reader-token (PAN-less) stored method rather than a PAN- or account-backed one. In that case `cardData` is absent by design. read only
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

This request body has no documented fields.

Responses

200 OK

Body: CustomerStoredPaymentMethodDto CustomerStoredPaymentMethodDto Each item has these fields.

Field Type Description
extraProperties required object nullableread only
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
id required string (uuid)
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
creationTime required string (date-time) The date and time when this entity was created.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
creatorId required string (uuid) The ID of the user who created this entity. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
lastModificationTime required string (date-time) The date and time when this entity was last modified. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
lastModifierId required string (uuid) The ID of the user who last modified this entity. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
isDeleted required boolean Indicates whether this entity has been deleted.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
deleterId required string (uuid) The ID of the user who deleted this entity, if it is deleted. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
deletionTime required string (date-time) The date and time when this entity was deleted, if it is deleted. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
tenantId required string (uuid) Id of the related tenant. nullableread only
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
concurrencyStamp required string Gets or sets the concurrency stamp used for optimistic concurrency control. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
entityVersion required integer (int32) A version value that is increased whenever the entity is changed. read only
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
paymentMethodType required CustomerStoredPaymentMethodType CustomerStoredPaymentMethodType Gets or sets the type of stored payment method (card, check, etc.).
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
Card
Check
cardData required CardData CardData Gets or sets the card data when `paymentMethodType` is `Card`.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

Fields of CardData:

Field Type Description
cardNumber required string The card account number. Conditional: When IsStoredPayment is not true. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
last4CardNumber required integer (int32) The last 4 digits of the card number as an integer. nullableread only
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
expirationMonth required integer (int32) The expiration month of the card as an integer in the range `1` to `12`.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
expirationYear required integer (int32) The expiration year of the card. Either a two-digit year (e.g. `29`) or a four-digit year (e.g. `2029`); two-digit years resolve to the 2000s.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
expirationDate required string (date-time) The expiration date of the card. Conditional: When IsStoredPayment is not true. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
binData required BinData BinData The BIN (Bank Identification Number) data associated with the card.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
cvv required integer (int32) Deprecated: send `cardVerificationValue` instead. The CVV (Card Verification Value) of the card as an integer. Conditional: When IsStoredPayment is not true. Range: 100 to 9999. nullabledeprecated
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
cardVerificationValue required string The card verification value (CVV, CVC or CID) exactly as printed on the card: three digits, or four for American Express. Send it as a string so a leading zero is kept. Conditional: When IsStoredPayment is not true. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
nameOnCard required string The name on the card. Conditional: When IsStoredPayment is not true. Max length: 25. nullablemin length 0max length 25
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
pin required string The PIN (Personal Identification Number) of the card. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
keySerialNumber required string The Key Serial Number associated with the card. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
emvData required string The EMV (Europay, Mastercard, and Visa) data associated with the card. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
trackData required string The track data of the card. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
encryptedTrack1Data required string The encrypted track 1 data of the card. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
encryptedTrack2Data required string The encrypted track 2 data of the card. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
encryptedTrack3Data required string The encrypted track 3 data of the card. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
dynamicCardVerificationData required string A reader-generated dynamic card verification value captured at the moment the card was read. Card readers that support it derive this value from physical characteristics of the magnetic stripe, which differ between an original card and a copy, so the decryption service that fronts the processor can score whether the presented card is genuine. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
dynamicCardVerificationStatus required string Status metadata the reader reported alongside `dynamicCardVerificationData` (for example whether the reader considered the dynamic verification read successful). Non-secret: it describes the read, it is not the verification value itself, so it is persisted as submitted. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
iin required string The IIN (Issuer Identification Number) of the card. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
arqc required string The ARQC (Authorization Request Cryptogram) of the card. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
entryMode required EntryModes EntryModes The entry mode of the card.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
Unknown The entry mode is unknown.
NotApplicable The entry mode is not applicable for this transaction.
Manual The transaction details were entered manually.
UnencryptedCardReaderSwipe The card was swiped through an unencrypted card reader.
EncryptedCardReaderSwipe The card was swiped through an encrypted card reader.
Icc The transaction was processed using an ICC (Integrated Circuit Card) or chip card.
Proximity The transaction was processed using a proximity or contactless payment method.
Fallback The transaction was processed using a fallback method when the primary method failed.
TechnicalFallback The transaction was processed using a fallback method when the primary method failed.
EmptyCandidateFallback The transaction was processed using a fallback method when the primary method failed.
DigitalWallet The transaction was processed using a digital wallet.
cvPresence required CvPresence CvPresence The CV (Card Verification) presence status.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
None The CV status is not specified or unknown.
NotSubmitted The CV has not been submitted.
Submitted The CV has been successfully submitted.
Illegible The submitted CV is illegible or cannot be read.
NotPresent The CV is not present or missing from the submission.
billingAddress required Address Address The billing address associated with the card. Optional by default (no nested validation enforced). Conditional: When IsStoredPayment is not true.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
phone required string The phone number associated with the card. Conditional: When IsStoredPayment is not true. Max length: 15. Pattern: ^[0-9+()\-\s]*$. nullablemin length 0max length 15
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
email required string The email address associated with the card. Conditional: When IsStoredPayment is not true. Must be a valid email. Max length: 50. nullablemin length 0max length 50
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
hasEmvData required boolean Indicates whether EMV data was provided in the original request. The raw `emvData` value is not stored. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
hasTrackData required boolean Indicates whether track data was provided in the original request. The raw `trackData` value is not stored. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
hasEncryptedTrackData required boolean Indicates whether any encrypted track data (track 1, 2, or 3) was provided in the original request. The raw encrypted track values are not stored. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
hasCvv required boolean Indicates whether a CVV was provided in the original request, in either `cardVerificationValue` or `cvv`. The raw value is not stored. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
hasPin required boolean Indicates whether a PIN was provided in the original request. The raw `pin` value is not stored. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
hasDynamicCardVerificationData required boolean Indicates whether reader-generated dynamic card verification data was provided in the original request. The raw `dynamicCardVerificationData` value is not stored. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
emvAid required string nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
isDebitRouting required boolean nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
tenderType required CardTenderType CardTenderType The card-rail tender the caller is attempting to use. Drives deterministic processor routing. `null` (or absent JSON) is treated as `CreditDebit` for backward compatibility: see `EffectiveTenderType`. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
CreditDebit Standard credit/debit card. The current card-rail behaviour. isDebitRouting modulates whether the request prefers debit-network routing within this rail.
EbtSnap EBT SNAP (food benefits). Routes through the EBT SNAP processor lane and requires PIN + card-present per program rules.
EbtCash EBT Cash (cash benefits). Distinct rail from SNAP; supports cashback where SNAP does not. PIN + card-present required.
Ewic eWIC (Women, Infants, and Children). Distinct rail from EBT, with item-level eligibility / voucher-select flow handled in the eWIC follow-up epic.
isStoredPayment required boolean When `true`, this card data originates from a stored payment method and client-side field validation is not applicable. The server resolves actual card data from the payment token. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
terminalCapability required TerminalCapability TerminalCapability The static hardware capability of the terminal. Selects the POS capability subfields on the processor wire message. Resolved once in `ProcessorSelectionApplier`: request value wins over the processor-profile default, which wins over `Unspecified`. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
Unspecified No capability declared. The handler emits its current default POS capability fields, preserving existing wire behavior exactly.
MagneticStripe Magnetic stripe reader only (implies keyed entry).
MagneticStripeWithPin Magnetic stripe reader with PIN pad (implies keyed entry).
Chip Contact chip reader (EMV ICC).
ChipWithPin Contact chip reader with PIN pad.
ChipContactless Contactless chip reader (EMV contactless / NFC).
ChipContactlessWithPin Contactless chip reader with PIN pad.
cryptogram required string The payment network cryptogram recovered from wallet-token decryption (the online payment cryptogram for Apple Pay / Google Pay DPAN transactions). Sensitive: masked from logs. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
eciIndicator required string The Electronic Commerce Indicator (ECI) describing the authentication context of a tokenized / wallet transaction (e.g. `"05"` for a 3DS-authenticated transaction). Drives the liability-shift indicators processors include in the network message. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
isTokenized required boolean Indicates the credential is a tokenized account number (DPAN / network token) rather than a raw PAN. `null` means unknown, which is treated the same as not tokenized. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
tokenTransactionId required string The provider-specific transaction identifier returned alongside a wallet token (Apple Pay `transactionIdentifier`, network-token transaction id). Used for dispute matching against the wallet provider. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

This body has no documented fields.

checkData required CheckData CheckData Gets or sets the check/ACH data when `paymentMethodType` is `Check`.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

Fields of CheckData:

Field Type Description
nameOnCheck required string The name printed on the check. Required: When IsStoredPayment is not true. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
routingNumber required string The routing number of the bank. Required: When IsStoredPayment is not true. Conditional: When IsStoredPayment is true. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
routingNumberLast4 required string The last 4 digits of `routingNumber` as a string, preserving leading zeros, or `null` when no digits are available. nullableread only
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
accountNumber required string The account number associated with the check. Required: When IsStoredPayment is not true. Conditional: When IsStoredPayment is true. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
accountNumberLast4 required string The last 4 digits of `accountNumber` as a string, preserving leading zeros, or `null` when no digits are available. nullableread only
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
checkNumber required string The check number. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
micr required string The Magnetic Ink Character Recognition (MICR) data. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
driversLicense required string The driver's license number of the check writer. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
state required string The state of issuance for the driver's license. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
ssn required string The Social Security Number of the check writer. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
dateOfBirth required string The date of birth of the check writer. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
checkType required CheckType CheckType The type of check.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
Personal Represents a personal check. This is typically issued by an individual from their personal account.
Business Represents a business check. This is typically issued by a company or organization from their business account.
accountType required CheckAccountType CheckAccountType The type of account associated with the check. Conditional: When IsStoredPayment is not true.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
Checking Represents a checking account.
Savings Represents a savings account.
rawMicr required string The raw MICR data. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
branchCity required string The city of the bank branch. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
emailAddress required string The email address of the check writer. Conditional: When IsStoredPayment is not true. Must be a valid email. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
telephoneNumber required string The telephone number of the check writer. Conditional: When IsStoredPayment is not true. Pattern: ^[0-9+()\-\s]*$. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
address required Address Address The address associated with the check. Optional by default (no nested validation enforced). Conditional: When IsStoredPayment is not true.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
secCode required SecCode SecCode The Standard Entry Class (SEC) code for the transaction. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
Ccd Corporate Credit or Debit (CCD) - Used for business-to-business transactions.
Ppd Prearranged Payment and Deposit (PPD) - Used for consumer transactions.
Web Internet-Initiated/Mobile Entry (WEB) - Used for internet or mobile-initiated transactions.
Arc Accounts Receivable Conversion (ARC) - Used for converting eligible checks to ACH debits.
Tel Telephone-Initiated Entry (TEL) - Used for telephone-initiated transactions.
isStoredPayment required boolean When `true`, this check data originates from a stored payment method and client-side field validation is not applicable. The server resolves actual account data from the payment token. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

This body has no documented fields.

isDefault required boolean Gets or sets a value indicating whether this is the customer's default payment method.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
displayName required string Gets the human-readable display name for this payment method. When `customName` is set, it takes priority over the computed brand + last-4 fallback. nullableread only
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
customName required string Gets or sets an optional user-defined name for this payment method (e.g., "Marriott Chase", "Bank of America Checkcard"). nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
paymentTokenId required string (uuid) Gets or sets the identifier of the `PaymentToken` document that stores the encrypted card/check data for this stored payment method. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
publicReference required string Gets or sets the chargeable public reference (the opaque `pt_`-prefixed handle) of the backing `PaymentToken`. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
origin required StoredPaymentMethodOrigin StoredPaymentMethodOrigin Gets or sets the surface / add-channel this stored payment method was captured through (manual admin, hosted payment page, virtual terminal, or API). Null when the method predates this field, which callers treat as `Unknown`. Non-sensitive add-channel metadata. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
Unknown The add-channel was not recorded. Assigned to methods that predate this field (materialized from a null value) and to any path that did not classify its origin.
ManualAdmin Added by an operator through a Customer admin surface that mints the stored method on the customer document directly (the customer edit form's payment-methods dialog, and the create-customer / create-contract-from-transaction dialogs). Note: the contract add-payment dialog submits through the HTTP add endpoint and is therefore recorded as Api, since origin on that boundary is server-authoritative and cannot be caller-supplied.
HostedPaymentPage Vaulted from a hosted payment page: either tokenize-on-payment or the direct ACH vault flow.
VirtualTerminal Vaulted from a Virtual Terminal save-on-payment.
Api Added through the HTTP add-stored-payment-method endpoint. Covers external API token registration and any in-process operator surface that submits through that same gated endpoint (e.g. the contract add-payment dialog): origin on this boundary is stamped server-side and is never caller-supplied.
isReaderTokenBacked required boolean Gets or sets whether this stored method is backed by a processor card token rather than a stored card number: the card was captured by a card reader on a decrypt-and-forward processor, so the platform never held its number and the method carries no expiration date. Such a method is charged through its `publicReference` exactly like any other, but only on the processor that issued the token. `false` for every card-number-backed card and every bank account method.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

This response has no documented body fields.

403 Forbidden

Body: RemoteServiceErrorResponse RemoteServiceErrorResponse Each item has these fields.

Field Type Description
error required RemoteServiceErrorInfo RemoteServiceErrorInfo
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

This response has no documented body fields.

401 Unauthorized

Body: RemoteServiceErrorResponse RemoteServiceErrorResponse Each item has these fields.

Field Type Description
error required RemoteServiceErrorInfo RemoteServiceErrorInfo
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

This response has no documented body fields.

400 Bad Request

Body: RemoteServiceErrorResponse RemoteServiceErrorResponse Each item has these fields.

Field Type Description
error required RemoteServiceErrorInfo RemoteServiceErrorInfo
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

This response has no documented body fields.

404 Not Found

Body: RemoteServiceErrorResponse RemoteServiceErrorResponse Each item has these fields.

Field Type Description
error required RemoteServiceErrorInfo RemoteServiceErrorInfo
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

This response has no documented body fields.

501 Not Implemented

Body: RemoteServiceErrorResponse RemoteServiceErrorResponse Each item has these fields.

Field Type Description
error required RemoteServiceErrorInfo RemoteServiceErrorInfo
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

This response has no documented body fields.

500 Internal Server Error

Body: RemoteServiceErrorResponse RemoteServiceErrorResponse Each item has these fields.

Field Type Description
error required RemoteServiceErrorInfo RemoteServiceErrorInfo
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

This response has no documented body fields.

default The request failed. The body carries the standard error envelope: a machine-readable `error.code`, a human-readable `error.message`, and `error.validationErrors` when the failure was a validation rejection. The error reference lists the values `error.code` can take. The request failed. The body carries the standard error envelope: a machine-readable `error.code`, a human-readable `error.message`, and `error.validationErrors` when the failure was a validation rejection. The error reference lists the values `error.code` can take.

Body: RemoteServiceErrorResponse RemoteServiceErrorResponse Each item has these fields.

Field Type Description
error required RemoteServiceErrorInfo RemoteServiceErrorInfo
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

This response has no documented body fields.

429 The request was refused because a rate limit was exceeded, or because something a later retry can clear stopped it. A rate limit refusal carries an `application/problem+json` body: wait at least the interval `Retry-After` names before retrying, then back off. Limits are tuned per deployment, so read the allowance from the response headers rather than assuming a fixed ceiling. Any other refusal carries the standard error envelope as `application/json`, and its `error.code` names the cause.

Body: RemoteServiceErrorResponse RemoteServiceErrorResponse Each item has these fields.

Field Type Description
error required RemoteServiceErrorInfo RemoteServiceErrorInfo
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

This response has no documented body fields.

Errors

A failed request returns the platform error envelope. The error reference lists every value error.code can carry and shows the four response shapes.

Codes declared by Customers

Authentication

    Reconnecting to the server

    Could not reconnect

    This session has ended

    Attempt 1

    Your work on this page is still here. Retrying keeps it; reloading starts the page again.

    The server no longer holds this page's state, so it has to be loaded again.