Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
c5475ef
fix(types): make fields nullable in account-holders, accounts, and cards
stainless-app[bot] Apr 21, 2026
5e2ba1b
codegen metadata
stainless-app[bot] Apr 21, 2026
bb95c1f
chore(internal): update docs ordering
stainless-app[bot] Apr 22, 2026
eb0bf7c
chore(internal): more robust bootstrap script
stainless-app[bot] Apr 22, 2026
f64d754
chore: restructure docs search code
stainless-app[bot] Apr 24, 2026
d0f5362
feat(api): add AMEX to network enum in settlement reports
stainless-app[bot] Apr 24, 2026
d78245b
chore(formatter): run prettier and eslint separately
stainless-app[bot] Apr 24, 2026
c38ad4c
chore(internal): codegen related update
stainless-app[bot] Apr 27, 2026
7031267
feat: Update card expiration from 6 years to 5 years
stainless-app[bot] Apr 27, 2026
2406cf7
feat: support setting headers via env
stainless-app[bot] Apr 27, 2026
17f1170
chore(internal): codegen related update
stainless-app[bot] Apr 28, 2026
da614e0
codegen metadata
stainless-app[bot] Apr 28, 2026
10aa40f
chore(format): run eslint and prettier separately
stainless-app[bot] Apr 28, 2026
062a350
chore: avoid formatting file that gets changed during releases
stainless-app[bot] Apr 29, 2026
9d3d4a8
codegen metadata
stainless-app[bot] Apr 29, 2026
8ab2d75
codegen metadata
stainless-app[bot] Apr 30, 2026
4d4db79
docs(api): improve SettlementDetail event_tokens and transaction_toke…
stainless-app[bot] May 1, 2026
6d4c205
docs: clarify forwards compat behavior
stainless-app[bot] May 4, 2026
ec4f6ca
docs: update with proxy auth info
stainless-app[bot] May 5, 2026
f2b26de
feat(api): add IS_NEW_MERCHANT metric to auth rules v2
stainless-app[bot] May 5, 2026
be79428
release: 0.138.0
stainless-app[bot] May 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ CHANGELOG.md
/ecosystem-tests/*/**
/node_modules
/deno
/packages/mcp-server/manifest.json

# don't format tsc output, will break source maps
dist
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "0.137.0"
".": "0.138.0"
}
4 changes: 2 additions & 2 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
configured_endpoints: 191
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-d29b68bb85936070878d8badaa8a7c5991313285e70a990bc812c838eba85373.yml
openapi_spec_hash: 54b44da68df22eb0ea99f2bc564667a2
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic/lithic-92d7ce0702a494edb7beb0ad484c4f24aca65777197d40b2108d05c13c3fa505.yml
openapi_spec_hash: 35e4b9edb38ef23f528fcfbfeaabac02
config_hash: ac8326134e692f3f3bdec82396bbec80
35 changes: 35 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,40 @@
# Changelog

## 0.138.0 (2026-05-05)

Full Changelog: [v0.137.0...v0.138.0](https://github.com/lithic-com/lithic-node/compare/v0.137.0...v0.138.0)

### Features

* **api:** add AMEX to network enum in settlement reports ([d0f5362](https://github.com/lithic-com/lithic-node/commit/d0f5362f7bc061d07058f1fd39cd5f843615ed7a))
* **api:** add IS_NEW_MERCHANT metric to auth rules v2 ([f2b26de](https://github.com/lithic-com/lithic-node/commit/f2b26de0a41a087240c9214c2dc433f9a0cd85e4))
* support setting headers via env ([2406cf7](https://github.com/lithic-com/lithic-node/commit/2406cf738dafa08c8c0e09a833c25b079c3c4887))
* Update card expiration from 6 years to 5 years ([7031267](https://github.com/lithic-com/lithic-node/commit/7031267707c21414d050657426d5a0dcdfe7318e))


### Bug Fixes

* **types:** make fields nullable in account-holders, accounts, and cards ([c5475ef](https://github.com/lithic-com/lithic-node/commit/c5475ef1525294e6a50e47637e3479ae5b4c6866))


### Chores

* avoid formatting file that gets changed during releases ([062a350](https://github.com/lithic-com/lithic-node/commit/062a350217e39bf8b054c4bdfb3054cbfa7137ac))
* **format:** run eslint and prettier separately ([10aa40f](https://github.com/lithic-com/lithic-node/commit/10aa40fd72fd0933d2bc331dfbec23ce97b6c62f))
* **formatter:** run prettier and eslint separately ([d78245b](https://github.com/lithic-com/lithic-node/commit/d78245b7aad796549148adcf228d0077233d0419))
* **internal:** codegen related update ([17f1170](https://github.com/lithic-com/lithic-node/commit/17f1170f306b327ae2766e6f55d0fa64cc9f7b62))
* **internal:** codegen related update ([c38ad4c](https://github.com/lithic-com/lithic-node/commit/c38ad4c69e7bdaefbc8f6288b29206ec5157650a))
* **internal:** more robust bootstrap script ([eb0bf7c](https://github.com/lithic-com/lithic-node/commit/eb0bf7c3e099e87bca8f2997d582fdb10a2b796c))
* **internal:** update docs ordering ([bb95c1f](https://github.com/lithic-com/lithic-node/commit/bb95c1f529a85c3e04eab6783b1f7301e6085670))
* restructure docs search code ([f64d754](https://github.com/lithic-com/lithic-node/commit/f64d75431f41bef55ed246bf3da3d8a1183fd327))


### Documentation

* **api:** improve SettlementDetail event_tokens and transaction_token descriptions ([4d4db79](https://github.com/lithic-com/lithic-node/commit/4d4db79662318ed08590ff8ab40e1f6d7ab0a8be))
* clarify forwards compat behavior ([6d4c205](https://github.com/lithic-com/lithic-node/commit/6d4c205c664de06157fe7f8db7ed04fdab8625b2))
* update with proxy auth info ([ec4f6ca](https://github.com/lithic-com/lithic-node/commit/ec4f6ca8dfaefc3fe230109d3a09fdb53c1a3812))

## 0.137.0 (2026-04-20)

Full Changelog: [v0.136.0...v0.137.0](https://github.com/lithic-com/lithic-node/compare/v0.136.0...v0.137.0)
Expand Down
3 changes: 0 additions & 3 deletions eslint.config.mjs
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
// @ts-check
import tseslint from 'typescript-eslint';
import unusedImports from 'eslint-plugin-unused-imports';
import prettier from 'eslint-plugin-prettier';

export default tseslint.config(
{
Expand All @@ -14,11 +13,9 @@ export default tseslint.config(
plugins: {
'@typescript-eslint': tseslint.plugin,
'unused-imports': unusedImports,
prettier,
},
rules: {
'no-unused-vars': 'off',
'prettier/prettier': 'error',
'unused-imports/no-unused-imports': 'error',
'no-restricted-imports': [
'error',
Expand Down
3 changes: 1 addition & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "lithic",
"version": "0.137.0",
"version": "0.138.0",
"description": "The official TypeScript library for the Lithic API",
"author": "Lithic <sdk-feedback@lithic.com>",
"types": "dist/index.d.ts",
Expand Down Expand Up @@ -38,7 +38,6 @@
"@typescript-eslint/eslint-plugin": "8.31.1",
"@typescript-eslint/parser": "8.31.1",
"eslint": "^9.39.1",
"eslint-plugin-prettier": "^5.4.1",
"eslint-plugin-unused-imports": "^4.1.4",
"iconv-lite": "^0.6.3",
"jest": "^29.4.0",
Expand Down
2 changes: 1 addition & 1 deletion packages/mcp-server/manifest.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"dxt_version": "0.2",
"name": "lithic-mcp",
"version": "0.137.0",
"version": "0.138.0",
"description": "The official MCP Server for the Lithic API",
"author": {
"name": "Lithic",
Expand Down
2 changes: 1 addition & 1 deletion packages/mcp-server/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "lithic-mcp",
"version": "0.137.0",
"version": "0.138.0",
"description": "The official MCP Server for the Lithic API",
"author": "Lithic <sdk-feedback@lithic.com>",
"types": "dist/index.d.ts",
Expand Down
4,336 changes: 2,168 additions & 2,168 deletions packages/mcp-server/src/local-docs-search.ts

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion packages/mcp-server/src/server.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ export const newMcpServer = async ({
new McpServer(
{
name: 'lithic_api',
version: '0.137.0',
version: '0.138.0',
},
{
instructions: await getInstructions({ stainlessApiKey, customInstructionsPath }),
Expand Down
2 changes: 1 addition & 1 deletion scripts/bootstrap
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ set -e

cd "$(dirname "$0")/.."

if [ -f "Brewfile" ] && [ "$(uname -s)" = "Darwin" ] && [ "$SKIP_BREW" != "1" ] && [ -t 0 ]; then
if [ -f "Brewfile" ] && [ "$(uname -s)" = "Darwin" ] && [ "${SKIP_BREW:-}" != "1" ] && [ -t 0 ]; then
brew bundle check >/dev/null 2>&1 || {
echo -n "==> Install Homebrew dependencies? (y/N): "
read -r response
Expand Down
9 changes: 3 additions & 6 deletions scripts/fast-format
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,7 @@ if ! [ -z "$ESLINT_FILES" ]; then
fi

echo "==> Running prettier --write"
# format things eslint didn't
PRETTIER_FILES="$(grep '\.\(js\|json\)$' "$FILE_LIST" || true)"
if ! [ -z "$PRETTIER_FILES" ]; then
echo "$PRETTIER_FILES" | xargs ./node_modules/.bin/prettier \
--write --cache --cache-strategy metadata --no-error-on-unmatched-pattern \
'!**/dist' '!**/*.ts' '!**/*.mts' '!**/*.cts' '!**/*.js' '!**/*.mjs' '!**/*.cjs'
if ! [ -z "$FILE_LIST" ]; then
cat "$FILE_LIST" | xargs ./node_modules/.bin/prettier \
--write --cache --cache-strategy metadata --no-error-on-unmatched-pattern --ignore-unknown
fi
3 changes: 1 addition & 2 deletions scripts/format
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,4 @@ echo "==> Running eslint --fix"
./node_modules/.bin/eslint --fix .

