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