From 41d139b651d5231e6e32a0d43f6343a2c5bd34ac Mon Sep 17 00:00:00 2001
From: "kernel-internal[bot]"
<260533166+kernel-internal[bot]@users.noreply.github.com>
Date: Sat, 10 Oct 2026 23:04:09 +0000
Subject: [PATCH 1/3] feat: Complete Visa vault verification and transaction
reporting
Stainless-Generated-From: 6bc0ad2167ef3c9dc448d369c65b6dddaf810f83
---
api.md | 1 +
src/resources/vaults/index.ts | 1 +
src/resources/vaults/items.ts | 103 +++++++++++++++++++++++++++++++++
src/resources/vaults/vaults.ts | 2 +
4 files changed, 107 insertions(+)
diff --git a/api.md b/api.md
index dc9f57e2..a53eb145 100644
--- a/api.md
+++ b/api.md
@@ -514,6 +514,7 @@ Types:
- CardVaultItemSpec
- CardVaultItemState
- CollectVaultItemOperationRequest
+- ConfirmTransactionVaultItemOperationRequest
- CredentialAccountVaultItem
- CredentialAccountVaultItemRequest
- CredentialCollectionAction
diff --git a/src/resources/vaults/index.ts b/src/resources/vaults/index.ts
index 8c888192..aa582417 100644
--- a/src/resources/vaults/index.ts
+++ b/src/resources/vaults/index.ts
@@ -9,6 +9,7 @@ export {
type CardVaultItemSpec,
type CardVaultItemState,
type CollectVaultItemOperationRequest,
+ type ConfirmTransactionVaultItemOperationRequest,
type CredentialAccountVaultItem,
type CredentialAccountVaultItemRequest,
type CredentialCollectionAction,
diff --git a/src/resources/vaults/items.ts b/src/resources/vaults/items.ts
index c70f7665..ebf219ba 100644
--- a/src/resources/vaults/items.ts
+++ b/src/resources/vaults/items.ts
@@ -600,6 +600,44 @@ export interface CollectVaultItemOperationRequest {
type: 'collect';
}
+/**
+ * Report a real merchant transaction outcome for an issued Kernel Visa credential.
+ * Never infer success from filling checkout or receiving a credential. Supply the
+ * observed status, transaction type, actual amount, currency and timestamp.
+ * Unknown outcomes require manual reconciliation, not retry. Each purchase accepts
+ * one report.
+ */
+export interface ConfirmTransactionVaultItemOperationRequest {
+ /**
+ * Actual transaction amount in minor units, no greater than the approved limit.
+ */
+ amount: number;
+
+ /**
+ * Must match the approved purchase currency.
+ */
+ currency: string;
+
+ /**
+ * Time the merchant outcome was observed.
+ */
+ occurred_at: string;
+
+ status: 'APPROVED' | 'DECLINED' | 'PENDING' | 'ERROR' | 'CANCELLED';
+
+ transaction_type:
+ | 'PURCHASE'
+ | 'AUTHORIZATION'
+ | 'CAPTURE'
+ | 'REFUND'
+ | 'REVERSAL'
+ | 'VERIFICATION'
+ | 'CHARGEBACK'
+ | 'FRAUD';
+
+ type: 'confirm_transaction';
+}
+
export interface CredentialAccountVaultItem {
id: string;
@@ -652,6 +690,7 @@ export namespace CredentialAccountVaultItem {
type:
| 'authorize'
+ | 'confirm_transaction'
| 'collect'
| 'prepare_checkout'
| 'fill'
@@ -960,6 +999,7 @@ export namespace CredentialVaultItem {
type:
| 'authorize'
+ | 'confirm_transaction'
| 'collect'
| 'prepare_checkout'
| 'fill'
@@ -1257,6 +1297,17 @@ export interface KernelCardVaultItemSpec {
*/
wallet: string;
+ /**
+ * Actual merchant category when known. Omit rather than invent a category.
+ */
+ merchant_category?: string;
+
+ /**
+ * Actual merchant MCC when known. Omit rather than invent a code. 0000 is not
+ * accepted.
+ */
+ merchant_category_code?: string;
+
/**
* The merchant's ISO 3166-1 alpha-2 country code. Required for Visa cards, whose
* one-time code is issued for the merchant's country.
@@ -2059,6 +2110,7 @@ export namespace VaultItem {
type:
| 'authorize'
+ | 'confirm_transaction'
| 'collect'
| 'prepare_checkout'
| 'fill'
@@ -2132,6 +2184,7 @@ export namespace VaultItem {
type:
| 'authorize'
+ | 'confirm_transaction'
| 'collect'
| 'prepare_checkout'
| 'fill'
@@ -2281,6 +2334,7 @@ export namespace VaultItemOperationResponse {
type:
| 'authorize'
+ | 'confirm_transaction'
| 'collect'
| 'prepare_checkout'
| 'fill'
@@ -2354,6 +2408,7 @@ export namespace VaultItemOperationResponse {
type:
| 'authorize'
+ | 'confirm_transaction'
| 'collect'
| 'prepare_checkout'
| 'fill'
@@ -2739,6 +2794,7 @@ export interface ItemEventsParams {
export type ItemPerformOperationParams =
| ItemPerformOperationParams.AuthorizeVaultItemOperationRequest
+ | ItemPerformOperationParams.ConfirmTransactionVaultItemOperationRequest
| ItemPerformOperationParams.CollectVaultItemOperationRequest
| ItemPerformOperationParams.PrepareCheckoutVaultItemOperationRequest
| ItemPerformOperationParams.FillVaultItemOperationRequest
@@ -2762,6 +2818,52 @@ export declare namespace ItemPerformOperationParams {
type: 'authorize';
}
+ export interface ConfirmTransactionVaultItemOperationRequest {
+ /**
+ * Path param
+ */
+ id_or_name: string;
+
+ /**
+ * Body param: Actual transaction amount in minor units, no greater than the
+ * approved limit.
+ */
+ amount: number;
+
+ /**
+ * Body param: Must match the approved purchase currency.
+ */
+ currency: string;
+
+ /**
+ * Body param: Time the merchant outcome was observed.
+ */
+ occurred_at: string;
+
+ /**
+ * Body param
+ */
+ status: 'APPROVED' | 'DECLINED' | 'PENDING' | 'ERROR' | 'CANCELLED';
+
+ /**
+ * Body param
+ */
+ transaction_type:
+ | 'PURCHASE'
+ | 'AUTHORIZATION'
+ | 'CAPTURE'
+ | 'REFUND'
+ | 'REVERSAL'
+ | 'VERIFICATION'
+ | 'CHARGEBACK'
+ | 'FRAUD';
+
+ /**
+ * Body param
+ */
+ type: 'confirm_transaction';
+ }
+
export interface CollectVaultItemOperationRequest {
/**
* Path param
@@ -3233,6 +3335,7 @@ export declare namespace Items {
type CardVaultItemSpec as CardVaultItemSpec,
type CardVaultItemState as CardVaultItemState,
type CollectVaultItemOperationRequest as CollectVaultItemOperationRequest,
+ type ConfirmTransactionVaultItemOperationRequest as ConfirmTransactionVaultItemOperationRequest,
type CredentialAccountVaultItem as CredentialAccountVaultItem,
type CredentialAccountVaultItemRequest as CredentialAccountVaultItemRequest,
type CredentialCollectionAction as CredentialCollectionAction,
diff --git a/src/resources/vaults/vaults.ts b/src/resources/vaults/vaults.ts
index befee853..a72397a2 100644
--- a/src/resources/vaults/vaults.ts
+++ b/src/resources/vaults/vaults.ts
@@ -10,6 +10,7 @@ import {
CardVaultItemSpec,
CardVaultItemState,
CollectVaultItemOperationRequest,
+ ConfirmTransactionVaultItemOperationRequest,
CredentialAccountVaultItem,
CredentialAccountVaultItemRequest,
CredentialCollectionAction,
@@ -270,6 +271,7 @@ export declare namespace Vaults {
type CardVaultItemSpec as CardVaultItemSpec,
type CardVaultItemState as CardVaultItemState,
type CollectVaultItemOperationRequest as CollectVaultItemOperationRequest,
+ type ConfirmTransactionVaultItemOperationRequest as ConfirmTransactionVaultItemOperationRequest,
type CredentialAccountVaultItem as CredentialAccountVaultItem,
type CredentialAccountVaultItemRequest as CredentialAccountVaultItemRequest,
type CredentialCollectionAction as CredentialCollectionAction,
From 7cf9f3def47e2f39f0c7c21d6067882cc0b86201 Mon Sep 17 00:00:00 2001
From: "kernel-internal[bot]"
<260533166+kernel-internal[bot]@users.noreply.github.com>
Date: Mon, 12 Oct 2026 18:30:43 +0000
Subject: [PATCH 2/3] feat: Accept intent creation without a fixed status
Stainless-Generated-From: d54953dbb92408154db619b74c2f47a7b1b9e70d
---
api.md | 1 +
src/resources/vaults/index.ts | 1 +
src/resources/vaults/items.ts | 51 ++++++++++++++++++++++++++++++----
src/resources/vaults/vaults.ts | 2 ++
4 files changed, 49 insertions(+), 6 deletions(-)
diff --git a/api.md b/api.md
index a53eb145..0f9b9939 100644
--- a/api.md
+++ b/api.md
@@ -554,6 +554,7 @@ Types:
- OnePasswordRecoverVaultItemOperationRequest
- OnePasswordRequestAccessVaultItemOperationRequest
- PrepareCheckoutVaultItemOperationRequest
+- RestartVerificationVaultItemOperationRequest
- VaultCardAliases
- VaultCardFillField
- VaultCheckoutContext
diff --git a/src/resources/vaults/index.ts b/src/resources/vaults/index.ts
index aa582417..d5a6e930 100644
--- a/src/resources/vaults/index.ts
+++ b/src/resources/vaults/index.ts
@@ -49,6 +49,7 @@ export {
type OnePasswordRecoverVaultItemOperationRequest,
type OnePasswordRequestAccessVaultItemOperationRequest,
type PrepareCheckoutVaultItemOperationRequest,
+ type RestartVerificationVaultItemOperationRequest,
type VaultCardAliases,
type VaultCardFillField,
type VaultCheckoutContext,
diff --git a/src/resources/vaults/items.ts b/src/resources/vaults/items.ts
index ebf219ba..3509ed99 100644
--- a/src/resources/vaults/items.ts
+++ b/src/resources/vaults/items.ts
@@ -690,6 +690,7 @@ export namespace CredentialAccountVaultItem {
type:
| 'authorize'
+ | 'restart_verification'
| 'confirm_transaction'
| 'collect'
| 'prepare_checkout'
@@ -999,6 +1000,7 @@ export namespace CredentialVaultItem {
type:
| 'authorize'
+ | 'restart_verification'
| 'confirm_transaction'
| 'collect'
| 'prepare_checkout'
@@ -1217,12 +1219,16 @@ export interface KernelCardState {
/**
* pending_authorization on a Visa purchase waits for the cardholder to approve it
* through the spend_approval action; an unused link expires after 30 minutes.
- * recovery_required means approving the purchase or issuing the one-time code has
- * an unresolved outcome. Kernel never approves again or issues another code for
- * the item automatically, and the item cannot be deleted or replaced until the
- * original attempt is reconciled with support. When status_reason says the
- * provider refused retrieval before acceptance, no code was issued and a later
- * read retries. declined means the card network refused to issue a code.
+ * recovery_required means verification, approving the purchase or issuing the
+ * one-time code has an unresolved outcome. A server-classified initial attestation
+ * failure before intent dispatch may advertise restart_verification to prepare a
+ * fresh local verification link; this does not approve spending or replay any
+ * provider request. Unclassified legacy recovery and uncertain intent creation
+ * cannot restart. Kernel never approves again or issues another code for the item
+ * automatically, and the item cannot be deleted or replaced until the original
+ * attempt is reconciled with support. When status_reason says the provider refused
+ * retrieval before acceptance, no code was issued and a later read retries.
+ * declined means the card network refused to issue a code.
*/
status:
| 'requested'
@@ -1898,6 +1904,21 @@ export interface PrepareCheckoutVaultItemOperationRequest {
type: 'prepare_checkout';
}
+/**
+ * Explicitly prepare a fresh local verification session for the same Kernel Visa
+ * purchase and connected wallet, only when restart_verification is advertised.
+ * Kernel must have durable proof of an initial attestation failure before intent
+ * dispatch. Replaces the spend_approval capability and discards session-bound
+ * verification data without calling the provider or granting spend consent. The
+ * cardholder must use the new link, verify again and explicitly approve the
+ * purchase. Unknown intent creation, legacy unclassified recovery, enrollment
+ * completion, issuance and confirmation cannot restart. Do not automatically retry
+ * this operation.
+ */
+export interface RestartVerificationVaultItemOperationRequest {
+ type: 'restart_verification';
+}
+
export interface VaultCardAliases {
cvc: string;
@@ -2110,6 +2131,7 @@ export namespace VaultItem {
type:
| 'authorize'
+ | 'restart_verification'
| 'confirm_transaction'
| 'collect'
| 'prepare_checkout'
@@ -2184,6 +2206,7 @@ export namespace VaultItem {
type:
| 'authorize'
+ | 'restart_verification'
| 'confirm_transaction'
| 'collect'
| 'prepare_checkout'
@@ -2334,6 +2357,7 @@ export namespace VaultItemOperationResponse {
type:
| 'authorize'
+ | 'restart_verification'
| 'confirm_transaction'
| 'collect'
| 'prepare_checkout'
@@ -2408,6 +2432,7 @@ export namespace VaultItemOperationResponse {
type:
| 'authorize'
+ | 'restart_verification'
| 'confirm_transaction'
| 'collect'
| 'prepare_checkout'
@@ -2794,6 +2819,7 @@ export interface ItemEventsParams {
export type ItemPerformOperationParams =
| ItemPerformOperationParams.AuthorizeVaultItemOperationRequest
+ | ItemPerformOperationParams.RestartVerificationVaultItemOperationRequest
| ItemPerformOperationParams.ConfirmTransactionVaultItemOperationRequest
| ItemPerformOperationParams.CollectVaultItemOperationRequest
| ItemPerformOperationParams.PrepareCheckoutVaultItemOperationRequest
@@ -2818,6 +2844,18 @@ export declare namespace ItemPerformOperationParams {
type: 'authorize';
}
+ export interface RestartVerificationVaultItemOperationRequest {
+ /**
+ * Path param
+ */
+ id_or_name: string;
+
+ /**
+ * Body param
+ */
+ type: 'restart_verification';
+ }
+
export interface ConfirmTransactionVaultItemOperationRequest {
/**
* Path param
@@ -3375,6 +3413,7 @@ export declare namespace Items {
type OnePasswordRecoverVaultItemOperationRequest as OnePasswordRecoverVaultItemOperationRequest,
type OnePasswordRequestAccessVaultItemOperationRequest as OnePasswordRequestAccessVaultItemOperationRequest,
type PrepareCheckoutVaultItemOperationRequest as PrepareCheckoutVaultItemOperationRequest,
+ type RestartVerificationVaultItemOperationRequest as RestartVerificationVaultItemOperationRequest,
type VaultCardAliases as VaultCardAliases,
type VaultCardFillField as VaultCardFillField,
type VaultCheckoutContext as VaultCheckoutContext,
diff --git a/src/resources/vaults/vaults.ts b/src/resources/vaults/vaults.ts
index a72397a2..d3ca0ca2 100644
--- a/src/resources/vaults/vaults.ts
+++ b/src/resources/vaults/vaults.ts
@@ -59,6 +59,7 @@ import {
OnePasswordRecoverVaultItemOperationRequest,
OnePasswordRequestAccessVaultItemOperationRequest,
PrepareCheckoutVaultItemOperationRequest,
+ RestartVerificationVaultItemOperationRequest,
VaultCardAliases,
VaultCardFillField,
VaultCheckoutContext,
@@ -311,6 +312,7 @@ export declare namespace Vaults {
type OnePasswordRecoverVaultItemOperationRequest as OnePasswordRecoverVaultItemOperationRequest,
type OnePasswordRequestAccessVaultItemOperationRequest as OnePasswordRequestAccessVaultItemOperationRequest,
type PrepareCheckoutVaultItemOperationRequest as PrepareCheckoutVaultItemOperationRequest,
+ type RestartVerificationVaultItemOperationRequest as RestartVerificationVaultItemOperationRequest,
type VaultCardAliases as VaultCardAliases,
type VaultCardFillField as VaultCardFillField,
type VaultCheckoutContext as VaultCheckoutContext,
From fa52f52f871804af744b25a51ba3841568950b5a Mon Sep 17 00:00:00 2001
From: "kernel-internal[bot]"
<260533166+kernel-internal[bot]@users.noreply.github.com>
Date: Mon, 12 Oct 2026 18:35:43 +0000
Subject: [PATCH 3/3] release: 0.124.0
---
.release-please-manifest.json | 2 +-
CHANGELOG.md | 8 ++++++++
package.json | 2 +-
src/version.ts | 2 +-
4 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/.release-please-manifest.json b/.release-please-manifest.json
index 768a5b8e..af43dc96 100644
--- a/.release-please-manifest.json
+++ b/.release-please-manifest.json
@@ -1,3 +1,3 @@
{
- ".": "0.123.0"
+ ".": "0.124.0"
}
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8734dbdb..2710cd6a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,13 @@
# Changelog
+## [0.124.0](https://github.com/kernel/kernel-node-sdk/compare/v0.123.0...v0.124.0) (2026-10-12)
+
+
+### Features
+
+* Accept intent creation without a fixed status ([7cf9f3d](https://github.com/kernel/kernel-node-sdk/commit/7cf9f3def47e2f39f0c7c21d6067882cc0b86201))
+* Complete Visa vault verification and transaction reporting ([41d139b](https://github.com/kernel/kernel-node-sdk/commit/41d139b651d5231e6e32a0d43f6343a2c5bd34ac))
+
## [0.123.0](https://github.com/kernel/kernel-node-sdk/compare/v0.122.0...v0.123.0) (2026-10-09)
diff --git a/package.json b/package.json
index 12f3695d..30855bd6 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@onkernel/sdk",
- "version": "0.123.0",
+ "version": "0.124.0",
"description": "The official TypeScript library for the Kernel API",
"author": "Kernel <>",
"types": "dist/index.d.ts",
diff --git a/src/version.ts b/src/version.ts
index 197f7f0d..f8a5815b 100644
--- a/src/version.ts
+++ b/src/version.ts
@@ -1 +1 @@
-export const VERSION = '0.123.0'; // x-release-please-version
+export const VERSION = '0.124.0'; // x-release-please-version