echo "==> Running prettier --write"
# format things eslint didn't
./node_modules/.bin/prettier --write --cache --cache-strategy metadata . '!**/dist' '!**/*.ts' '!**/*.mts' '!**/*.cts' '!**/*.js' '!**/*.mjs' '!**/*.cjs'
./node_modules/.bin/prettier --write --cache --cache-strategy metadata .
3 changes: 3 additions & 0 deletions scripts/lint
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@ set -e

cd "$(dirname "$0")/.."

echo "==> Running prettier --check"
./node_modules/.bin/prettier --check .

echo "==> Running eslint"
./node_modules/.bin/eslint .

Expand Down
9 changes: 8 additions & 1 deletion scripts/utils/postprocess-files.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,19 @@ async function postprocess() {

// strip out lib="dom", types="node", and types="react" references; these
// are needed at build time, but would pollute the user's TS environment
const transformed = code.replace(
let transformed = code.replace(
/^ *\/\/\/ *<reference +(lib="dom"|types="(node|react)").*?\n/gm,
// replace with same number of characters to avoid breaking source maps
(match) => ' '.repeat(match.length - 1) + '\n',
);

// TypeScript's declaration emitter collapses /** @ts-ignore */ onto the same
// line as the type declaration, which doesn't work. So we convert to // @ts-ignore
// on its own line to properly suppresses errors.
if (file.endsWith('.d.ts') || file.endsWith('.d.mts') || file.endsWith('.d.cts')) {
transformed = transformed.replace(/\/\*\* @ts-ignore\b[^*]*\*\/ /gm, '// @ts-ignore\n');
}

if (transformed !== code) {
console.error(`wrote ${path.relative(process.cwd(), file)}`);
await fs.promises.writeFile(file, transformed, 'utf8');
Expand Down
12 changes: 12 additions & 0 deletions src/client.ts
Original file line number Diff line number Diff line change
Expand Up @@ -549,6 +549,18 @@ export class Lithic {
this.fetch = options.fetch ?? Shims.getDefaultFetch();
this.#encoder = Opts.FallbackEncoder;

const customHeadersEnv = readEnv('LITHIC_CUSTOM_HEADERS');
if (customHeadersEnv) {
const parsed: Record<string, string> = {};
for (const line of customHeadersEnv.split('\n')) {
const colon = line.indexOf(':');
if (colon >= 0) {
parsed[line.substring(0, colon).trim()] = line.substring(colon + 1).trim();
}
}
options.defaultHeaders = { ...parsed, ...options.defaultHeaders };
}

this._options = options;

this.apiKey = apiKey;
Expand Down
14 changes: 6 additions & 8 deletions src/internal/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,6 @@ type OverloadedParameters<T> =
: T extends (...args: infer A) => unknown ? A
: never;

/* eslint-disable */
/**
* These imports attempt to get types from a parent package's dependencies.
* Unresolved bare specifiers can trigger [automatic type acquisition][1] in some projects, which
Expand All @@ -63,19 +62,18 @@ type OverloadedParameters<T> =
*
* [1]: https://www.typescriptlang.org/tsconfig/#typeAcquisition
*/
/** @ts-ignore For users with \@types/node */
/** @ts-ignore For users with \@types/node */ /* prettier-ignore */
type UndiciTypesRequestInit = NotAny<import('../node_modules/undici-types/index.d.ts').RequestInit> | NotAny<import('../../node_modules/undici-types/index.d.ts').RequestInit> | NotAny<import('../../../node_modules/undici-types/index.d.ts').RequestInit> | NotAny<import('../../../../node_modules/undici-types/index.d.ts').RequestInit> | NotAny<import('../../../../../node_modules/undici-types/index.d.ts').RequestInit> | NotAny<import('../../../../../../node_modules/undici-types/index.d.ts').RequestInit> | NotAny<import('../../../../../../../node_modules/undici-types/index.d.ts').RequestInit> | NotAny<import('../../../../../../../../node_modules/undici-types/index.d.ts').RequestInit> | NotAny<import('../../../../../../../../../node_modules/undici-types/index.d.ts').RequestInit> | NotAny<import('../../../../../../../../../../node_modules/undici-types/index.d.ts').RequestInit>;
/** @ts-ignore For users with undici */
/** @ts-ignore For users with undici */ /* prettier-ignore */
type UndiciRequestInit = NotAny<import('../node_modules/undici/index.d.ts').RequestInit> | NotAny<import('../../node_modules/undici/index.d.ts').RequestInit> | NotAny<import('../../../node_modules/undici/index.d.ts').RequestInit> | NotAny<import('../../../../node_modules/undici/index.d.ts').RequestInit> | NotAny<import('../../../../../node_modules/undici/index.d.ts').RequestInit> | NotAny<import('../../../../../../node_modules/undici/index.d.ts').RequestInit> | NotAny<import('../../../../../../../node_modules/undici/index.d.ts').RequestInit> | NotAny<import('../../../../../../../../node_modules/undici/index.d.ts').RequestInit> | NotAny<import('../../../../../../../../../node_modules/undici/index.d.ts').RequestInit> | NotAny<import('../../../../../../../../../../node_modules/undici/index.d.ts').RequestInit>;
/** @ts-ignore For users with \@types/bun */
/** @ts-ignore For users with \@types/bun */ /* prettier-ignore */
type BunRequestInit = globalThis.FetchRequestInit;
/** @ts-ignore For users with node-fetch@2 */
/** @ts-ignore For users with node-fetch@2 */ /* prettier-ignore */
type NodeFetch2RequestInit = NotAny<import('../node_modules/@types/node-fetch/index.d.ts').RequestInit> | NotAny<import('../../node_modules/@types/node-fetch/index.d.ts').RequestInit> | NotAny<import('../../../node_modules/@types/node-fetch/index.d.ts').RequestInit> | NotAny<import('../../../../node_modules/@types/node-fetch/index.d.ts').RequestInit> | NotAny<import('../../../../../node_modules/@types/node-fetch/index.d.ts').RequestInit> | NotAny<import('../../../../../../node_modules/@types/node-fetch/index.d.ts').RequestInit> | NotAny<import('../../../../../../../node_modules/@types/node-fetch/index.d.ts').RequestInit> | NotAny<import('../../../../../../../../node_modules/@types/node-fetch/index.d.ts').RequestInit> | NotAny<import('../../../../../../../../../node_modules/@types/node-fetch/index.d.ts').RequestInit> | NotAny<import('../../../../../../../../../../node_modules/@types/node-fetch/index.d.ts').RequestInit>;
/** @ts-ignore For users with node-fetch@3, doesn't need file extension because types are at ./@types/index.d.ts */
/** @ts-ignore For users with node-fetch@3, doesn't need file extension because types are at ./@types/index.d.ts */ /* prettier-ignore */
type NodeFetch3RequestInit = NotAny<import('../node_modules/node-fetch').RequestInit> | NotAny<import('../../node_modules/node-fetch').RequestInit> | NotAny<import('../../../node_modules/node-fetch').RequestInit> | NotAny<import('../../../../node_modules/node-fetch').RequestInit> | NotAny<import('../../../../../node_modules/node-fetch').RequestInit> | NotAny<import('../../../../../../node_modules/node-fetch').RequestInit> | NotAny<import('../../../../../../../node_modules/node-fetch').RequestInit> | NotAny<import('../../../../../../../../node_modules/node-fetch').RequestInit> | NotAny<import('../../../../../../../../../node_modules/node-fetch').RequestInit> | NotAny<import('../../../../../../../../../../node_modules/node-fetch').RequestInit>;
/** @ts-ignore For users who use Deno */
/** @ts-ignore For users who use Deno */ /* prettier-ignore */
type FetchRequestInit = NonNullable<OverloadedParameters<typeof fetch>[1]>;
/* eslint-enable */

type RequestInits =
| NotAny<UndiciTypesRequestInit>
Expand Down
6 changes: 3 additions & 3 deletions src/resources/account-holders/account-holders.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1284,7 +1284,7 @@ export namespace AccountHolderUpdateResponse {
email?: string;

/**
* The type of KYC exemption for a KYC-Exempt Account Holder. "None" if the account
* The type of KYC exemption for a KYC-Exempt Account Holder. `null` if the account
* holder is not KYC-Exempt.
*/
exemption_type?: 'AUTHORIZED_USER' | 'PREPAID_CARD_USER';
Expand Down Expand Up @@ -1839,10 +1839,10 @@ export interface AccountHolderSimulateEnrollmentReviewResponse {
email?: string;

/**
* The type of KYC exemption for a KYC-Exempt Account Holder. "None" if the account
* The type of KYC exemption for a KYC-Exempt Account Holder. `null` if the account
* holder is not KYC-Exempt.
*/
exemption_type?: 'AUTHORIZED_USER' | 'PREPAID_CARD_USER';
exemption_type?: 'AUTHORIZED_USER' | 'PREPAID_CARD_USER' | null;

/**
* Customer-provided token that indicates a relationship with an object outside of
Expand Down
6 changes: 4 additions & 2 deletions src/resources/accounts.ts
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,8 @@ export interface Account {
| 'ISSUER_REQUEST'
| 'NOT_ACTIVE'
| 'INTERNAL_REVIEW'
| 'OTHER';
| 'OTHER'
| null;

/**
* @deprecated
Expand Down Expand Up @@ -406,7 +407,8 @@ export interface AccountUpdateParams {
| 'ISSUER_REQUEST'
| 'NOT_ACTIVE'
| 'INTERNAL_REVIEW'
| 'OTHER';
| 'OTHER'
| null;

/**
* @deprecated Address used during Address Verification Service (AVS) checks during
Expand Down
5 changes: 5 additions & 0 deletions src/resources/auth-rules/v2/v2.ts
Original file line number Diff line number Diff line change
Expand Up @@ -828,6 +828,10 @@ export namespace ConditionalAuthorizationActionParameters {
* transaction for the entity. Requires `parameters.scope`.
* - `DISTINCT_COUNTRY_COUNT`: The number of distinct merchant countries seen in
* the entity's transaction history. Requires `parameters.scope`.
* - `IS_NEW_MERCHANT`: Whether the card acceptor ID has not been seen in the
* card's approved transaction history (capped at the 1000 most recently seen
* merchants). Valid values are `TRUE`, `FALSE`. Card-scoped only; no
* `parameters` required.
* - `THREE_DS_SUCCESS_RATE`: The 3DS authentication success rate for the card, as
* a percentage from 0.0 to 100.0. Card-scoped only; no `parameters` required.
*/
Expand Down Expand Up @@ -867,6 +871,7 @@ export namespace ConditionalAuthorizationActionParameters {
| 'CONSECUTIVE_DECLINES'
| 'TIME_SINCE_LAST_TRANSACTION'
| 'DISTINCT_COUNTRY_COUNT'
| 'IS_NEW_MERCHANT'
| 'THREE_DS_SUCCESS_RATE';

/**
Expand Down
27 changes: 16 additions & 11 deletions src/resources/cards/cards.ts
Original file line number Diff line number Diff line change
Expand Up @@ -524,9 +524,9 @@ export interface NonPCICard {
created: string;

/**
* Deprecated: Funding account for the card.
* Funding account for a card
*/
funding: NonPCICard.Funding;
funding: NonPCICard.Funding | null;

/**
* Last four digits of the card number.
Expand Down Expand Up @@ -611,7 +611,7 @@ export interface NonPCICard {
* after tokenization. This artwork must be approved by Mastercard and configured
* by Lithic to use.
*/
digital_card_art_token?: string;
digital_card_art_token?: string | null;

/**
* Two digit (MM) expiry month.
Expand Down Expand Up @@ -652,7 +652,7 @@ export interface NonPCICard {
* before use. Specifies the configuration (i.e., physical card art) that the card
* should be manufactured with.
*/
product_id?: string;
product_id?: string | null;

/**
* If the card is a replacement for another card, the globally unique identifier
Expand Down Expand Up @@ -693,12 +693,13 @@ export interface NonPCICard {
| 'INTERNAL_REVIEW'
| 'EXPIRED'
| 'UNDELIVERABLE'
| 'OTHER';
| 'OTHER'
| null;
}

export namespace NonPCICard {
/**
* Deprecated: Funding account for the card.
* Funding account for a card
*/
export interface Funding {
/**
Expand Down Expand Up @@ -740,7 +741,7 @@ export namespace NonPCICard {
/**
* The nickname given to the `FundingAccount` or `null` if it has no nickname.
*/
nickname?: string;
nickname?: string | null;
}
}

Expand Down Expand Up @@ -917,13 +918,15 @@ export interface CardCreateParams {

/**
* Body param: Two digit (MM) expiry month. If neither `exp_month` nor `exp_year`
* is provided, an expiration date will be generated.
* is provided, an expiration date five years in the future will be generated. Five
* years is the maximum expiration date.
*/
exp_month?: string;

/**
* Body param: Four digit (yyyy) expiry year. If neither `exp_month` nor `exp_year`
* is provided, an expiration date will be generated.
* is provided, an expiration date five years in the future will be generated. Five
* years is the maximum expiration date.
*/
exp_year?: string;

Expand Down Expand Up @@ -1459,13 +1462,15 @@ export interface CardRenewParams {

/**
* Two digit (MM) expiry month. If neither `exp_month` nor `exp_year` is provided,
* an expiration date six years in the future will be generated.
* an expiration date five years in the future will be generated. Five years is the
* maximum expiration date.
*/
exp_month?: string;

/**
* Four digit (yyyy) expiry year. If neither `exp_month` nor `exp_year` is
* provided, an expiration date six years in the future will be generated.
* provided, an expiration date five years in the future will be generated. Five
* years is the maximum expiration date.
*/
exp_year?: string;

Expand Down
Loading
Loading