@reclaimprotocol/client 0.1.27 → 0.1.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +634 -42
- package/lib/api-client.d.ts +31 -0
- package/lib/api-client.js +112 -0
- package/lib/api-consts.d.ts +4 -0
- package/lib/api-consts.js +4 -0
- package/lib/api-errors.d.ts +13 -0
- package/lib/api-errors.js +30 -0
- package/lib/api.d.ts +7 -0
- package/lib/api.js +3 -0
- package/lib/attestor-proof.d.ts +6 -0
- package/lib/attestor-proof.js +45 -18
- package/lib/client.d.ts +1 -6
- package/lib/client.js +12 -33
- package/lib/consts.d.ts +1 -1
- package/lib/consts.js +1 -1
- package/lib/eip191.d.ts +4 -2
- package/lib/eip191.js +17 -1
- package/lib/errors.d.ts +38 -4
- package/lib/errors.js +99 -16
- package/lib/index.d.ts +9 -7
- package/lib/index.js +8 -4
- package/lib/jwks.d.ts +25 -1
- package/lib/jwks.js +69 -4
- package/lib/legacy-proof.d.ts +57 -0
- package/lib/legacy-proof.js +211 -0
- package/lib/proof-hash.d.ts +35 -0
- package/lib/proof-hash.js +216 -0
- package/lib/proof-recipe.d.ts +18 -0
- package/lib/proof-recipe.js +37 -0
- package/lib/proof-trust-constants.d.ts +3 -0
- package/lib/proof-trust-constants.js +43 -0
- package/lib/proof-types.d.ts +62 -0
- package/lib/proof-types.js +1 -0
- package/lib/proof-verification-error.d.ts +13 -0
- package/lib/proof-verification-error.js +11 -0
- package/lib/reclaim.d.ts +27 -5
- package/lib/reclaim.js +140 -14
- package/lib/result.d.ts +58 -6
- package/lib/result.js +252 -61
- package/lib/routes.gen.d.ts +54 -6
- package/lib/routes.gen.js +15 -3
- package/lib/tee-binding.d.ts +82 -0
- package/lib/tee-binding.js +112 -0
- package/lib/types/openapi.gen.d.ts +1343 -206
- package/lib/verification-clients.d.ts +17 -0
- package/lib/verification-clients.js +14 -0
- package/lib/verify-attestor-tee.d.ts +76 -0
- package/lib/verify-attestor-tee.js +243 -0
- package/lib/verify-tee.d.ts +32 -0
- package/lib/verify-tee.js +347 -0
- package/package.json +5 -1
- package/src/api.ts +15 -0
- package/src/attestor-proof.ts +57 -20
- package/src/client.ts +15 -38
- package/src/consts.ts +1 -2
- package/src/eip191.ts +31 -3
- package/src/errors.ts +132 -18
- package/src/index.ts +50 -5
- package/src/jwks.ts +128 -5
- package/src/legacy-proof.ts +367 -0
- package/src/proof-hash.ts +316 -0
- package/src/proof-recipe.ts +75 -0
- package/src/proof-trust-constants.ts +45 -0
- package/src/proof-types.ts +57 -0
- package/src/proof-verification-error.ts +13 -0
- package/src/reclaim.ts +206 -19
- package/src/result.ts +403 -68
- package/src/routes.gen.ts +15 -3
- package/src/tee-binding.ts +192 -0
- package/src/types/openapi.gen.ts +1343 -206
- package/src/verification-clients.ts +22 -0
- package/src/verify-attestor-tee.ts +365 -0
- package/src/verify-tee.ts +507 -0
package/src/types/openapi.gen.ts
CHANGED
|
@@ -628,7 +628,7 @@ export interface paths {
|
|
|
628
628
|
get?: never;
|
|
629
629
|
/**
|
|
630
630
|
* Edit a billing plan's app-only settings (admin-only)
|
|
631
|
-
* @description Admin only. Plans are authored in the Stripe Dashboard (product, price, pricing); this edits only the app-only settings Stripe doesn't own (pool limits, overage,
|
|
631
|
+
* @description Admin only. Plans are authored in the Stripe Dashboard (product, price, pricing); this edits only the app-only settings Stripe doesn't own (pool limits, overage, use allowances, billing timing, presentation, visibility) by writing them to the linked Stripe Product's metadata and re-syncing. Partial update — omitted fields keep their value. `status: ARCHIVED` deactivates the Stripe Product (orgs on it keep their reference); `visibility` toggles public/private.
|
|
632
632
|
*/
|
|
633
633
|
put: operations["UpdateBillingPlan"];
|
|
634
634
|
post?: never;
|
|
@@ -742,7 +742,7 @@ export interface paths {
|
|
|
742
742
|
patch?: never;
|
|
743
743
|
trace?: never;
|
|
744
744
|
};
|
|
745
|
-
"/admin/orgs/{orgId}/billing/
|
|
745
|
+
"/admin/orgs/{orgId}/billing/allowance": {
|
|
746
746
|
parameters: {
|
|
747
747
|
query?: never;
|
|
748
748
|
header?: never;
|
|
@@ -752,10 +752,10 @@ export interface paths {
|
|
|
752
752
|
get?: never;
|
|
753
753
|
put?: never;
|
|
754
754
|
/**
|
|
755
|
-
*
|
|
756
|
-
* @description Admin only. Set the
|
|
755
|
+
* Set an org's payment-failure allowance (admin-only)
|
|
756
|
+
* @description Admin only. Set the absolute number of additional uses available to an overdue org for each usage pool. Values replace the current allowance, so retrying the request is safe. A successful payment clears the allowance.
|
|
757
757
|
*/
|
|
758
|
-
post: operations["
|
|
758
|
+
post: operations["SetOrgPaymentAllowance"];
|
|
759
759
|
delete?: never;
|
|
760
760
|
options?: never;
|
|
761
761
|
head?: never;
|
|
@@ -773,7 +773,7 @@ export interface paths {
|
|
|
773
773
|
put?: never;
|
|
774
774
|
/**
|
|
775
775
|
* Grant prepaid credits to an org (admin-only)
|
|
776
|
-
* @description Admin only. Add credit to an org's wallet. PROMOTIONAL is goodwill (no payment, no invoice); PURCHASE records money paid out of band (wire, crypto) and raises a real Stripe invoice the customer can download; ADJUSTMENT is a correction, for example, writing off overage consumed
|
|
776
|
+
* @description Admin only. Add credit to an org's wallet. PROMOTIONAL is goodwill (no payment, no invoice); PURCHASE records money paid out of band (wire, crypto) and raises a real Stripe invoice the customer can download; ADJUSTMENT is a correction, for example, writing off overage consumed while a use allowance was active.
|
|
777
777
|
*/
|
|
778
778
|
post: operations["AdminGrantOrgCredit"];
|
|
779
779
|
delete?: never;
|
|
@@ -802,7 +802,7 @@ export interface paths {
|
|
|
802
802
|
patch?: never;
|
|
803
803
|
trace?: never;
|
|
804
804
|
};
|
|
805
|
-
"/admin/orgs/{orgId}/credits/
|
|
805
|
+
"/admin/orgs/{orgId}/credits/allowance": {
|
|
806
806
|
parameters: {
|
|
807
807
|
query?: never;
|
|
808
808
|
header?: never;
|
|
@@ -812,10 +812,10 @@ export interface paths {
|
|
|
812
812
|
get?: never;
|
|
813
813
|
put?: never;
|
|
814
814
|
/**
|
|
815
|
-
*
|
|
816
|
-
* @description Admin only. Set the
|
|
815
|
+
* Set an org's credit-exhaustion allowance (admin-only)
|
|
816
|
+
* @description Admin only. Set the absolute number of additional overage uses available after prepaid credits are exhausted, for each usage pool. Values replace the current allowance, so retrying the request is safe. The plan's included allowance keeps working, and a top-up clears this allowance.
|
|
817
817
|
*/
|
|
818
|
-
post: operations["
|
|
818
|
+
post: operations["SetOrgCreditAllowance"];
|
|
819
819
|
delete?: never;
|
|
820
820
|
options?: never;
|
|
821
821
|
head?: never;
|
|
@@ -881,7 +881,7 @@ export interface paths {
|
|
|
881
881
|
put?: never;
|
|
882
882
|
/**
|
|
883
883
|
* Register a verification client (admin-only)
|
|
884
|
-
* @description Admin only. Registers a client
|
|
884
|
+
* @description Admin only. Registers a Verification Client. The returned client UUID is the Builder-mode identity sent as `x-reclaim-vc-id` and is bound to sessions selected by this client's URL. Token fields in this response are retained only for legacy-client compatibility and are not used by Builder mode.
|
|
885
885
|
*/
|
|
886
886
|
post: operations["CreateVerificationClient"];
|
|
887
887
|
delete?: never;
|
|
@@ -900,8 +900,8 @@ export interface paths {
|
|
|
900
900
|
get?: never;
|
|
901
901
|
put?: never;
|
|
902
902
|
/**
|
|
903
|
-
* Issue
|
|
904
|
-
* @description
|
|
903
|
+
* Issue a legacy verification-client token (admin)
|
|
904
|
+
* @description Legacy compatibility endpoint. Builder-mode clients use the registered UUID in `x-reclaim-vc-id` and do not need this token. Existing legacy clients may continue to rotate their credentials without affecting Builder-mode sessions.
|
|
905
905
|
*/
|
|
906
906
|
post: operations["IssueVerificationClientToken"];
|
|
907
907
|
delete?: never;
|
|
@@ -921,8 +921,8 @@ export interface paths {
|
|
|
921
921
|
put?: never;
|
|
922
922
|
post?: never;
|
|
923
923
|
/**
|
|
924
|
-
* Revoke one verification-client token (admin-only)
|
|
925
|
-
* @description
|
|
924
|
+
* Revoke one legacy verification-client token (admin-only)
|
|
925
|
+
* @description Legacy compatibility endpoint. Revokes one legacy token; this does not change the registered client's Builder-mode UUID or any session bound to that UUID.
|
|
926
926
|
*/
|
|
927
927
|
delete: operations["RevokeVerificationClientToken"];
|
|
928
928
|
options?: never;
|
|
@@ -940,7 +940,7 @@ export interface paths {
|
|
|
940
940
|
get?: never;
|
|
941
941
|
/**
|
|
942
942
|
* Update a verification client (admin-only)
|
|
943
|
-
* @description Admin only. Updates the client's quota pool, base URL
|
|
943
|
+
* @description Admin only. Updates the client's quota pool, claimant-facing base URL, exact trusted JWS `issuer`, or registered `jwksUri`. The issuer and JWKS URL are separate from the claimant URL. Consumers must use the registered issuer and JWKS URL, never values supplied in a result. Omitted fields keep their current values.
|
|
944
944
|
*/
|
|
945
945
|
put: operations["UpdateVerificationClient"];
|
|
946
946
|
post?: never;
|
|
@@ -1078,7 +1078,7 @@ export interface paths {
|
|
|
1078
1078
|
put?: never;
|
|
1079
1079
|
/**
|
|
1080
1080
|
* Report the claimant's client id
|
|
1081
|
-
* @description The verification page posts
|
|
1081
|
+
* @description The verification page posts its browser-generated claimant id and a bounded browser/device snapshot. The id is persisted in localStorage so the session can track the same claimant across verifications.
|
|
1082
1082
|
*/
|
|
1083
1083
|
post: operations["ReportClaimant"];
|
|
1084
1084
|
delete?: never;
|
|
@@ -1200,7 +1200,7 @@ export interface paths {
|
|
|
1200
1200
|
};
|
|
1201
1201
|
/**
|
|
1202
1202
|
* JWKS for verifying signed verification results
|
|
1203
|
-
* @description JSON Web Key Set (RFC 7517) exposing the public keys that sign verification result JWS payloads (ES256K / secp256k1). Consumers fetch this to verify a delivered result. `kid` is the signer's ETH address. Aggregates the in-process Verification Client signing key (`VC_SIGNING_PRIVATE_KEY`) with every registered verification client's active signing keys, so results signed by the builder or by any registered client verify against this one endpoint.
|
|
1203
|
+
* @description JSON Web Key Set (RFC 7517) exposing the public keys that sign verification result JWS payloads (ES256K / secp256k1). Consumers fetch this to verify a delivered result. `kid` is the signer's ETH address. Result keys carry a namespaced purpose and Verification Client owner. The top-level `x-reclaim-attestors` extension lists trusted EIP-191 attestor signer addresses; an address is a public-key hash, not a JWK. Aggregates the in-process Verification Client signing key (`VC_SIGNING_PRIVATE_KEY`) with every registered verification client's active signing keys, so results signed by the builder or by any registered client verify against this one endpoint.
|
|
1204
1204
|
*/
|
|
1205
1205
|
get: operations["JwksJson"];
|
|
1206
1206
|
put?: never;
|
|
@@ -1833,7 +1833,7 @@ export interface paths {
|
|
|
1833
1833
|
};
|
|
1834
1834
|
/**
|
|
1835
1835
|
* Prepaid credit balance for an organization
|
|
1836
|
-
* @description Owner only. The org's prepaid credit wallet, which funds usage beyond the plan allowance: what is left to spend, and
|
|
1836
|
+
* @description Owner only. The org's prepaid credit wallet, which funds usage beyond the plan allowance: what is left to spend, and each pool's remaining credit-exhaustion allowance. Always returns a body — an org that never topped up reads as zero.
|
|
1837
1837
|
*/
|
|
1838
1838
|
get: operations["GetOrgCredits"];
|
|
1839
1839
|
put?: never;
|
|
@@ -1984,6 +1984,138 @@ export interface paths {
|
|
|
1984
1984
|
patch?: never;
|
|
1985
1985
|
trace?: never;
|
|
1986
1986
|
};
|
|
1987
|
+
"/contribute/{publicId}": {
|
|
1988
|
+
parameters: {
|
|
1989
|
+
query?: never;
|
|
1990
|
+
header?: never;
|
|
1991
|
+
path?: never;
|
|
1992
|
+
cookie?: never;
|
|
1993
|
+
};
|
|
1994
|
+
/**
|
|
1995
|
+
* View a public contribution campaign
|
|
1996
|
+
* @description Render the volunteer brief for an open public contribution campaign. The response includes the exact approved requirements, consent copy, and fixed US routing policy. It never includes provider recipes, browser credentials, or prior volunteer values.
|
|
1997
|
+
*/
|
|
1998
|
+
get: operations["GetPublicContributionCampaign"];
|
|
1999
|
+
put?: never;
|
|
2000
|
+
/**
|
|
2001
|
+
* Start a public contribution attempt
|
|
2002
|
+
* @description Start one field-scoped volunteer attempt after the volunteer accepts the campaign consent. HTML callers are redirected to the contribution resume page; JSON callers receive the sanitized attempt handle. The service pins the attempt to the campaign's US proxy policy.
|
|
2003
|
+
*/
|
|
2004
|
+
post: operations["CreatePublicContributionAttempt"];
|
|
2005
|
+
delete?: never;
|
|
2006
|
+
options?: never;
|
|
2007
|
+
head?: never;
|
|
2008
|
+
patch?: never;
|
|
2009
|
+
trace?: never;
|
|
2010
|
+
};
|
|
2011
|
+
"/contribute/{publicId}/feedback": {
|
|
2012
|
+
parameters: {
|
|
2013
|
+
query?: never;
|
|
2014
|
+
header?: never;
|
|
2015
|
+
path?: never;
|
|
2016
|
+
cookie?: never;
|
|
2017
|
+
};
|
|
2018
|
+
get?: never;
|
|
2019
|
+
put?: never;
|
|
2020
|
+
/**
|
|
2021
|
+
* Submit scoped volunteer feedback
|
|
2022
|
+
* @description Submit bounded feedback using the attempt capability. The capability is scoped to one campaign and attempt and cannot read account data or change a provider. Feedback is sanitized before it is added to the maintainer review queue.
|
|
2023
|
+
*/
|
|
2024
|
+
post: operations["SubmitPublicContributionFeedback"];
|
|
2025
|
+
delete?: never;
|
|
2026
|
+
options?: never;
|
|
2027
|
+
head?: never;
|
|
2028
|
+
patch?: never;
|
|
2029
|
+
trace?: never;
|
|
2030
|
+
};
|
|
2031
|
+
"/providers/{providerId}/contributions": {
|
|
2032
|
+
parameters: {
|
|
2033
|
+
query?: never;
|
|
2034
|
+
header?: never;
|
|
2035
|
+
path?: never;
|
|
2036
|
+
cookie?: never;
|
|
2037
|
+
};
|
|
2038
|
+
/**
|
|
2039
|
+
* Review provider contributions
|
|
2040
|
+
* @description Show contribution campaigns, attempts, version history, comments, and bounded event summaries for a provider. The caller must be an active member of the provider's organization. Raw volunteer values are never returned.
|
|
2041
|
+
*/
|
|
2042
|
+
get: operations["ListProviderContributionCampaigns"];
|
|
2043
|
+
put?: never;
|
|
2044
|
+
/**
|
|
2045
|
+
* Create a provider contribution campaign
|
|
2046
|
+
* @description Create a draft public-contribution campaign. A campaign stays private until its requirements are versioned and a maintainer opens it.
|
|
2047
|
+
*/
|
|
2048
|
+
post: operations["CreateProviderContributionCampaign"];
|
|
2049
|
+
delete?: never;
|
|
2050
|
+
options?: never;
|
|
2051
|
+
head?: never;
|
|
2052
|
+
patch?: never;
|
|
2053
|
+
trace?: never;
|
|
2054
|
+
};
|
|
2055
|
+
"/providers/{providerId}/contributions/{campaignId}": {
|
|
2056
|
+
parameters: {
|
|
2057
|
+
query?: never;
|
|
2058
|
+
header?: never;
|
|
2059
|
+
path?: never;
|
|
2060
|
+
cookie?: never;
|
|
2061
|
+
};
|
|
2062
|
+
get?: never;
|
|
2063
|
+
put?: never;
|
|
2064
|
+
/**
|
|
2065
|
+
* Change contribution campaign status
|
|
2066
|
+
* @description Apply a legal campaign transition. Opening requires a public provider and a current immutable requirement revision.
|
|
2067
|
+
*/
|
|
2068
|
+
post: operations["SetProviderContributionCampaignStatus"];
|
|
2069
|
+
delete?: never;
|
|
2070
|
+
options?: never;
|
|
2071
|
+
head?: never;
|
|
2072
|
+
/**
|
|
2073
|
+
* Update a contribution campaign
|
|
2074
|
+
* @description Update an editable draft or paused campaign.
|
|
2075
|
+
*/
|
|
2076
|
+
patch: operations["UpdateProviderContributionCampaign"];
|
|
2077
|
+
trace?: never;
|
|
2078
|
+
};
|
|
2079
|
+
"/providers/{providerId}/contributions/{campaignId}/requirements": {
|
|
2080
|
+
parameters: {
|
|
2081
|
+
query?: never;
|
|
2082
|
+
header?: never;
|
|
2083
|
+
path?: never;
|
|
2084
|
+
cookie?: never;
|
|
2085
|
+
};
|
|
2086
|
+
get?: never;
|
|
2087
|
+
put?: never;
|
|
2088
|
+
/**
|
|
2089
|
+
* Add a contribution requirement revision
|
|
2090
|
+
* @description Append a new immutable requirement revision to a draft or paused campaign. Requirement keys are the only fields volunteers may prove.
|
|
2091
|
+
*/
|
|
2092
|
+
post: operations["CreateProviderContributionRequirementRevision"];
|
|
2093
|
+
delete?: never;
|
|
2094
|
+
options?: never;
|
|
2095
|
+
head?: never;
|
|
2096
|
+
patch?: never;
|
|
2097
|
+
trace?: never;
|
|
2098
|
+
};
|
|
2099
|
+
"/providers/{providerId}/contributions/{campaignId}/comments": {
|
|
2100
|
+
parameters: {
|
|
2101
|
+
query?: never;
|
|
2102
|
+
header?: never;
|
|
2103
|
+
path?: never;
|
|
2104
|
+
cookie?: never;
|
|
2105
|
+
};
|
|
2106
|
+
get?: never;
|
|
2107
|
+
put?: never;
|
|
2108
|
+
/**
|
|
2109
|
+
* Add a contribution review comment
|
|
2110
|
+
* @description Add an append-only maintainer comment to the review history.
|
|
2111
|
+
*/
|
|
2112
|
+
post: operations["AddProviderContributionComment"];
|
|
2113
|
+
delete?: never;
|
|
2114
|
+
options?: never;
|
|
2115
|
+
head?: never;
|
|
2116
|
+
patch?: never;
|
|
2117
|
+
trace?: never;
|
|
2118
|
+
};
|
|
1987
2119
|
"/providers/{providerId}": {
|
|
1988
2120
|
parameters: {
|
|
1989
2121
|
query?: never;
|
|
@@ -2075,7 +2207,11 @@ export interface paths {
|
|
|
2075
2207
|
put?: never;
|
|
2076
2208
|
/**
|
|
2077
2209
|
* Create a new provider version
|
|
2078
|
-
* @description Creates a new version of the provider.
|
|
2210
|
+
* @description Creates a new immutable semantic version of the provider. Provider
|
|
2211
|
+
* authoring clients must create another version for every content change;
|
|
2212
|
+
* they must not edit a previously created version in place. Use a patch
|
|
2213
|
+
* bump by default, or use a major/minor bump or exact higher version when
|
|
2214
|
+
* the user directs it. The starting branch
|
|
2079
2215
|
* depends on the provider's `visibility` and the caller's role:
|
|
2080
2216
|
*
|
|
2081
2217
|
* - `PRIVATE` provider (any caller): the live channel (no review).
|
|
@@ -2309,7 +2445,7 @@ export interface paths {
|
|
|
2309
2445
|
put?: never;
|
|
2310
2446
|
/**
|
|
2311
2447
|
* Register a callback subscription on an organization
|
|
2312
|
-
* @description Registers a destination for verification results on the organization. Caller must be an active member of the org. The body is just `callbackUrl` and `events`; delivery is scoped to the org and encrypted as
|
|
2448
|
+
* @description Registers a destination for verification results on the organization. Caller must be an active member of the org. The body is just `callbackUrl` and `events`; delivery is scoped to the org and encrypted as an ECIES ciphertext (base64url) to the org's encryption credential when set, else delivered as plaintext.
|
|
2313
2449
|
*/
|
|
2314
2450
|
post: operations["CreateOrgCallbackSubscription"];
|
|
2315
2451
|
delete?: never;
|
|
@@ -2380,6 +2516,26 @@ export interface paths {
|
|
|
2380
2516
|
patch?: never;
|
|
2381
2517
|
trace?: never;
|
|
2382
2518
|
};
|
|
2519
|
+
"/orgs/{orgId}/verification-funnel": {
|
|
2520
|
+
parameters: {
|
|
2521
|
+
query?: never;
|
|
2522
|
+
header?: never;
|
|
2523
|
+
path?: never;
|
|
2524
|
+
cookie?: never;
|
|
2525
|
+
};
|
|
2526
|
+
/**
|
|
2527
|
+
* Get the verification funnel
|
|
2528
|
+
* @description Returns observed lifecycle-milestone counts for sessions created in the half-open interval [createdAfter, createdBefore). SESSION mode counts a session once. PROVIDER mode counts each session-provider execution. Optional interaction milestones can be absent because of telemetry loss, so do not treat every missing optional event as claimant drop-off.
|
|
2529
|
+
*/
|
|
2530
|
+
get: operations["GetVerificationFunnel"];
|
|
2531
|
+
put?: never;
|
|
2532
|
+
post?: never;
|
|
2533
|
+
delete?: never;
|
|
2534
|
+
options?: never;
|
|
2535
|
+
head?: never;
|
|
2536
|
+
patch?: never;
|
|
2537
|
+
trace?: never;
|
|
2538
|
+
};
|
|
2383
2539
|
"/verifications/sessions": {
|
|
2384
2540
|
parameters: {
|
|
2385
2541
|
query?: never;
|
|
@@ -2400,11 +2556,14 @@ export interface paths {
|
|
|
2400
2556
|
* curl -X POST $BASE/verifications/sessions \
|
|
2401
2557
|
* -H "Authorization: Bearer $ORG_TOKEN" \
|
|
2402
2558
|
* -H 'Content-Type: application/json' \
|
|
2403
|
-
* -d '{"providerId":"…","context":{},
|
|
2404
|
-
* "verificationClientUrl":"
|
|
2559
|
+
* -d '{"providers":[{"providerId":"…","version":"^1.2.0"}],"context":{},
|
|
2560
|
+
* "verificationClientUrl":"https://verify.example.com/"}'
|
|
2405
2561
|
*
|
|
2406
2562
|
* Fails with `409 Conflict` if the organization has no callback
|
|
2407
2563
|
* subscription (there would be nowhere to deliver the result).
|
|
2564
|
+
* A quota or credit refusal returns `402` or `429` with
|
|
2565
|
+
* `event: billing_required` and `sessionId`; Builder has atomically
|
|
2566
|
+
* recorded that minimal terminal session and its analytics event.
|
|
2408
2567
|
*/
|
|
2409
2568
|
post: operations["CreateVerificationSession"];
|
|
2410
2569
|
delete?: never;
|
|
@@ -2423,7 +2582,8 @@ export interface paths {
|
|
|
2423
2582
|
/**
|
|
2424
2583
|
* Get a verification session
|
|
2425
2584
|
* @description Returns the session. Authenticated by the consumer's `OrgToken` (or the
|
|
2426
|
-
*
|
|
2585
|
+
* session-bound Verification Client id); the resolved org must match the
|
|
2586
|
+
* session's.
|
|
2427
2587
|
*
|
|
2428
2588
|
* Reading `status`:
|
|
2429
2589
|
* - `pending` — created, not yet finished; the end-user can still
|
|
@@ -2460,7 +2620,7 @@ export interface paths {
|
|
|
2460
2620
|
};
|
|
2461
2621
|
/**
|
|
2462
2622
|
* Get the resolved provider recipes for a session
|
|
2463
|
-
* @description Returns the session's resolved provider versions' recipes (`initialUrl` + `requests` per provider), in run order — what the Verification Client needs to run the session (each provider sequentially in one browser session). Authorized for the Verification Client (`
|
|
2623
|
+
* @description Returns the session's resolved provider versions' recipes (`initialUrl` + `requests` per provider), in run order — what the Verification Client needs to run the session (each provider sequentially in one browser session). Authorized for the Verification Client (`x-reclaim-vc-id`) or the session creator (authenticated by the consumer's `OrgToken`; the resolved org must match the session), so it works regardless of the provider's visibility (unlike `GetProvider`, which 404s on PRIVATE providers for non-members).
|
|
2464
2624
|
*/
|
|
2465
2625
|
get: operations["GetVerificationRecipe"];
|
|
2466
2626
|
put?: never;
|
|
@@ -2471,6 +2631,41 @@ export interface paths {
|
|
|
2471
2631
|
patch?: never;
|
|
2472
2632
|
trace?: never;
|
|
2473
2633
|
};
|
|
2634
|
+
"/verifications/sessions/{sessionId}/tee-nonce": {
|
|
2635
|
+
parameters: {
|
|
2636
|
+
query?: never;
|
|
2637
|
+
header?: never;
|
|
2638
|
+
path?: never;
|
|
2639
|
+
cookie?: never;
|
|
2640
|
+
};
|
|
2641
|
+
get?: never;
|
|
2642
|
+
/**
|
|
2643
|
+
* Bind a legacy-compatible TEE nonce to a verification session
|
|
2644
|
+
* @description Registers the legacy-compatible TEE nonce after a session is created.
|
|
2645
|
+
* Authenticate with the owning organization's `OrgToken`. The request is
|
|
2646
|
+
* additionally authenticated by an EIP-191 `personal_sign` signature
|
|
2647
|
+
* produced by the organization verification key over this exact UTF-8
|
|
2648
|
+
* message (with no newline):
|
|
2649
|
+
*
|
|
2650
|
+
* `RECLAIM_BUILDER_TEE_BINDING_V1:{organizationId}:{sessionId}:{applicationId}:{timestamp}:{attestationVersion}:{attestationNonce}`
|
|
2651
|
+
*
|
|
2652
|
+
* `applicationId` must be the Ethereum address of the registered
|
|
2653
|
+
* organization verification key (case-insensitive comparison; its exact
|
|
2654
|
+
* request spelling is preserved because it is part of the legacy nonce).
|
|
2655
|
+
* `attestationNonce` and `attestationNonceData` are subsequently exposed
|
|
2656
|
+
* in the session's `context`, so a Verification Client can forward them
|
|
2657
|
+
* unchanged to the legacy attestor. Repeating the exact binding succeeds;
|
|
2658
|
+
* a conflicting binding, terminal session, or a session that has started
|
|
2659
|
+
* proof generation returns `409 Conflict`.
|
|
2660
|
+
*/
|
|
2661
|
+
put: operations["BindVerificationSessionTeeNonce"];
|
|
2662
|
+
post?: never;
|
|
2663
|
+
delete?: never;
|
|
2664
|
+
options?: never;
|
|
2665
|
+
head?: never;
|
|
2666
|
+
patch?: never;
|
|
2667
|
+
trace?: never;
|
|
2668
|
+
};
|
|
2474
2669
|
"/verifications/sessions/{sessionId}/events": {
|
|
2475
2670
|
parameters: {
|
|
2476
2671
|
query?: never;
|
|
@@ -2481,7 +2676,7 @@ export interface paths {
|
|
|
2481
2676
|
/**
|
|
2482
2677
|
* Get the event log for a session
|
|
2483
2678
|
* @description Returns the append-only event log. Readable by the Verification Client
|
|
2484
|
-
* (`
|
|
2679
|
+
* (`x-reclaim-vc-id`) or the session creator (authenticated by the consumer's
|
|
2485
2680
|
* `OrgToken`; the resolved org must match the session).
|
|
2486
2681
|
*
|
|
2487
2682
|
* This log is the primary tool for diagnosing a stuck or failed session.
|
|
@@ -2504,7 +2699,7 @@ export interface paths {
|
|
|
2504
2699
|
* Failure detail lives in `eventData` on `request_claim_failed`,
|
|
2505
2700
|
* `request_claim_rejected`, `verification_error`, and
|
|
2506
2701
|
* `verification_rejected` — inspect it for the reason. Request-level
|
|
2507
|
-
* events also carry a `
|
|
2702
|
+
* events also carry a `requestId` in `eventData`. Pair with
|
|
2508
2703
|
* `get_verification_session` (status/expiry) and
|
|
2509
2704
|
* `list_verification_deliveries` (callback health) for the full picture.
|
|
2510
2705
|
*/
|
|
@@ -2512,7 +2707,7 @@ export interface paths {
|
|
|
2512
2707
|
put?: never;
|
|
2513
2708
|
/**
|
|
2514
2709
|
* Report a verification status event
|
|
2515
|
-
* @description Used by the Verification Client
|
|
2710
|
+
* @description Used by the session's Verification Client, identified by the `x-reclaim-vc-id` header, to report status pings (opened, ready, per-request progress, and terminal events). Never carries the proof — the signed result is submitted via the result endpoint.
|
|
2516
2711
|
*/
|
|
2517
2712
|
post: operations["ReportVerificationEvent"];
|
|
2518
2713
|
delete?: never;
|
|
@@ -2521,6 +2716,26 @@ export interface paths {
|
|
|
2521
2716
|
patch?: never;
|
|
2522
2717
|
trace?: never;
|
|
2523
2718
|
};
|
|
2719
|
+
"/verifications/sessions/{sessionId}/claimant": {
|
|
2720
|
+
parameters: {
|
|
2721
|
+
query?: never;
|
|
2722
|
+
header?: never;
|
|
2723
|
+
path?: never;
|
|
2724
|
+
cookie?: never;
|
|
2725
|
+
};
|
|
2726
|
+
get?: never;
|
|
2727
|
+
put?: never;
|
|
2728
|
+
post?: never;
|
|
2729
|
+
delete?: never;
|
|
2730
|
+
options?: never;
|
|
2731
|
+
head?: never;
|
|
2732
|
+
/**
|
|
2733
|
+
* Update claimant details
|
|
2734
|
+
* @description Updates the session's latest diagnostic claimant and device snapshot. The Builder captures the request's Reclaim client headers, HTTP user agent, and peer IP separately from client-reported values. These details never affect proof validity. The x-reclaim-vc-id must match the registered Verification Client selected at session creation.
|
|
2735
|
+
*/
|
|
2736
|
+
patch: operations["PatchVerificationClaimant"];
|
|
2737
|
+
trace?: never;
|
|
2738
|
+
};
|
|
2524
2739
|
"/verifications/sessions/{sessionId}/deliveries": {
|
|
2525
2740
|
parameters: {
|
|
2526
2741
|
query?: never;
|
|
@@ -2536,7 +2751,7 @@ export interface paths {
|
|
|
2536
2751
|
* (or the agent) answer "did my callback arrive, and if not, why?"
|
|
2537
2752
|
* without org-dashboard access. Only meaningful after the session
|
|
2538
2753
|
* reaches a terminal status (no deliveries exist before then). Auth
|
|
2539
|
-
* mirrors the events GET: the Verification Client
|
|
2754
|
+
* mirrors the events GET: the session-bound Verification Client id, or the
|
|
2540
2755
|
* consumer's `OrgToken` (the resolved org must match the session).
|
|
2541
2756
|
*
|
|
2542
2757
|
* Reading `deliveryStatus` per entry:
|
|
@@ -2569,7 +2784,7 @@ export interface paths {
|
|
|
2569
2784
|
};
|
|
2570
2785
|
/**
|
|
2571
2786
|
* List callback encryption keys for a session
|
|
2572
|
-
* @description Used by the Verification Client (
|
|
2787
|
+
* @description Used by the Verification Client (x-reclaim-vc-id) after the terminal event: returns the session org's callback subscriptions that subscribe to that terminal event. Each item carries the org's `publicKeyJwk` (secp256k1) to ECIES-encrypt the result to when the org's `canEncryptResult` is enabled, or none (deliver plaintext).
|
|
2573
2788
|
*/
|
|
2574
2789
|
get: operations["ListSessionCallbackKeys"];
|
|
2575
2790
|
put?: never;
|
|
@@ -2589,13 +2804,13 @@ export interface paths {
|
|
|
2589
2804
|
};
|
|
2590
2805
|
/**
|
|
2591
2806
|
* Get the stored encrypted result(s) for a session
|
|
2592
|
-
* @description Returns the stored result payload(s) the Verification Client stored for this session — one item per callback subscription. Readable by the Verification Client (
|
|
2807
|
+
* @description Returns the stored result payload(s) the Verification Client stored for this session — one item per callback subscription. Readable by the Verification Client (x-reclaim-vc-id) or the consumer who created the session (authenticated by the consumer's `OrgToken`; the resolved org must match). A pull-based companion to the push delivery: when the org has an encryption credential the Builder relays an ECIES ciphertext (base64url) that the holder of the matching private key decrypts client-side, else plaintext. Empty `items` until the session reaches a terminal state and a result has been submitted. Treat every returned payload as untrusted until `verifyResultFull` succeeds with the session's registered issuer and JWKS URL.
|
|
2593
2808
|
*/
|
|
2594
2809
|
get: operations["GetVerificationResult"];
|
|
2595
2810
|
put?: never;
|
|
2596
2811
|
/**
|
|
2597
2812
|
* Submit the signed, encrypted verification result
|
|
2598
|
-
* @description Used by the Verification Client (
|
|
2813
|
+
* @description Used by the Verification Client (x-reclaim-vc-id) to submit the result after a terminal event. The VC signs the JWS and, when the org's `canEncryptResult` is enabled, ECIES-encrypts it to the org's eth public key (from the callback-keys endpoint); it submits one payload per subscription. The Builder stores each payload, enqueues it for the delivery worker (retry → DLQ), and never sees the plaintext. The Verification Client does not contact the Consumer.
|
|
2599
2814
|
*/
|
|
2600
2815
|
post: operations["SubmitVerificationResult"];
|
|
2601
2816
|
delete?: never;
|
|
@@ -2790,11 +3005,8 @@ export interface components {
|
|
|
2790
3005
|
* @description Stable id for a callback subscription.
|
|
2791
3006
|
*/
|
|
2792
3007
|
SubscriptionID: string;
|
|
2793
|
-
/** @description
|
|
2794
|
-
ReportClaimantRequest:
|
|
2795
|
-
/** Format: uuid */
|
|
2796
|
-
claimantClientId: string;
|
|
2797
|
-
};
|
|
3008
|
+
/** @description Browser claimant snapshot produced by the built-in Verification Client. */
|
|
3009
|
+
ReportClaimantRequest: components["schemas"]["ClaimantDetails"];
|
|
2798
3010
|
/**
|
|
2799
3011
|
* @description Live-derived operating mode of an organization.
|
|
2800
3012
|
*
|
|
@@ -2837,6 +3049,10 @@ export interface components {
|
|
|
2837
3049
|
* @description URI reference identifying this specific occurrence (often the request id or a log link). Useful for cross-referencing with server logs.
|
|
2838
3050
|
*/
|
|
2839
3051
|
instance?: string;
|
|
3052
|
+
/** @description Optional machine-readable lifecycle event for this problem. */
|
|
3053
|
+
event?: string;
|
|
3054
|
+
/** @description Minimal terminal session recorded for a post-validation billing or quota refusal. Present with `event: billing_required`. */
|
|
3055
|
+
sessionId?: components["schemas"]["SessionID"];
|
|
2840
3056
|
};
|
|
2841
3057
|
/**
|
|
2842
3058
|
* @description The visibility of the entity.
|
|
@@ -2970,8 +3186,10 @@ export interface components {
|
|
|
2970
3186
|
*/
|
|
2971
3187
|
status: components["schemas"]["EntityStatus"];
|
|
2972
3188
|
};
|
|
2973
|
-
/** @description A single piece of consent copy.
|
|
2974
|
-
ConsentText: string
|
|
3189
|
+
/** @description A single piece of consent copy. Use a string for one language, or a locale map compatible with Verification Clients' `TextByLocale`. Locale lookup tries an exact locale, its base language, `en`, then the first entry. */
|
|
3190
|
+
ConsentText: string | {
|
|
3191
|
+
[key: string]: string;
|
|
3192
|
+
};
|
|
2975
3193
|
/** @description A full-screen consent prompt shown once, before the end-user is navigated to the provider's site — mirrors reclaim-portal's `ConsentInfo`. Absent on the owning `Theme` ⇒ no consent screen is shown for that org's sessions. */
|
|
2976
3194
|
ConsentInfo: {
|
|
2977
3195
|
title?: components["schemas"]["ConsentText"];
|
|
@@ -2980,6 +3198,190 @@ export interface components {
|
|
|
2980
3198
|
disclaimer?: components["schemas"]["ConsentText"];
|
|
2981
3199
|
continueButtonLabel?: components["schemas"]["ConsentText"];
|
|
2982
3200
|
};
|
|
3201
|
+
ThemeImageAlignment: {
|
|
3202
|
+
/** @default 0 */
|
|
3203
|
+
x: number;
|
|
3204
|
+
/** @default 0 */
|
|
3205
|
+
y: number;
|
|
3206
|
+
};
|
|
3207
|
+
ThemeImageOptions: {
|
|
3208
|
+
alignment?: components["schemas"]["ThemeImageAlignment"];
|
|
3209
|
+
/** Format: int64 */
|
|
3210
|
+
backgroundColor?: number;
|
|
3211
|
+
/** @default 1 */
|
|
3212
|
+
opacity: number;
|
|
3213
|
+
/**
|
|
3214
|
+
* @default cover
|
|
3215
|
+
* @enum {string}
|
|
3216
|
+
*/
|
|
3217
|
+
fit: "cover" | "scale_down";
|
|
3218
|
+
/**
|
|
3219
|
+
* @deprecated
|
|
3220
|
+
* @description Deprecated legacy client field retained for theme compatibility.
|
|
3221
|
+
* @default false
|
|
3222
|
+
*/
|
|
3223
|
+
spin: boolean;
|
|
3224
|
+
};
|
|
3225
|
+
ThemeImage: {
|
|
3226
|
+
/** Format: uri */
|
|
3227
|
+
url?: string;
|
|
3228
|
+
options?: components["schemas"]["ThemeImageOptions"];
|
|
3229
|
+
};
|
|
3230
|
+
ThemeColorOrImage: {
|
|
3231
|
+
/** Format: int64 */
|
|
3232
|
+
color?: number;
|
|
3233
|
+
image?: components["schemas"]["ThemeImage"];
|
|
3234
|
+
};
|
|
3235
|
+
ThemeBorder: {
|
|
3236
|
+
/** Format: int64 */
|
|
3237
|
+
color?: number;
|
|
3238
|
+
width?: number;
|
|
3239
|
+
radius?: number;
|
|
3240
|
+
};
|
|
3241
|
+
ThemeButton: {
|
|
3242
|
+
/** @enum {string} */
|
|
3243
|
+
style: "filled" | "outlined";
|
|
3244
|
+
border?: components["schemas"]["ThemeBorder"];
|
|
3245
|
+
/** Format: int64 */
|
|
3246
|
+
backgroundColor?: number;
|
|
3247
|
+
/** Format: int64 */
|
|
3248
|
+
foregroundColor?: number;
|
|
3249
|
+
};
|
|
3250
|
+
ThemeParameterStyle: {
|
|
3251
|
+
/** @enum {string} */
|
|
3252
|
+
displayStyle?: "compact" | "dividerSeparated";
|
|
3253
|
+
/** Format: int64 */
|
|
3254
|
+
dividerColor?: number;
|
|
3255
|
+
borderStyle?: components["schemas"]["ThemeBorder"];
|
|
3256
|
+
/** @default true */
|
|
3257
|
+
isValueShown: boolean;
|
|
3258
|
+
};
|
|
3259
|
+
ThemeColorScheme: {
|
|
3260
|
+
/** Format: int64 */
|
|
3261
|
+
themeColor?: number;
|
|
3262
|
+
/** Format: int64 */
|
|
3263
|
+
surfaceColor?: number;
|
|
3264
|
+
/** Format: int64 */
|
|
3265
|
+
onSurfaceColor?: number;
|
|
3266
|
+
};
|
|
3267
|
+
VerificationReviewScreenTheme: {
|
|
3268
|
+
fieldVerifyingIcon?: components["schemas"]["ThemeImage"];
|
|
3269
|
+
fieldVerifiedIcon?: components["schemas"]["ThemeImage"];
|
|
3270
|
+
/** Format: int64 */
|
|
3271
|
+
providerToAppLoaderColor?: number;
|
|
3272
|
+
providerToAppLoader?: components["schemas"]["ThemeColorOrImage"];
|
|
3273
|
+
verificationCompleteIcon?: components["schemas"]["ThemeImage"];
|
|
3274
|
+
verifyScreenAppIcon?: components["schemas"]["ThemeImage"];
|
|
3275
|
+
verificationFailedIcon?: components["schemas"]["ThemeImage"];
|
|
3276
|
+
};
|
|
3277
|
+
VerificationVisualTheme: {
|
|
3278
|
+
background?: components["schemas"]["ThemeColorOrImage"];
|
|
3279
|
+
backgroundBlurStrength?: number;
|
|
3280
|
+
/** Format: int64 */
|
|
3281
|
+
backgroundBlurColor?: number;
|
|
3282
|
+
parameterStyle?: components["schemas"]["ThemeParameterStyle"];
|
|
3283
|
+
colorScheme?: components["schemas"]["ThemeColorScheme"];
|
|
3284
|
+
doneIcon?: components["schemas"]["ThemeImage"];
|
|
3285
|
+
appImageOptions?: components["schemas"]["ThemeImageOptions"];
|
|
3286
|
+
loading?: components["schemas"]["ThemeColorOrImage"];
|
|
3287
|
+
cardElevation?: number;
|
|
3288
|
+
/** Format: int64 */
|
|
3289
|
+
cardColor?: number;
|
|
3290
|
+
/** Format: int64 */
|
|
3291
|
+
onCardColor?: number;
|
|
3292
|
+
/** Format: int64 */
|
|
3293
|
+
sessionChipSurfaceColor?: number;
|
|
3294
|
+
/** Format: int64 */
|
|
3295
|
+
sessionChipOnSurfaceColor?: number;
|
|
3296
|
+
/** Format: int64 */
|
|
3297
|
+
termsNoticeColor?: number;
|
|
3298
|
+
/** Format: int64 */
|
|
3299
|
+
hyperlinkColor?: number;
|
|
3300
|
+
/**
|
|
3301
|
+
* Format: int64
|
|
3302
|
+
* @deprecated
|
|
3303
|
+
* @description Deprecated alias for `hyperlinkColor`.
|
|
3304
|
+
*/
|
|
3305
|
+
hyperlinkColorInt?: number;
|
|
3306
|
+
verificationReviewScreenTheme?: components["schemas"]["VerificationReviewScreenTheme"];
|
|
3307
|
+
consentViewIcon?: components["schemas"]["ThemeImage"];
|
|
3308
|
+
consentDisclaimerIcon?: components["schemas"]["ThemeImage"];
|
|
3309
|
+
submissionConsentDisclaimerIcon?: components["schemas"]["ThemeImage"];
|
|
3310
|
+
consentContinueButtonTheme?: {
|
|
3311
|
+
/** Format: int64 */
|
|
3312
|
+
backgroundColor?: number;
|
|
3313
|
+
/** Format: int64 */
|
|
3314
|
+
foregroundColor?: number;
|
|
3315
|
+
};
|
|
3316
|
+
verifyAnotherWayStyle?: {
|
|
3317
|
+
headerActionButtonStyle?: components["schemas"]["ThemeButton"];
|
|
3318
|
+
failedActionButtonStyle?: components["schemas"]["ThemeButton"];
|
|
3319
|
+
};
|
|
3320
|
+
};
|
|
3321
|
+
/** @description Cross-client presentation fields used by the in-app SDK and Portal. Clients apply supported visual fields and ignore fields that don't belong to their UI surface. */
|
|
3322
|
+
VerificationClientTheme: {
|
|
3323
|
+
/**
|
|
3324
|
+
* @default light
|
|
3325
|
+
* @enum {string}
|
|
3326
|
+
*/
|
|
3327
|
+
themeMode: "dark" | "light" | "system";
|
|
3328
|
+
theme?: components["schemas"]["VerificationVisualTheme"];
|
|
3329
|
+
darkTheme?: components["schemas"]["VerificationVisualTheme"];
|
|
3330
|
+
returnToAppMessage?: {
|
|
3331
|
+
success?: string;
|
|
3332
|
+
failure?: string;
|
|
3333
|
+
};
|
|
3334
|
+
dataSharedMessage?: {
|
|
3335
|
+
savedAndShared?: string;
|
|
3336
|
+
shared?: string;
|
|
3337
|
+
whatWasShared?: string;
|
|
3338
|
+
};
|
|
3339
|
+
/** Format: uri */
|
|
3340
|
+
potentialFailureReasonsLink?: string;
|
|
3341
|
+
secureAndPrivateText?: string;
|
|
3342
|
+
canShowLoadingOnPageChange?: boolean;
|
|
3343
|
+
submitButtonLabel?: components["schemas"]["ConsentText"];
|
|
3344
|
+
cancelButtonLabel?: components["schemas"]["ConsentText"];
|
|
3345
|
+
extraTranslations?: {
|
|
3346
|
+
[key: string]: components["schemas"]["ConsentText"];
|
|
3347
|
+
};
|
|
3348
|
+
portalInfo?: {
|
|
3349
|
+
header?: {
|
|
3350
|
+
description?: components["schemas"]["ConsentText"];
|
|
3351
|
+
/** Format: uri */
|
|
3352
|
+
descriptionLink?: string;
|
|
3353
|
+
};
|
|
3354
|
+
verificationReviewInfo?: {
|
|
3355
|
+
/** @enum {string} */
|
|
3356
|
+
displayStyle?: "comfortablyStartAligned";
|
|
3357
|
+
placeholderFields?: {
|
|
3358
|
+
label?: components["schemas"]["ConsentText"];
|
|
3359
|
+
hashed?: boolean;
|
|
3360
|
+
order?: number;
|
|
3361
|
+
}[];
|
|
3362
|
+
gettingStarted?: components["schemas"]["ThemeStatusInfo"];
|
|
3363
|
+
pageLoading?: components["schemas"]["ThemeStatusInfo"];
|
|
3364
|
+
lookingForInformation?: components["schemas"]["ThemeStatusInfo"];
|
|
3365
|
+
validatingInformation?: components["schemas"]["ThemeStatusInfo"];
|
|
3366
|
+
validationComplete?: components["schemas"]["ThemeStatusInfo"];
|
|
3367
|
+
validatingFailed?: components["schemas"]["ThemeStatusInfo"];
|
|
3368
|
+
/** @default false */
|
|
3369
|
+
skipGettingStartedOverlay: boolean;
|
|
3370
|
+
/** @default false */
|
|
3371
|
+
skipPageLoadingOverlay: boolean;
|
|
3372
|
+
/** @default false */
|
|
3373
|
+
skipCompletionOverlay: boolean;
|
|
3374
|
+
};
|
|
3375
|
+
submissionConsent?: components["schemas"]["ConsentText"];
|
|
3376
|
+
verifyAnotherWayLabel?: components["schemas"]["ConsentText"];
|
|
3377
|
+
/** Format: uri */
|
|
3378
|
+
verifyAnotherWayLink?: string;
|
|
3379
|
+
};
|
|
3380
|
+
};
|
|
3381
|
+
ThemeStatusInfo: {
|
|
3382
|
+
title?: components["schemas"]["ConsentText"];
|
|
3383
|
+
subtitle?: components["schemas"]["ConsentText"];
|
|
3384
|
+
};
|
|
2983
3385
|
/** @description A visual theme owned by an organization. Customizes the **end-user verification UX** rendered inside apps that integrate the Reclaim client SDK — brand colors, logos, and copy shown to end-users while they verify. Not applied to the builder UI itself. */
|
|
2984
3386
|
Theme: {
|
|
2985
3387
|
id: components["schemas"]["ThemeID"];
|
|
@@ -2992,8 +3394,11 @@ export interface components {
|
|
|
2992
3394
|
* @description URL to a square icon image used to represent this theme.
|
|
2993
3395
|
*/
|
|
2994
3396
|
iconUrl?: string;
|
|
3397
|
+
/** @description Preferred locale for localized theme copy. Verification Clients fall back to the claimant locale when this is absent. */
|
|
3398
|
+
preferredLocale?: string;
|
|
2995
3399
|
/** @description Optional full-screen consent prompt — see `ConsentInfo`. Absent ⇒ the Verification Client shows no consent screen and proceeds straight to the provider's site. */
|
|
2996
3400
|
consent?: components["schemas"]["ConsentInfo"];
|
|
3401
|
+
clientTheme?: components["schemas"]["VerificationClientTheme"];
|
|
2997
3402
|
/**
|
|
2998
3403
|
* Format: uri
|
|
2999
3404
|
* @description Org-specific Terms of Service URL, shown as a footer notice (not a blocking screen) during verification — matches reclaim-portal's / reclaim-inapp-sdk's `termsAndConditionLink`. Absent ⇒ clients fall back to the default Reclaim Terms of Service URL.
|
|
@@ -3102,6 +3507,7 @@ export interface components {
|
|
|
3102
3507
|
plan?: string;
|
|
3103
3508
|
subscriptionStatus?: components["schemas"]["BillingSubscriptionStatus"];
|
|
3104
3509
|
billingMode: components["schemas"]["BillingMode"];
|
|
3510
|
+
billingTiming?: components["schemas"]["BillingTiming"];
|
|
3105
3511
|
stripeCustomerId?: string;
|
|
3106
3512
|
/** Format: date-time */
|
|
3107
3513
|
currentPeriodStart?: string;
|
|
@@ -3119,11 +3525,6 @@ export interface components {
|
|
|
3119
3525
|
* @description When the scheduled downgrade takes effect (period end).
|
|
3120
3526
|
*/
|
|
3121
3527
|
pendingPlanEffectiveAt?: string;
|
|
3122
|
-
/**
|
|
3123
|
-
* Format: date-time
|
|
3124
|
-
* @description When an overdue (past_due) org loses paid limits and falls back to the free plan. Admin-extendable. This is the failed-card clock (plan graceDays) — the credit wallet has its own graceUntil, which only governs overage.
|
|
3125
|
-
*/
|
|
3126
|
-
graceUntil?: string;
|
|
3127
3528
|
createMetadata: components["schemas"]["ActorMetadata"];
|
|
3128
3529
|
updateMetadata: components["schemas"]["ActorMetadata"];
|
|
3129
3530
|
};
|
|
@@ -3146,6 +3547,7 @@ export interface components {
|
|
|
3146
3547
|
periodCount?: number;
|
|
3147
3548
|
pricePerPeriod?: number;
|
|
3148
3549
|
currency?: string;
|
|
3550
|
+
billingTiming?: components["schemas"]["BillingTiming"];
|
|
3149
3551
|
};
|
|
3150
3552
|
/** @description Email address to send a one-time sign-in code to. */
|
|
3151
3553
|
RequestLoginOtpRequest: {
|
|
@@ -3176,13 +3578,23 @@ export interface components {
|
|
|
3176
3578
|
/** @description Also cancel the org's subscription at period end after refunding. */
|
|
3177
3579
|
cancel?: boolean;
|
|
3178
3580
|
};
|
|
3179
|
-
/** @description
|
|
3180
|
-
|
|
3181
|
-
|
|
3182
|
-
|
|
3183
|
-
|
|
3184
|
-
|
|
3185
|
-
|
|
3581
|
+
/** @description Absolute payment-failure allowance for one usage pool. The value is replaced on every request, which makes retries safe. */
|
|
3582
|
+
PoolPaymentFailureAllowance: {
|
|
3583
|
+
pool: components["schemas"]["QuotaPool"];
|
|
3584
|
+
/** @description Additional uses allowed after a plan payment fails. */
|
|
3585
|
+
paymentFailureAllowance: number;
|
|
3586
|
+
};
|
|
3587
|
+
/** @description Absolute credit-exhaustion allowance for one usage pool. The value is replaced on every request, which makes retries safe. */
|
|
3588
|
+
PoolCreditExhaustionAllowance: {
|
|
3589
|
+
pool: components["schemas"]["QuotaPool"];
|
|
3590
|
+
/** @description Additional overage uses allowed after credits run out. */
|
|
3591
|
+
creditExhaustionAllowance: number;
|
|
3592
|
+
};
|
|
3593
|
+
SetOrgPaymentAllowanceRequest: {
|
|
3594
|
+
pools: components["schemas"]["PoolPaymentFailureAllowance"][];
|
|
3595
|
+
};
|
|
3596
|
+
SetOrgCreditAllowanceRequest: {
|
|
3597
|
+
pools: components["schemas"]["PoolCreditExhaustionAllowance"][];
|
|
3186
3598
|
};
|
|
3187
3599
|
/**
|
|
3188
3600
|
* @description Mirrors Stripe subscription statuses, plus two app-level values: `canceling` (cancellation scheduled for period end — Stripe stays `active` until it deletes the subscription) and `manual` (admin-managed / alternate-payment orgs with no Stripe subscription).
|
|
@@ -3199,6 +3611,12 @@ export interface components {
|
|
|
3199
3611
|
* @enum {string}
|
|
3200
3612
|
*/
|
|
3201
3613
|
BillingMode: "STRIPE" | "MANUAL";
|
|
3614
|
+
/**
|
|
3615
|
+
* @description When the plan fee is collected for each billing cycle. UPFRONT charges before service begins (the default). POSTPAID lets the org use the plan during the cycle and invoices at the end of the cycle.
|
|
3616
|
+
* @default UPFRONT
|
|
3617
|
+
* @enum {string}
|
|
3618
|
+
*/
|
|
3619
|
+
BillingTiming: "UPFRONT" | "POSTPAID";
|
|
3202
3620
|
/**
|
|
3203
3621
|
* @description How the resolver picks providers. `combine` (default) minimizes to the fewest providers (set-cover); `ai` is a forward-compat alias that currently resolves like combine.
|
|
3204
3622
|
* @default combine
|
|
@@ -3216,6 +3634,8 @@ export interface components {
|
|
|
3216
3634
|
* "pool": "VERIFICATION",
|
|
3217
3635
|
* "includedLimit": 2000,
|
|
3218
3636
|
* "overageEnabled": true,
|
|
3637
|
+
* "paymentFailureAllowance": 100,
|
|
3638
|
+
* "creditExhaustionAllowance": 50,
|
|
3219
3639
|
* "overageRate": 0.5
|
|
3220
3640
|
* }
|
|
3221
3641
|
*/
|
|
@@ -3225,6 +3645,10 @@ export interface components {
|
|
|
3225
3645
|
includedLimit: number;
|
|
3226
3646
|
/** @description When true, usage past includedLimit keeps serving and bills as metered overage; when false the pool hard-stops at the limit. */
|
|
3227
3647
|
overageEnabled: boolean;
|
|
3648
|
+
/** @description Additional uses available in this pool after a plan payment fails. The allowance is measured in uses, not days. */
|
|
3649
|
+
paymentFailureAllowance: number;
|
|
3650
|
+
/** @description Additional overage uses available in this pool after prepaid credits run out. The allowance is measured in uses, not days. */
|
|
3651
|
+
creditExhaustionAllowance: number;
|
|
3228
3652
|
/** @description Per-unit overuse charge (from Stripe); absent until priced. */
|
|
3229
3653
|
overageRate?: number;
|
|
3230
3654
|
stripeMeterId?: string;
|
|
@@ -3233,6 +3657,10 @@ export interface components {
|
|
|
3233
3657
|
PlanPoolInput: {
|
|
3234
3658
|
pool: components["schemas"]["QuotaPool"];
|
|
3235
3659
|
includedLimit: number;
|
|
3660
|
+
/** @description Additional uses available after a plan payment fails. */
|
|
3661
|
+
paymentFailureAllowance: number;
|
|
3662
|
+
/** @description Additional overage uses available after credits run out. */
|
|
3663
|
+
creditExhaustionAllowance: number;
|
|
3236
3664
|
overageEnabled?: boolean;
|
|
3237
3665
|
};
|
|
3238
3666
|
/** @description One pool's usage against its limit for a billing period. */
|
|
@@ -3240,6 +3668,10 @@ export interface components {
|
|
|
3240
3668
|
pool: components["schemas"]["QuotaPool"];
|
|
3241
3669
|
used: number;
|
|
3242
3670
|
includedLimit: number;
|
|
3671
|
+
/** @description Effective additional uses allowed after a plan payment fails. */
|
|
3672
|
+
paymentFailureAllowance: number;
|
|
3673
|
+
/** @description Effective additional overage uses allowed after credits run out. */
|
|
3674
|
+
creditExhaustionAllowance: number;
|
|
3243
3675
|
overageEnabled?: boolean;
|
|
3244
3676
|
/** @description Per-unit overage charge (from Stripe), so the org can see what usage past includedLimit costs. Absent until the pool is priced. */
|
|
3245
3677
|
overageRate?: number;
|
|
@@ -3274,16 +3706,7 @@ export interface components {
|
|
|
3274
3706
|
periodUnit?: "DAY" | "MONTH" | "YEAR";
|
|
3275
3707
|
/** @description Number of periodUnit per cycle. */
|
|
3276
3708
|
periodCount?: number;
|
|
3277
|
-
|
|
3278
|
-
* @description Days an overdue org keeps paid limits before dropping to Free. Null = the global default (14); 0 = no grace at all, so the drop is immediate.
|
|
3279
|
-
* The failed-card clock: it starts when Stripe cannot collect the plan fee, and a successful payment clears it. On expiry the whole plan drops to free-plan limits — a hard cap with overage off. Distinct from creditGraceDays, the empty-wallet clock, which only caps overage. The two are independent and can overlap.
|
|
3280
|
-
*/
|
|
3281
|
-
graceDays?: number | null;
|
|
3282
|
-
/**
|
|
3283
|
-
* @description Days an org keeps serving overage after its prepaid credit balance hits zero, before overage stops (the plan's included allowance keeps working). Null = the global default (10); 0 = no grace at all, so overage stops as soon as the wallet is empty.
|
|
3284
|
-
* The empty-wallet clock: it starts on the first overage charged against an empty wallet — never when a plan is applied — and any top-up clears it. On expiry only overage is refused (402); the plan itself is untouched. Distinct from graceDays, the failed-card clock, whose expiry drops the whole plan to free limits.
|
|
3285
|
-
*/
|
|
3286
|
-
creditGraceDays?: number | null;
|
|
3709
|
+
billingTiming: components["schemas"]["BillingTiming"];
|
|
3287
3710
|
/** @description Contact-only lead tier — shown on the pricing page but not self-serve checkoutable; admins assign and bill it. Enterprise uses this. */
|
|
3288
3711
|
contactOnly?: boolean;
|
|
3289
3712
|
/**
|
|
@@ -3313,10 +3736,7 @@ export interface components {
|
|
|
3313
3736
|
pools?: components["schemas"]["PlanPoolInput"][];
|
|
3314
3737
|
visibility?: components["schemas"]["EntityVisibility"];
|
|
3315
3738
|
status?: components["schemas"]["EntityStatus"];
|
|
3316
|
-
|
|
3317
|
-
graceDays?: number | null;
|
|
3318
|
-
/** @description Days an org keeps serving overage after its credits run out. Omit for the global default (10), or send 0 to stop overage as soon as the wallet is empty. The empty-wallet clock — cleared by any top-up; on expiry only overage stops, and the plan's included allowance keeps working. See graceDays for the separate failed-card clock. */
|
|
3319
|
-
creditGraceDays?: number | null;
|
|
3739
|
+
billingTiming?: components["schemas"]["BillingTiming"];
|
|
3320
3740
|
/** @description Contact-only lead tier — shown but not self-serve checkoutable. */
|
|
3321
3741
|
contactOnly?: boolean;
|
|
3322
3742
|
/**
|
|
@@ -3335,10 +3755,7 @@ export interface components {
|
|
|
3335
3755
|
stripeProductId: string;
|
|
3336
3756
|
pools: components["schemas"]["PlanPoolInput"][];
|
|
3337
3757
|
visibility?: components["schemas"]["EntityVisibility"];
|
|
3338
|
-
|
|
3339
|
-
graceDays?: number | null;
|
|
3340
|
-
/** @description Empty-wallet grace: days an org keeps serving overage after its credits run out, before overage stops (the plan's included allowance keeps working). Omit for the global default (10), or send 0 to stop overage as soon as the wallet is empty. A separate clock from graceDays. */
|
|
3341
|
-
creditGraceDays?: number | null;
|
|
3758
|
+
billingTiming?: components["schemas"]["BillingTiming"];
|
|
3342
3759
|
contactOnly?: boolean;
|
|
3343
3760
|
/** Format: uuid */
|
|
3344
3761
|
orgId?: string;
|
|
@@ -3365,28 +3782,13 @@ export interface components {
|
|
|
3365
3782
|
/** @description The org's prepaid credit wallet, which funds usage beyond its plan allowance. Credits are bought through Stripe (which owns the money as billing credit grants and applies them to the metered overage line when an invoice finalises); this projection is what governs service in real time. Always present — an org that never topped up reads as zero. */
|
|
3366
3783
|
OrgCredit: {
|
|
3367
3784
|
orgId: components["schemas"]["OrgID"];
|
|
3368
|
-
/** @description Credit left to spend. Floors at zero — once empty, the
|
|
3785
|
+
/** @description Credit left to spend. Floors at zero — once empty, the per-pool credit-exhaustion allowance governs overage access, and anything consumed past zero settles on the next Stripe invoice. */
|
|
3369
3786
|
remaining: number;
|
|
3370
3787
|
currency: string;
|
|
3371
|
-
/** @description Spent since the last sync with Stripe. May exceed the synced balance while
|
|
3788
|
+
/** @description Spent since the last sync with Stripe. May exceed the synced balance while a credit-exhaustion allowance remains; the excess appears on the next invoice. */
|
|
3372
3789
|
unbilledSpend?: number;
|
|
3373
|
-
/**
|
|
3374
|
-
|
|
3375
|
-
* @description When the balance first hit zero. Null while funded.
|
|
3376
|
-
*/
|
|
3377
|
-
exhaustedAt?: string | null;
|
|
3378
|
-
/**
|
|
3379
|
-
* Format: date-time
|
|
3380
|
-
* @description When overage stops for want of credit. Admin-extendable; cleared by any top-up. This is the empty-wallet clock — not OrgBilling's same-named graceUntil, which is the failed-card one.
|
|
3381
|
-
*/
|
|
3382
|
-
graceUntil?: string | null;
|
|
3383
|
-
/**
|
|
3384
|
-
* @description Effective length of this wallet's grace window — the org's own override, else its plan's creditGraceDays, else the global default (10).
|
|
3385
|
-
* Named graceDays rather than creditGraceDays because every field on this object is about credit. It is NOT the plan's graceDays, which is the unrelated failed-card window (default 14) and drops the whole plan to free limits when it expires.
|
|
3386
|
-
*/
|
|
3387
|
-
graceDays: number;
|
|
3388
|
-
/** @description True when the wallet is empty AND the grace window has elapsed, so requests beyond the plan allowance are refused with 402. The included allowance still works. */
|
|
3389
|
-
graceExpired: boolean;
|
|
3790
|
+
/** @description Remaining incident allowances, reported separately per pool. */
|
|
3791
|
+
allowances: components["schemas"]["OrgPoolAllowance"][];
|
|
3390
3792
|
/**
|
|
3391
3793
|
* Format: date-time
|
|
3392
3794
|
* @description When the balance was last read from Stripe.
|
|
@@ -3397,6 +3799,22 @@ export interface components {
|
|
|
3397
3799
|
/** @description Credit consumed, as Stripe recorded it when invoices finalised — the money-out side. Read live from Stripe, newest first. Excludes this cycle's unbilled usage, which is `unbilledSpend`. */
|
|
3398
3800
|
spend?: components["schemas"]["CreditSpend"][];
|
|
3399
3801
|
};
|
|
3802
|
+
/** @enum {string} */
|
|
3803
|
+
QuotaAllowanceReason: "PAYMENT_FAILURE" | "CREDIT_EXHAUSTION";
|
|
3804
|
+
OrgPoolAllowance: {
|
|
3805
|
+
pool: components["schemas"]["QuotaPool"];
|
|
3806
|
+
reason: components["schemas"]["QuotaAllowanceReason"];
|
|
3807
|
+
planAllowance: number;
|
|
3808
|
+
adminTotalAllowance?: number | null;
|
|
3809
|
+
consumed: number;
|
|
3810
|
+
remaining: number;
|
|
3811
|
+
incidentId?: string;
|
|
3812
|
+
/** Format: date-time */
|
|
3813
|
+
incidentAt?: string;
|
|
3814
|
+
};
|
|
3815
|
+
OrgPoolAllowanceResult: {
|
|
3816
|
+
items: components["schemas"]["OrgPoolAllowance"][];
|
|
3817
|
+
};
|
|
3400
3818
|
CreditGrant: {
|
|
3401
3819
|
id: string;
|
|
3402
3820
|
name?: string;
|
|
@@ -3432,22 +3850,12 @@ export interface components {
|
|
|
3432
3850
|
GrantOrgCreditRequest: {
|
|
3433
3851
|
amount: number;
|
|
3434
3852
|
/**
|
|
3435
|
-
* @description PROMOTIONAL = goodwill, no payment. PURCHASE = paid out of band; raises a Stripe invoice marked paid out-of-band. ADJUSTMENT = a correction, for example, writing off
|
|
3853
|
+
* @description PROMOTIONAL = goodwill, no payment. PURCHASE = paid out of band; raises a Stripe invoice marked paid out-of-band. ADJUSTMENT = a correction, for example, writing off overage.
|
|
3436
3854
|
* @enum {string}
|
|
3437
3855
|
*/
|
|
3438
3856
|
kind: "PROMOTIONAL" | "PURCHASE" | "ADJUSTMENT";
|
|
3439
3857
|
note?: string;
|
|
3440
3858
|
};
|
|
3441
|
-
/** @description Give the deadline as an absolute graceUntil, or as extendDays from now. graceUntil wins if both are sent. This extends the empty-wallet clock (overage only); for a failed card use `POST /admin/orgs/{orgId}/billing/grace`. */
|
|
3442
|
-
SetCreditGraceRequest: {
|
|
3443
|
-
/**
|
|
3444
|
-
* Format: date-time
|
|
3445
|
-
* @description RFC 3339 UTC deadline after which overage stops.
|
|
3446
|
-
*/
|
|
3447
|
-
graceUntil?: string;
|
|
3448
|
-
/** @description Days from now, as a shorthand for graceUntil. */
|
|
3449
|
-
extendDays?: number;
|
|
3450
|
-
};
|
|
3451
3859
|
/** @description One payment for a period — Stripe-sourced (webhooks) and admin-recorded MANUAL (alternate payments) entries share this shape. */
|
|
3452
3860
|
BillingTransaction: {
|
|
3453
3861
|
/** Format: uuid */
|
|
@@ -3527,7 +3935,7 @@ export interface components {
|
|
|
3527
3935
|
periodEnd?: string;
|
|
3528
3936
|
note?: string;
|
|
3529
3937
|
};
|
|
3530
|
-
/** @description
|
|
3938
|
+
/** @description Legacy metadata for one live token of a verification client. Never includes the plaintext secret — only its display `last4`. Same shape as `OrgTokenMeta`: `createMetadata` (issuer + timestamp) plus a flat `lastUsedAt`. */
|
|
3531
3939
|
VerificationClientTokenMeta: {
|
|
3532
3940
|
/** Format: uuid */
|
|
3533
3941
|
id: string;
|
|
@@ -3546,7 +3954,7 @@ export interface components {
|
|
|
3546
3954
|
/** Format: date-time */
|
|
3547
3955
|
createdAt: string;
|
|
3548
3956
|
};
|
|
3549
|
-
/** @description A registered first-party caller (app SDK, web portal, zkFetch) allowed to drive verification sessions.
|
|
3957
|
+
/** @description A registered first-party caller (app SDK, web portal, zkFetch) allowed to drive verification sessions. Builder mode identifies it by this UUID and binds that identity to each session. The `tokens` fields are legacy compatibility metadata; Builder mode does not use them. The client may also hold active signing keys (`keys` — public halves; their kids are published in the builder's aggregated JWKS). */
|
|
3550
3958
|
VerificationClient: {
|
|
3551
3959
|
/** Format: uuid */
|
|
3552
3960
|
id: string;
|
|
@@ -3554,12 +3962,17 @@ export interface components {
|
|
|
3554
3962
|
pool: components["schemas"]["QuotaPool"];
|
|
3555
3963
|
/**
|
|
3556
3964
|
* Format: uri
|
|
3557
|
-
* @description The
|
|
3965
|
+
* @description The claimant-facing base URL. This can be a web URL, app link, or deep link and is separate from the cryptographic issuer.
|
|
3558
3966
|
*/
|
|
3559
3967
|
uri?: string;
|
|
3560
3968
|
/**
|
|
3561
3969
|
* Format: uri
|
|
3562
|
-
* @description
|
|
3970
|
+
* @description Exact trusted JWS `iss` value registered for this client. Consumers must match signed results against this value before loading JWKS.
|
|
3971
|
+
*/
|
|
3972
|
+
issuer: string;
|
|
3973
|
+
/**
|
|
3974
|
+
* Format: uri
|
|
3975
|
+
* @description Registered JWKS URL for consumer-side result verification. For Builder-managed signing keys this is normally the Builder's aggregated `/.well-known/jwks.json`; a client may instead register a self-hosted URL. The Builder never fetches or proxies this URL.
|
|
3563
3976
|
*/
|
|
3564
3977
|
jwksUri?: string;
|
|
3565
3978
|
activeTokenCount: number;
|
|
@@ -3569,7 +3982,7 @@ export interface components {
|
|
|
3569
3982
|
createMetadata?: components["schemas"]["ActorMetadata"];
|
|
3570
3983
|
updateMetadata?: components["schemas"]["ActorMetadata"];
|
|
3571
3984
|
};
|
|
3572
|
-
/** @description
|
|
3985
|
+
/** @description Legacy compatibility response from register / issue-token endpoints. Builder-mode callers use the registered client's UUID, not this token. */
|
|
3573
3986
|
VerificationClientWithToken: {
|
|
3574
3987
|
client: components["schemas"]["VerificationClient"];
|
|
3575
3988
|
token: string;
|
|
@@ -3583,15 +3996,21 @@ export interface components {
|
|
|
3583
3996
|
* @enum {string}
|
|
3584
3997
|
*/
|
|
3585
3998
|
pool: "VERIFICATION" | "ZKFETCH";
|
|
3586
|
-
/** @description Base URL claimants are directed to
|
|
3999
|
+
/** @description Base URL claimants are directed to. A verification request's `verificationClientUrl` must exactly equal this. The returned `verificationUrl` contains the session id and `api=2`; a dual-mode client uses that query value to select Builder mode. */
|
|
3587
4000
|
uri: string;
|
|
3588
|
-
/** @description
|
|
4001
|
+
/** @description Exact JWS issuer for signed results. Set this separately when the claimant-facing URL is an app link or contains a session placeholder. Consumers compare it with the JWS header before using the registered JWKS URL. For compatibility, omission defaults to `uri`. */
|
|
4002
|
+
issuer?: string;
|
|
4003
|
+
/** @description Optional registered JWKS URL for consumers. Use the Builder's aggregated endpoint for Builder-managed keys, or a self-hosted endpoint when the client manages its own signing keys. */
|
|
3589
4004
|
jwksUri?: string;
|
|
3590
4005
|
};
|
|
3591
4006
|
/** @description Fields to change on a registered client. Omitted fields keep their current values. */
|
|
3592
4007
|
UpdateVerificationClientRequest: {
|
|
3593
4008
|
pool?: components["schemas"]["QuotaPool"];
|
|
4009
|
+
/** @description Claimant-facing base URL. A verification request must exactly equal this value. */
|
|
3594
4010
|
uri?: string;
|
|
4011
|
+
/** @description Exact trusted JWS `iss` value; separate from `uri` and `jwksUri`. */
|
|
4012
|
+
issuer?: string;
|
|
4013
|
+
/** @description Registered JWKS URL for consumers; never derive it from a signed payload. */
|
|
3595
4014
|
jwksUri?: string;
|
|
3596
4015
|
};
|
|
3597
4016
|
/** @description The PUBLIC half of the client's ES256K signing keypair, as an uncompressed hex public key or a JWK. Exactly one of `publicKey` / `publicKeyJwk` is required; the private key never leaves the client. */
|
|
@@ -3624,7 +4043,7 @@ export interface components {
|
|
|
3624
4043
|
StaffList: {
|
|
3625
4044
|
items: components["schemas"]["StaffMember"][];
|
|
3626
4045
|
};
|
|
3627
|
-
/** @description
|
|
4046
|
+
/** @description Legacy compatibility metadata for a token. Builder-mode clients use their registered UUID in `x-reclaim-vc-id` instead. */
|
|
3628
4047
|
IssueVerificationClientTokenRequest: {
|
|
3629
4048
|
/** @description A human note to tell tokens apart (for example, "prod-eu"). */
|
|
3630
4049
|
label?: string;
|
|
@@ -3678,6 +4097,10 @@ export interface components {
|
|
|
3678
4097
|
method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
|
|
3679
4098
|
/** @description Template used to match or capture an outgoing request body. Template can use regex templates as placeholders. For example, to match an outgoing request body that contains a request ID, you can use the following template: `(?<requestId>.*)`. */
|
|
3680
4099
|
requestBodyTemplate?: string;
|
|
4100
|
+
/** @description Static HTTP request headers passed to the attestor. Header values may use the same `{{param}}` and `{{context.key}}` templates as the URL and request body. Cookies captured by the Verification Client are attached separately and don't need to be declared. */
|
|
4101
|
+
headers?: {
|
|
4102
|
+
[key: string]: string;
|
|
4103
|
+
};
|
|
3681
4104
|
/**
|
|
3682
4105
|
* @description Credentials mode to use when issuing the request. If not provided, defaults to `include`.
|
|
3683
4106
|
* @default include
|
|
@@ -3689,7 +4112,7 @@ export interface components {
|
|
|
3689
4112
|
additionalClientOptions?: components["schemas"]["AdditionalTlsClientOptions"];
|
|
3690
4113
|
/** @description Conditions the (redacted) response must satisfy for the proof to be valid. Each runs against the union of the portions revealed by `responseRedactions` (or the whole response when there are none). Mirrors attestor-core `responseMatches`. */
|
|
3691
4114
|
responseMatches?: components["schemas"]["ResponseMatch"][];
|
|
3692
|
-
/** @description Portions to select/reveal from the response, applied in order (xPath => jsonPath => regex). Done client-side; only the selected portions (plus the first response line) are sent to the attestor. An independent ordered list —
|
|
4115
|
+
/** @description Portions to select/reveal from the response, applied in order (xPath => jsonPath => regex). Done client-side; only the selected portions (plus the first response line) are sent to the attestor. An independent ordered list — not generally paired 1:1 with `responseMatches`. For legacy proof-hash optional-subset compatibility only, the redaction at the same index is treated as the pair for an optional `ResponseMatch`; this does not pair all redactions with matches. Mirrors attestor-core `responseRedactions`. */
|
|
3693
4116
|
responseRedactions?: components["schemas"]["ResponseRedaction"][];
|
|
3694
4117
|
};
|
|
3695
4118
|
/** @description A template for selecting requests. Same matcher shape as `RequestSelection`, plus template flags (`multiple`/`required`) and optional `templateParams` expansion. */
|
|
@@ -3703,6 +4126,10 @@ export interface components {
|
|
|
3703
4126
|
method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
|
|
3704
4127
|
/** @description Template used to match or capture an outgoing request body. Template can use regex templates as placeholders. For example, to match an outgoing request body that contains a request ID, you can use the following template: `(?<requestId>.*)`. */
|
|
3705
4128
|
requestBodyTemplate?: string;
|
|
4129
|
+
/** @description Static HTTP request headers passed to the attestor. Values may contain `{{param}}` and `{{context.key}}` templates. */
|
|
4130
|
+
headers?: {
|
|
4131
|
+
[key: string]: string;
|
|
4132
|
+
};
|
|
3706
4133
|
/**
|
|
3707
4134
|
* @description Credentials mode to use when issuing the request. If not provided, defaults to `include`.
|
|
3708
4135
|
* @default include
|
|
@@ -3714,7 +4141,7 @@ export interface components {
|
|
|
3714
4141
|
additionalClientOptions?: components["schemas"]["AdditionalTlsClientOptions"];
|
|
3715
4142
|
/** @description Conditions the (redacted) response must satisfy for the proof to be valid. Each runs against the union of the portions revealed by `responseRedactions` (or the whole response when there are none). Mirrors attestor-core `responseMatches`. */
|
|
3716
4143
|
responseMatches?: components["schemas"]["ResponseMatch"][];
|
|
3717
|
-
/** @description Portions to select/reveal from the response, applied in order (xPath => jsonPath => regex). Done client-side; only the selected portions (plus the first response line) are sent to the attestor. An independent ordered list —
|
|
4144
|
+
/** @description Portions to select/reveal from the response, applied in order (xPath => jsonPath => regex). Done client-side; only the selected portions (plus the first response line) are sent to the attestor. An independent ordered list — not generally paired 1:1 with `responseMatches`. For legacy proof-hash optional-subset compatibility only, the redaction at the same index is treated as the pair for an optional `ResponseMatch`; this does not pair all redactions with matches. Mirrors attestor-core `responseRedactions`. */
|
|
3718
4145
|
responseRedactions?: components["schemas"]["ResponseRedaction"][];
|
|
3719
4146
|
/**
|
|
3720
4147
|
* @description If true, the template is allowed for multiple requests. Useful for requests like paginated API calls.
|
|
@@ -3822,6 +4249,7 @@ export interface components {
|
|
|
3822
4249
|
* The scraper never overwrites an author-set value.
|
|
3823
4250
|
*/
|
|
3824
4251
|
iconUrl?: string;
|
|
4252
|
+
preferredLocale?: string;
|
|
3825
4253
|
/**
|
|
3826
4254
|
* Format: uri
|
|
3827
4255
|
* @description URL to a 1200x630 Open Graph preview card for this
|
|
@@ -3919,6 +4347,8 @@ export interface components {
|
|
|
3919
4347
|
* @description Effective icon URL — the author-set value if present, otherwise the cached / live S2 favicon for `domain`.
|
|
3920
4348
|
*/
|
|
3921
4349
|
iconUrl?: string;
|
|
4350
|
+
/** @description Omit to leave unchanged; pass `null` to clear. */
|
|
4351
|
+
preferredLocale?: string | null;
|
|
3922
4352
|
/**
|
|
3923
4353
|
* Format: uri
|
|
3924
4354
|
* @description URL to the 1200×630 OG preview card. Absent until the first render completes. See `Provider.previewImageUrl` for the cache invalidation rules.
|
|
@@ -4087,7 +4517,7 @@ export interface components {
|
|
|
4087
4517
|
/** @description JavaScript snippets injected into the page which runs before every page load. `window.Reclaim.` APIs are available to these scripts to request actions to the client like claim creation. */
|
|
4088
4518
|
jsUserScripts?: string;
|
|
4089
4519
|
};
|
|
4090
|
-
/** @description Optional JSON Schema describing the `context` a Consumer must supply when creating a verification session for this provider version. Only needed when the recipe expects Consumer-supplied values: those are referenced as `{{context.<key>}}` in recipe requests. Bare `{{parameterName}}` placeholders are provider parameters
|
|
4520
|
+
/** @description Optional JSON Schema describing the `context` a Consumer must supply when creating a verification session for this provider version. Only needed when the recipe expects Consumer-supplied values: those are referenced as `{{context.<key>}}` in recipe requests. Bare `{{parameterName}}` placeholders are normally provider parameters extracted from claimant traffic. For old DevTools recipes, Builder-mode Verification Clients seed a missing bare `parameterName` from a same-named scalar session context field when the recipe doesn't use `{{context.parameterName}}`; an explicit parameter always wins. New recipes should use the explicit `{{context.<key>}}` form. Bare parameters need no declaration here. Builder-owned `reclaimSessionId` and `attestationNonce` remain context-only. The Builder validates `CreateVerificationSessionRequest.context` against this schema and rejects the request (400) on mismatch. Extra context fields are always allowed regardless of the schema (a root-level `additionalProperties: false` is ignored). Empty/absent accepts any context. */
|
|
4091
4521
|
ProviderRequiredContext: {
|
|
4092
4522
|
[key: string]: unknown;
|
|
4093
4523
|
};
|
|
@@ -4238,7 +4668,9 @@ export interface components {
|
|
|
4238
4668
|
label: string;
|
|
4239
4669
|
/** Format: uri */
|
|
4240
4670
|
iconUrl?: string;
|
|
4671
|
+
preferredLocale?: string;
|
|
4241
4672
|
consent?: components["schemas"]["ConsentInfo"];
|
|
4673
|
+
clientTheme?: components["schemas"]["VerificationClientTheme"];
|
|
4242
4674
|
/** Format: uri */
|
|
4243
4675
|
termsAndConditionLink?: string;
|
|
4244
4676
|
/** Format: uri */
|
|
@@ -4249,7 +4681,11 @@ export interface components {
|
|
|
4249
4681
|
/** Format: uri */
|
|
4250
4682
|
iconUrl?: string;
|
|
4251
4683
|
/** @description Omit to leave unchanged; pass `null` to clear. */
|
|
4684
|
+
preferredLocale?: string | null;
|
|
4685
|
+
/** @description Omit to leave unchanged; pass `null` to clear. */
|
|
4252
4686
|
consent?: components["schemas"]["ConsentInfo"] | null;
|
|
4687
|
+
/** @description Omit to leave unchanged; pass `null` to clear. */
|
|
4688
|
+
clientTheme?: components["schemas"]["VerificationClientTheme"] | null;
|
|
4253
4689
|
/**
|
|
4254
4690
|
* Format: uri
|
|
4255
4691
|
* @description Omit to leave unchanged; pass `null` to clear.
|
|
@@ -4344,21 +4780,174 @@ export interface components {
|
|
|
4344
4780
|
/** @description Author SEO fields. Send `null` for a subfield to clear that override and let `seoSuggestions` win again. */
|
|
4345
4781
|
seo?: components["schemas"]["ProviderSeo"];
|
|
4346
4782
|
};
|
|
4347
|
-
/**
|
|
4348
|
-
|
|
4349
|
-
|
|
4350
|
-
|
|
4351
|
-
|
|
4352
|
-
|
|
4353
|
-
|
|
4354
|
-
|
|
4355
|
-
|
|
4356
|
-
|
|
4357
|
-
|
|
4358
|
-
|
|
4359
|
-
|
|
4360
|
-
|
|
4361
|
-
|
|
4783
|
+
/**
|
|
4784
|
+
* Format: uuid
|
|
4785
|
+
* @description Internal campaign identifier. Never expose it to volunteers.
|
|
4786
|
+
*/
|
|
4787
|
+
ContributionID: string;
|
|
4788
|
+
/**
|
|
4789
|
+
* Format: uuid
|
|
4790
|
+
* @description Shareable public campaign identifier.
|
|
4791
|
+
*/
|
|
4792
|
+
ContributionPublicID: string;
|
|
4793
|
+
/**
|
|
4794
|
+
* Format: uuid
|
|
4795
|
+
* @description Opaque field-scoped attempt identifier.
|
|
4796
|
+
*/
|
|
4797
|
+
ContributionAttemptID: string;
|
|
4798
|
+
/** @enum {string} */
|
|
4799
|
+
ContributionCampaignStatus: "DRAFT" | "OPEN" | "PAUSED" | "CLOSED";
|
|
4800
|
+
/** @enum {string} */
|
|
4801
|
+
ContributionAttemptStatus: "CREATED" | "ACTIVE" | "PROPOSED" | "COMPLETED" | "FAILED" | "CANCELLED" | "STALE";
|
|
4802
|
+
/** @enum {string} */
|
|
4803
|
+
ContributionSensitivity: "PUBLIC" | "PERSONAL" | "SENSITIVE";
|
|
4804
|
+
ContributionRequirement: {
|
|
4805
|
+
key: string;
|
|
4806
|
+
title: string;
|
|
4807
|
+
description?: string;
|
|
4808
|
+
sensitivity?: components["schemas"]["ContributionSensitivity"];
|
|
4809
|
+
requiredClaims?: string[];
|
|
4810
|
+
requiredOutputs?: string[];
|
|
4811
|
+
};
|
|
4812
|
+
ContributionRequirements: {
|
|
4813
|
+
fields: components["schemas"]["ContributionRequirement"][];
|
|
4814
|
+
};
|
|
4815
|
+
ContributionCampaign: {
|
|
4816
|
+
id: components["schemas"]["ContributionID"];
|
|
4817
|
+
publicId: components["schemas"]["ContributionPublicID"];
|
|
4818
|
+
providerId: components["schemas"]["ProviderID"];
|
|
4819
|
+
status: components["schemas"]["ContributionCampaignStatus"];
|
|
4820
|
+
title: string;
|
|
4821
|
+
description: string;
|
|
4822
|
+
consentText: string;
|
|
4823
|
+
/** @enum {string} */
|
|
4824
|
+
fixedCountry: "US";
|
|
4825
|
+
/** @enum {boolean} */
|
|
4826
|
+
proxyRequired: true;
|
|
4827
|
+
allowedHosts: string[];
|
|
4828
|
+
allowedPathPrefixes: string[];
|
|
4829
|
+
templateResolvedVersion: string;
|
|
4830
|
+
currentRevision?: number;
|
|
4831
|
+
createdAt?: components["schemas"]["Timestamp"];
|
|
4832
|
+
};
|
|
4833
|
+
PublicContributionCampaign: {
|
|
4834
|
+
id: components["schemas"]["ContributionPublicID"];
|
|
4835
|
+
providerId: components["schemas"]["ProviderID"];
|
|
4836
|
+
title: string;
|
|
4837
|
+
description: string;
|
|
4838
|
+
consentText: string;
|
|
4839
|
+
/** @enum {string} */
|
|
4840
|
+
fixedCountry: "US";
|
|
4841
|
+
/** @enum {boolean} */
|
|
4842
|
+
proxyRequired: true;
|
|
4843
|
+
allowedHosts?: string[];
|
|
4844
|
+
allowedPathPrefixes?: string[];
|
|
4845
|
+
templateVersion?: string;
|
|
4846
|
+
revision: number;
|
|
4847
|
+
requirements: components["schemas"]["ContributionRequirements"];
|
|
4848
|
+
};
|
|
4849
|
+
ContributionRequirementRevision: {
|
|
4850
|
+
campaignId: components["schemas"]["ContributionID"];
|
|
4851
|
+
revision: number;
|
|
4852
|
+
requirements: components["schemas"]["ContributionRequirements"];
|
|
4853
|
+
createdAt?: components["schemas"]["Timestamp"];
|
|
4854
|
+
};
|
|
4855
|
+
ContributionAttempt: {
|
|
4856
|
+
id: components["schemas"]["ContributionAttemptID"];
|
|
4857
|
+
campaignId: components["schemas"]["ContributionPublicID"];
|
|
4858
|
+
revision: number;
|
|
4859
|
+
fieldKey: string;
|
|
4860
|
+
baseVersion: string;
|
|
4861
|
+
templateVersion: string;
|
|
4862
|
+
status: components["schemas"]["ContributionAttemptStatus"];
|
|
4863
|
+
proposedVersion?: string;
|
|
4864
|
+
startedAt?: components["schemas"]["Timestamp"];
|
|
4865
|
+
proposedAt?: components["schemas"]["Timestamp"];
|
|
4866
|
+
terminalAt?: components["schemas"]["Timestamp"];
|
|
4867
|
+
};
|
|
4868
|
+
ContributionAttemptStart: {
|
|
4869
|
+
attemptId: components["schemas"]["ContributionAttemptID"];
|
|
4870
|
+
sessionId: components["schemas"]["SessionID"];
|
|
4871
|
+
/** Format: uri */
|
|
4872
|
+
verificationUrl: string;
|
|
4873
|
+
/** @description Attempt-scoped capability for submitting bounded volunteer feedback. Store it only for the current contribution attempt. */
|
|
4874
|
+
feedbackCapability: string;
|
|
4875
|
+
};
|
|
4876
|
+
ContributionComment: {
|
|
4877
|
+
id: components["schemas"]["ContributionID"];
|
|
4878
|
+
attemptId?: components["schemas"]["ContributionAttemptID"];
|
|
4879
|
+
fieldKey?: string;
|
|
4880
|
+
version?: string;
|
|
4881
|
+
/** @enum {string} */
|
|
4882
|
+
visibility: "MAINTAINER" | "PUBLIC";
|
|
4883
|
+
body: string;
|
|
4884
|
+
createdAt: components["schemas"]["Timestamp"];
|
|
4885
|
+
};
|
|
4886
|
+
ContributionReviewDocument: {
|
|
4887
|
+
campaigns: components["schemas"]["ContributionCampaign"][];
|
|
4888
|
+
attempts: components["schemas"]["ContributionAttempt"][];
|
|
4889
|
+
history: {
|
|
4890
|
+
[key: string]: unknown;
|
|
4891
|
+
};
|
|
4892
|
+
};
|
|
4893
|
+
CreatePublicContributionAttemptRequest: {
|
|
4894
|
+
fieldKey: string;
|
|
4895
|
+
/** @enum {boolean} */
|
|
4896
|
+
consent: true;
|
|
4897
|
+
};
|
|
4898
|
+
PublicContributionFeedbackRequest: {
|
|
4899
|
+
attemptId: components["schemas"]["ContributionAttemptID"];
|
|
4900
|
+
capability: string;
|
|
4901
|
+
body: string;
|
|
4902
|
+
};
|
|
4903
|
+
CreateContributionCampaignRequest: {
|
|
4904
|
+
title: string;
|
|
4905
|
+
description: string;
|
|
4906
|
+
consentText: string;
|
|
4907
|
+
/** Format: uri */
|
|
4908
|
+
initialUrl: string;
|
|
4909
|
+
allowedHosts?: string[];
|
|
4910
|
+
allowedPathPrefixes?: string[];
|
|
4911
|
+
fieldKey: string;
|
|
4912
|
+
fieldTitle: string;
|
|
4913
|
+
fieldDescription?: string;
|
|
4914
|
+
requiredClaims?: string[];
|
|
4915
|
+
requiredOutputs?: string[];
|
|
4916
|
+
sensitivity?: components["schemas"]["ContributionSensitivity"];
|
|
4917
|
+
};
|
|
4918
|
+
UpdateContributionCampaignRequest: components["schemas"]["CreateContributionCampaignRequest"];
|
|
4919
|
+
SetContributionCampaignStatusRequest: {
|
|
4920
|
+
status: components["schemas"]["ContributionCampaignStatus"];
|
|
4921
|
+
};
|
|
4922
|
+
CreateContributionRequirementRevisionRequest: {
|
|
4923
|
+
requirements: components["schemas"]["ContributionRequirements"];
|
|
4924
|
+
};
|
|
4925
|
+
AddContributionCommentRequest: {
|
|
4926
|
+
attemptId?: components["schemas"]["ContributionAttemptID"];
|
|
4927
|
+
fieldKey?: string;
|
|
4928
|
+
version?: string;
|
|
4929
|
+
/**
|
|
4930
|
+
* @default PUBLIC
|
|
4931
|
+
* @enum {string}
|
|
4932
|
+
*/
|
|
4933
|
+
visibility: "MAINTAINER" | "PUBLIC";
|
|
4934
|
+
body: string;
|
|
4935
|
+
};
|
|
4936
|
+
/** @description Body for creating a new version of a provider. Every new version starts on the `draft` branch — see `CreateProviderVersion`. The request body never sets `branch` directly; going live is a separate, explicit step (publish for PRIVATE, submit-for-review → approve for PUBLIC). `verificationType` defaults to `structured`; pass `llm` with a `prompt` to author an AI-verification provider. */
|
|
4937
|
+
CreateProviderVersionRequest: {
|
|
4938
|
+
/** @description Defaults to `structured` server-side when omitted; pass `llm` (with a `prompt`) to author an AI-verification provider. */
|
|
4939
|
+
verificationType?: components["schemas"]["VerificationType"];
|
|
4940
|
+
/** @description Extraction prompt, used (and required) when `verificationType` is `llm`. Gated by the prompt guard before it is stored (docs/prompt-guard.md). */
|
|
4941
|
+
prompt?: string;
|
|
4942
|
+
/**
|
|
4943
|
+
* @description The new semantic version. Provider-authoring clients should pass a value higher than every existing version: patch by default, or major/minor/exact as directed by the user. When omitted, the server defaults to `0.1.0`; omission is only safe for the first version because versions are immutable and must be unique.
|
|
4944
|
+
* @default {
|
|
4945
|
+
* "major": 0,
|
|
4946
|
+
* "minor": 1,
|
|
4947
|
+
* "patch": 0
|
|
4948
|
+
* }
|
|
4949
|
+
*/
|
|
4950
|
+
version: components["schemas"]["ProviderVersionRef"];
|
|
4362
4951
|
/** Format: uri */
|
|
4363
4952
|
initialUrl: string;
|
|
4364
4953
|
/** @default [] */
|
|
@@ -4407,46 +4996,10 @@ export interface components {
|
|
|
4407
4996
|
notes?: string;
|
|
4408
4997
|
};
|
|
4409
4998
|
/**
|
|
4410
|
-
* @description
|
|
4411
|
-
* proceeds through these in order; reading the gaps locates where a
|
|
4412
|
-
* session stalled. Session-level terminal events trigger callback
|
|
4413
|
-
* delivery; provider-/request-level events are progress pings carrying a
|
|
4414
|
-
* `provider_id` (and `request_id` for request-level ones) in their event
|
|
4415
|
-
* data. New values may be added over time; clients MUST tolerate unknown
|
|
4416
|
-
* values in responses.
|
|
4417
|
-
*
|
|
4418
|
-
* - `session_pending`: Session created; awaiting the end-user.
|
|
4419
|
-
*
|
|
4420
|
-
* - `verification_client_opened`: The end-user opened the link. Absent ⇒
|
|
4421
|
-
* the link was never opened.
|
|
4422
|
-
*
|
|
4423
|
-
* - `verification_client_ready`: The client initialized.
|
|
4424
|
-
*
|
|
4425
|
-
* - `verification_provider_started`: The client began verifying a provider
|
|
4426
|
-
* (`provider_id`/`resolved_version`/`ordinal` in `eventData`). One per
|
|
4427
|
-
* provider, in run order, for multi-provider sessions.
|
|
4428
|
-
*
|
|
4429
|
-
* - `request_matched`: The target request was captured on the provider
|
|
4430
|
-
* site. Absent (after opened) ⇒ the user didn't complete the journey.
|
|
4431
|
-
*
|
|
4432
|
-
* - `request_claim_created`: A proof claim was started.
|
|
4433
|
-
*
|
|
4434
|
-
* - `request_claim_completed`: A proof claim finished.
|
|
4435
|
-
*
|
|
4436
|
-
* - `request_claim_rejected`: A claim was rejected (detail in `eventData`).
|
|
4437
|
-
*
|
|
4438
|
-
* - `request_claim_failed`: A claim errored (detail in `eventData`).
|
|
4439
|
-
*
|
|
4440
|
-
* - `verification_success`: Terminal — verified. Triggers callback delivery.
|
|
4441
|
-
*
|
|
4442
|
-
* - `verification_rejected`: Terminal — rejected (detail in `eventData`).
|
|
4443
|
-
*
|
|
4444
|
-
* - `verification_error`: Terminal — errored (detail in `eventData`).
|
|
4445
|
-
*
|
|
4446
|
-
* - `session_expired`: `expiresAt` passed before a terminal event.
|
|
4999
|
+
* @description Canonical Builder lifecycle event. Names use lower snake case; metadata uses camel case. Provider events include providerId, resolvedVersion, and ordinal. Request events also include requestId. New values are additive, so clients must tolerate unknown response values. For field requirements and funnel semantics, see docs/verification-analytics-events.md.
|
|
4447
5000
|
* @enum {string}
|
|
4448
5001
|
*/
|
|
4449
|
-
VerificationEvent: "session_pending" | "verification_client_opened" | "verification_client_ready" | "verification_provider_started" | "request_matched" | "request_claim_created" | "request_claim_completed" | "request_claim_rejected" | "request_claim_failed" | "verification_success" | "verification_rejected" | "verification_error" | "session_expired";
|
|
5002
|
+
VerificationEvent: "billing_required" | "session_pending" | "verification_client_opened" | "verification_client_ready" | "verification_client_warning" | "verification_client_visibility_shown" | "verification_client_visibility_hidden" | "verification_diagnostics_mode_changed" | "verification_cancelled" | "consent_viewed" | "consent_scrolled" | "consent_agreed" | "verification_browser_started" | "verification_browser_ready" | "verification_browser_reconnect_started" | "verification_browser_reconnected" | "verification_browser_failed" | "verification_provider_started" | "provider_config" | "provider_script_log" | "network_request_observed" | "verification_page_ready" | "verification_request_interceptor_ready" | "verification_provider_completed" | "auth_required" | "auth_submitted" | "auth_challenge_remains" | "auth_rejected" | "auth_submission_failed" | "auth_challenge_completed" | "auth_gate_not_detected" | "authenticated" | "user_interaction_started" | "user_input_started" | "user_interaction_summary" | "verification_inactivity_detected" | "request_matched" | "request_match_failed" | "request_claim_parameters_captured" | "request_claim_created" | "request_claim_retrying" | "request_claim_completed" | "request_claim_rejected" | "request_claim_failed" | "verification_proofs_completed" | "verification_result_submitting" | "verification_result_submission_failed" | "verification_success" | "verification_rejected" | "verification_error" | "session_expired";
|
|
4450
5003
|
/**
|
|
4451
5004
|
* @description Status of a verification session, derived from its events. New values
|
|
4452
5005
|
* may be added over time; clients MUST tolerate unknown values in
|
|
@@ -4460,11 +5013,13 @@ export interface components {
|
|
|
4460
5013
|
*
|
|
4461
5014
|
* - `error`: Terminal — `verification_error` recorded.
|
|
4462
5015
|
*
|
|
5016
|
+
* - `cancelled`: Terminal — `verification_cancelled` recorded.
|
|
5017
|
+
*
|
|
4463
5018
|
* - `expired`: `expiresAt` passed before a terminal event; the end-user
|
|
4464
5019
|
* can no longer complete it.
|
|
4465
5020
|
* @enum {string}
|
|
4466
5021
|
*/
|
|
4467
|
-
VerificationStatus: "pending" | "success" | "rejected" | "error" | "expired";
|
|
5022
|
+
VerificationStatus: "pending" | "success" | "rejected" | "error" | "cancelled" | "expired";
|
|
4468
5023
|
/**
|
|
4469
5024
|
* @description Delivery state of a callback. On a session this is the aggregate across
|
|
4470
5025
|
* all of its deliveries; on an individual delivery it is that delivery's
|
|
@@ -4492,25 +5047,22 @@ export interface components {
|
|
|
4492
5047
|
* @description The organization that owns this callback subscription.
|
|
4493
5048
|
*/
|
|
4494
5049
|
orgId: string;
|
|
4495
|
-
/**
|
|
4496
|
-
* Format: uri
|
|
4497
|
-
* @description HTTPS endpoint that receives the result.
|
|
4498
|
-
*/
|
|
5050
|
+
/** @description HTTP(S) endpoint that receives the event. It may contain `{{sessionId}}` and top-level session-context placeholders such as `{{orderId}}`. The Builder URI-encodes each value and stores the expanded URL when it creates the delivery. */
|
|
4499
5051
|
callbackUrl: string;
|
|
4500
|
-
/** @description Events this subscription wants delivered — any subset of `VerificationEvent`.
|
|
5052
|
+
/** @description Events this subscription wants delivered — any subset of `VerificationEvent`. Builder terminal events are `verification_success`, `verification_rejected`, `verification_error`, `verification_cancelled`, and `session_expired`. Terminal result deliveries contain the signed result when one is available; non-terminal events deliver a plaintext notification. */
|
|
4501
5053
|
events: components["schemas"]["VerificationEvent"][];
|
|
4502
5054
|
createdAt: components["schemas"]["Timestamp"];
|
|
4503
5055
|
updatedAt: components["schemas"]["Timestamp"];
|
|
4504
5056
|
};
|
|
4505
5057
|
/** @description Body for `POST /verifications/callback-subscriptions`. The owning organization is resolved from the presented `OrgToken`; delivery is scoped to that org and encrypted to its credential when set. */
|
|
4506
5058
|
CreateCallbackSubscriptionRequest: {
|
|
4507
|
-
/**
|
|
5059
|
+
/** @description Callback URL or template. Supported placeholders are `{{sessionId}}` and top-level scalar context keys. */
|
|
4508
5060
|
callbackUrl: string;
|
|
4509
5061
|
events: components["schemas"]["VerificationEvent"][];
|
|
4510
5062
|
};
|
|
4511
5063
|
/** @description Body for `POST /orgs/{orgId}/callback-subscriptions`. The owning organization comes from the path; bearer-authenticated and gated on org membership. Delivery is scoped to the org and encrypted to its credential when set. */
|
|
4512
5064
|
CreateOrgCallbackSubscriptionRequest: {
|
|
4513
|
-
/**
|
|
5065
|
+
/** @description Callback URL or template. Supported placeholders are `{{sessionId}}` and top-level scalar context keys. */
|
|
4514
5066
|
callbackUrl: string;
|
|
4515
5067
|
events: components["schemas"]["VerificationEvent"][];
|
|
4516
5068
|
};
|
|
@@ -4519,6 +5071,28 @@ export interface components {
|
|
|
4519
5071
|
verificationsRemaining: number;
|
|
4520
5072
|
resetsAt: components["schemas"]["Timestamp"];
|
|
4521
5073
|
};
|
|
5074
|
+
VerificationFunnel: {
|
|
5075
|
+
/** @enum {string} */
|
|
5076
|
+
mode: "SESSION" | "PROVIDER";
|
|
5077
|
+
/** @enum {string} */
|
|
5078
|
+
providerMatch: "ANY" | "ALL";
|
|
5079
|
+
createdAfter: components["schemas"]["Timestamp"];
|
|
5080
|
+
createdBefore: components["schemas"]["Timestamp"];
|
|
5081
|
+
cohortCount: number;
|
|
5082
|
+
steps: {
|
|
5083
|
+
step: string;
|
|
5084
|
+
observedCount: number;
|
|
5085
|
+
conversionRate: number;
|
|
5086
|
+
}[];
|
|
5087
|
+
};
|
|
5088
|
+
/** @description Minimal branding safe to show in a Verification Client. */
|
|
5089
|
+
VerificationBrand: {
|
|
5090
|
+
/** Format: uuid */
|
|
5091
|
+
id: string;
|
|
5092
|
+
name: string;
|
|
5093
|
+
/** @description Optional absolute or Builder-hosted image URL. */
|
|
5094
|
+
logoUrl?: string;
|
|
5095
|
+
};
|
|
4522
5096
|
/** @description A single verification a Consumer requests from an end-user. Created via the consumer's `OrgToken`; the org must already have at least one callback subscription. The result is submitted by the Verification Client and delivered by the Builder. */
|
|
4523
5097
|
VerificationSession: {
|
|
4524
5098
|
/**
|
|
@@ -4529,13 +5103,25 @@ export interface components {
|
|
|
4529
5103
|
/** @description The providers this session verifies, in run order. The Verification Client runs each (sequentially, in one browser session) and submits one combined result; all are required. */
|
|
4530
5104
|
providers: components["schemas"]["SessionProvider"][];
|
|
4531
5105
|
/** @description The organization that owns this session. */
|
|
4532
|
-
orgId
|
|
5106
|
+
orgId: components["schemas"]["OrgID"];
|
|
5107
|
+
/** @description Display-only application branding derived from the owning organization. Builder-mode Verification Clients use this instead of calling the legacy application-info API. It does not affect recipe execution or proof verification. */
|
|
5108
|
+
application: components["schemas"]["VerificationBrand"];
|
|
4533
5109
|
/**
|
|
4534
5110
|
* Format: uuid
|
|
4535
5111
|
* @description Set by the Verification Client once the claimant opens the link.
|
|
4536
5112
|
*/
|
|
4537
5113
|
claimantClientId?: string | null;
|
|
4538
|
-
|
|
5114
|
+
claimantDetails?: components["schemas"]["ClaimantDetails"];
|
|
5115
|
+
claimantDetailsUpdatedAt?: components["schemas"]["Timestamp"];
|
|
5116
|
+
/** @description Theme selected and snapshotted when this session was created. */
|
|
5117
|
+
themeId?: components["schemas"]["ThemeID"];
|
|
5118
|
+
/** @description Immutable organization theme snapshot for Verification Clients. Absent when the organization had no active theme at creation. */
|
|
5119
|
+
theme?: components["schemas"]["Theme"];
|
|
5120
|
+
/** @description Effective locale snapshotted for this session. The create-request override wins; otherwise Builder uses the selected theme locale. */
|
|
5121
|
+
preferredLocale?: string;
|
|
5122
|
+
/** @description When the organization-bound legacy TEE nonce context was first stored. The nonce data itself is present in `context` as `attestationNonce` and `attestationNonceData`. */
|
|
5123
|
+
teeNonceBoundAt?: components["schemas"]["Timestamp"];
|
|
5124
|
+
/** @description Legacy-only preference echoed for compatibility. Builder-mode clients run the structured recipe and do not enable AI or manual verification. */
|
|
4539
5125
|
preferAiAgent?: boolean;
|
|
4540
5126
|
/** @description Consumer context, validated against the provider version's required parameters. The Builder injects `reclaimSessionId` after validation. */
|
|
4541
5127
|
context: {
|
|
@@ -4554,8 +5140,18 @@ export interface components {
|
|
|
4554
5140
|
* Format: uuid
|
|
4555
5141
|
* @description Id of the registered verification client whose base URL was used (see `verification_clients`).
|
|
4556
5142
|
*/
|
|
4557
|
-
verificationClientId
|
|
4558
|
-
/**
|
|
5143
|
+
verificationClientId: string;
|
|
5144
|
+
/**
|
|
5145
|
+
* Format: uri
|
|
5146
|
+
* @description Registered JWS issuer for this session. Consumers compare the signed result's `iss` with this value.
|
|
5147
|
+
*/
|
|
5148
|
+
verificationClientIssuer: string;
|
|
5149
|
+
/**
|
|
5150
|
+
* Format: uri
|
|
5151
|
+
* @description Registered JWKS URL for this session's Verification Client. Use this trusted value instead of constructing a URL from result data.
|
|
5152
|
+
*/
|
|
5153
|
+
verificationClientJwksUrl: string;
|
|
5154
|
+
/** @description Ready-to-share URL: the registered base URL with the session id attached by the Builder — substituted into a `{sessionId}` placeholder, or appended as a `?sessionId=…` query parameter. It always includes `api=2`, which selects Builder mode in dual-mode Verification Clients. The Consumer may append its own redirect query fields before opening the URL for the claimant; the Builder does not store or execute those redirects. */
|
|
4559
5155
|
verificationUrl: string;
|
|
4560
5156
|
createdAt: components["schemas"]["Timestamp"];
|
|
4561
5157
|
/** @description When the session stops being completable. After this, a still- `pending` session becomes `expired` on the next sweep and the end-user can no longer finish it. */
|
|
@@ -4575,26 +5171,94 @@ export interface components {
|
|
|
4575
5171
|
/** @description A provider (+ optional version) to verify in a session. */
|
|
4576
5172
|
SessionProviderInput: {
|
|
4577
5173
|
providerId: components["schemas"]["ProviderID"];
|
|
4578
|
-
/** @description
|
|
5174
|
+
/** @description Empty selects the latest active trunk version. An exact semantic version pins that version. Any other valid npm semantic-version range selects the highest active matching version. */
|
|
4579
5175
|
version?: string;
|
|
4580
5176
|
};
|
|
4581
5177
|
/** @description Body for `POST /verifications/sessions`. Authenticated by the consumer's `OrgToken`. Carries no callback URLs — they come from the org's callback subscriptions. The one shared `context` is validated against every provider's `requiredContext`. */
|
|
4582
5178
|
CreateVerificationSessionRequest: {
|
|
4583
5179
|
/** @description Providers to verify, in run order. The Verification Client runs each sequentially in one browser session and submits one combined result; all are required. */
|
|
4584
5180
|
providers: components["schemas"]["SessionProviderInput"][];
|
|
4585
|
-
/** @description Consumer context, shared by all providers. Validated against EACH resolved provider version's `requiredContext` JSON Schema (a 400 is returned on mismatch); extra fields are always allowed. Recipe requests reference these values as `{{context.<key>}}`. Echoed back (plus `reclaimSessionId`) in the result. */
|
|
5181
|
+
/** @description Consumer context, shared by all providers. Validated against EACH resolved provider version's `requiredContext` JSON Schema (a 400 is returned on mismatch); extra fields are always allowed. Recipe requests reference these values as `{{context.<key>}}`. To support old DevTools recipes, Builder-mode Verification Clients also use a same-named scalar context value to seed a missing bare `{{key}}` when the recipe doesn't use `{{context.key}}`; an explicit parameter takes precedence. Echoed back (plus `reclaimSessionId`) in the result. Builder-owned `reclaimSessionId` and `attestationNonce` remain context-only. */
|
|
4586
5182
|
context: {
|
|
4587
5183
|
[key: string]: unknown;
|
|
4588
5184
|
};
|
|
4589
|
-
/** @description Optional. Must exactly equal the base URL of a registered verification client (see the `verification_clients` registry / `/admin/verification-clients`). Omit to use the default (`builder`) client. The Builder
|
|
5185
|
+
/** @description Optional. Must exactly equal the base URL of a registered verification client (see the `verification_clients` registry / `/admin/verification-clients`). Omit to use the default (`builder`) client. The Builder resolves and stores the registered client UUID, then returns the ready-to-share `verificationUrl` with the session id and `api=2`. A URL that is not a registered client's base is rejected with 400. Consumers append any client-owned redirect parameters after receiving the URL; Builder does not manage them. */
|
|
4590
5186
|
verificationClientUrl?: string;
|
|
4591
|
-
/** @description Optional
|
|
5187
|
+
/** @description Optional active theme owned by the organization. When omitted, Builder snapshots the organization's most recently updated active theme. If the organization has no active theme, the Verification Client uses its default presentation. */
|
|
5188
|
+
themeId?: components["schemas"]["ThemeID"];
|
|
5189
|
+
/** @description Optional locale override for this verification session. It takes precedence over the organization theme's preferred locale. */
|
|
5190
|
+
preferredLocale?: string;
|
|
5191
|
+
/** @description Legacy-only preference. Builder mode runs the structured recipe and does not enable AI or manual verification. Omit this field for Builder-mode sessions; dual-mode clients may continue to interpret it only on their legacy path. */
|
|
4592
5192
|
preferAiAgent?: boolean;
|
|
4593
5193
|
};
|
|
5194
|
+
/** @description Exact legacy TEE nonce inputs. Builder stores this unchanged in the session context after it verifies the signed binding request. */
|
|
5195
|
+
AttestationNonceData: {
|
|
5196
|
+
/** @description Ethereum application address derived from the organization private key. Its supplied casing is preserved for legacy nonce compatibility. */
|
|
5197
|
+
applicationId: string;
|
|
5198
|
+
sessionId: components["schemas"]["SessionID"];
|
|
5199
|
+
/** @description Decimal Unix timestamp in milliseconds. */
|
|
5200
|
+
timestamp: string;
|
|
5201
|
+
/**
|
|
5202
|
+
* @description Legacy SDK TEE attestation protocol version.
|
|
5203
|
+
* @enum {string}
|
|
5204
|
+
*/
|
|
5205
|
+
attestationVersion: "v3";
|
|
5206
|
+
};
|
|
5207
|
+
/** @description One immutable legacy TEE context, signed by the organization verification key. The signature is EIP-191 `personal_sign` over `RECLAIM_BUILDER_TEE_BINDING_V1:{organizationId}:{sessionId}:{applicationId}:{timestamp}:{attestationVersion}:{attestationNonce}`. */
|
|
5208
|
+
BindVerificationSessionTeeNonceRequest: {
|
|
5209
|
+
/** @description Either the current lowercase 64-hex hash nonce (without `0x`) or the older 65-byte EIP-191 signature nonce (`0x` plus 130 hex characters). Builder preserves either encoding unchanged. */
|
|
5210
|
+
attestationNonce: string;
|
|
5211
|
+
attestationNonceData: components["schemas"]["AttestationNonceData"];
|
|
5212
|
+
/** @description EIP-191 65-byte secp256k1 signature, encoded as 0x-prefixed hex. */
|
|
5213
|
+
signature: string;
|
|
5214
|
+
};
|
|
5215
|
+
/** @description Latest diagnostic claimant and device snapshot. Values are best-effort and never participate in proof verification. */
|
|
5216
|
+
ClaimantDetails: {
|
|
5217
|
+
/**
|
|
5218
|
+
* Format: uuid
|
|
5219
|
+
* @description Verification Client installation identifier. The Builder also stores it in the session's dedicated claimantClientId field.
|
|
5220
|
+
*/
|
|
5221
|
+
claimantClientId: string;
|
|
5222
|
+
claimantId?: string;
|
|
5223
|
+
collectedAt?: components["schemas"]["Timestamp"];
|
|
5224
|
+
apiClient?: string;
|
|
5225
|
+
locale?: string;
|
|
5226
|
+
httpUserAgent?: string;
|
|
5227
|
+
client?: {
|
|
5228
|
+
[key: string]: unknown;
|
|
5229
|
+
};
|
|
5230
|
+
device?: {
|
|
5231
|
+
[key: string]: unknown;
|
|
5232
|
+
};
|
|
5233
|
+
operatingSystem?: {
|
|
5234
|
+
[key: string]: unknown;
|
|
5235
|
+
};
|
|
5236
|
+
browser?: {
|
|
5237
|
+
[key: string]: unknown;
|
|
5238
|
+
};
|
|
5239
|
+
viewport?: components["schemas"]["ClaimantDimensions"];
|
|
5240
|
+
display?: components["schemas"]["ClaimantDimensions"];
|
|
5241
|
+
network?: {
|
|
5242
|
+
reportedPublicIp?: string;
|
|
5243
|
+
serverObservedIp?: string;
|
|
5244
|
+
};
|
|
5245
|
+
metadata?: {
|
|
5246
|
+
[key: string]: unknown;
|
|
5247
|
+
};
|
|
5248
|
+
};
|
|
5249
|
+
ClaimantDimensions: {
|
|
5250
|
+
width: number;
|
|
5251
|
+
height: number;
|
|
5252
|
+
/** @enum {string} */
|
|
5253
|
+
unit: "css-px" | "logical-px" | "physical-px";
|
|
5254
|
+
};
|
|
5255
|
+
PatchVerificationClaimantRequest: components["schemas"]["ClaimantDetails"];
|
|
4594
5256
|
/** @description Body for `POST /verifications/sessions/{sessionId}/events`. Status ping only — never carries the proof (use the result endpoint for that). */
|
|
4595
5257
|
ReportEventRequest: {
|
|
4596
5258
|
event: components["schemas"]["VerificationEvent"];
|
|
4597
|
-
/** @description
|
|
5259
|
+
/** @description Client-observed event time. Omit it when the client cannot provide a trustworthy timestamp; the Builder then uses receive time. */
|
|
5260
|
+
occurredAt?: components["schemas"]["Timestamp"];
|
|
5261
|
+
/** @description Extra detail (for example, `claimantClientId`, or `requestId` for request-level events). */
|
|
4598
5262
|
eventData?: {
|
|
4599
5263
|
[key: string]: unknown;
|
|
4600
5264
|
};
|
|
@@ -4609,9 +5273,17 @@ export interface components {
|
|
|
4609
5273
|
eventData?: {
|
|
4610
5274
|
[key: string]: unknown;
|
|
4611
5275
|
};
|
|
5276
|
+
organizationId: components["schemas"]["OrgID"];
|
|
5277
|
+
/** Format: uuid */
|
|
5278
|
+
verificationClientId: string;
|
|
5279
|
+
providerId?: components["schemas"]["ProviderID"];
|
|
5280
|
+
resolvedVersion?: string;
|
|
5281
|
+
providerOrdinal?: number;
|
|
5282
|
+
occurredAt: components["schemas"]["Timestamp"];
|
|
5283
|
+
receivedAt: components["schemas"]["Timestamp"];
|
|
4612
5284
|
createdAt: components["schemas"]["Timestamp"];
|
|
4613
5285
|
};
|
|
4614
|
-
/** @description RFC 7515 JWS in General (or Flattened) JSON serialization. The signed verification result produced by the Verification Client — this is what the `data` field of a `VerificationResultDelivery` decrypts to. Signed ES256K (RFC 8812) over SHA-256 of `<protected>.<payload
|
|
5286
|
+
/** @description RFC 7515 JWS in General (or Flattened) JSON serialization. The signed verification result produced by the Verification Client — this is what the `data` field of a `VerificationResultDelivery` decrypts to. Signed ES256K (RFC 8812) over SHA-256 of `<protected>.<payload>`. Verify it with the Verification Client's registered issuer and JWKS URL; never derive a JWKS URL from JWS data. Its decoded payload is `VerificationResultPayload`. */
|
|
4615
5287
|
Jws: {
|
|
4616
5288
|
/** @description base64url-encoded JSON payload. */
|
|
4617
5289
|
payload: string;
|
|
@@ -4626,18 +5298,54 @@ export interface components {
|
|
|
4626
5298
|
signature: string;
|
|
4627
5299
|
}[];
|
|
4628
5300
|
};
|
|
4629
|
-
/** @description The JSON envelope POSTed to a callback subscription's `callbackUrl` (see the `verificationResult` webhook). `sessionId`, `event` and `timestamp` are unauthenticated plaintext routing hints; branch on `event` for the shape of `data`. **Terminal events** carry the signed result —
|
|
5301
|
+
/** @description The JSON envelope POSTed to a callback subscription's `callbackUrl` (see the `verificationResult` webhook). `sessionId`, `event` and `timestamp` are unauthenticated plaintext routing hints; branch on `event` for the shape of `data`. **Terminal result events** carry the signed result — an ECIES ciphertext (base64url, secp256k1 + AES-256-GCM) wrapping the signed JWS when the org has an encryption credential, else the plaintext signed JWS — act only on the signature-verified contents. **Non-terminal events** carry a plaintext, **unsigned** progress notification — advisory only; the signed terminal result is the source of truth. */
|
|
4630
5302
|
VerificationResultDelivery: {
|
|
4631
5303
|
sessionId: components["schemas"]["SessionID"];
|
|
4632
5304
|
/** @description The event that produced this delivery. */
|
|
4633
5305
|
event: components["schemas"]["VerificationEvent"];
|
|
4634
5306
|
timestamp: components["schemas"]["Timestamp"];
|
|
4635
|
-
/** @description Payload interpreted per `event`. Terminal events: the signed result — an **ECIES ciphertext** (base64url, secp256k1 + AES-256-GCM) wrapping the signed JWS when the org's `canEncryptResult` is enabled (decrypt with the matching eth private key to recover the inner JWS), else the JWS directly; the inner JWS parses as the `Jws` schema with payload `VerificationResultPayload`. Non-terminal events: plaintext JSON `{ event, eventData }` (unsigned). */
|
|
5307
|
+
/** @description Payload interpreted per `event`. Terminal result events: the signed result — an **ECIES ciphertext** (base64url, secp256k1 + AES-256-GCM) wrapping the signed JWS when the org's `canEncryptResult` is enabled (decrypt with the matching eth private key to recover the inner JWS), else the JWS directly; the inner JWS parses as the `Jws` schema with payload `VerificationResultPayload`. Non-terminal events: plaintext JSON `{ event, eventData }` (unsigned). */
|
|
4636
5308
|
data: string;
|
|
4637
5309
|
};
|
|
4638
|
-
/** @description
|
|
5310
|
+
/** @description Exact `Proof` object emitted by a legacy Reclaim Verification Client. The Verification Client must preserve this object without renaming, wrapping, or dropping fields. Consumers pass it directly to `@reclaimprotocol/client` `verifyProof`, normally through `verifyResultFull`. Do not trust any proof field until verification succeeds. */
|
|
5311
|
+
LegacyProof: {
|
|
5312
|
+
identifier: string;
|
|
5313
|
+
claimData: {
|
|
5314
|
+
provider: string;
|
|
5315
|
+
parameters: string;
|
|
5316
|
+
owner: string;
|
|
5317
|
+
/** Format: int64 */
|
|
5318
|
+
timestampS: number;
|
|
5319
|
+
context: string;
|
|
5320
|
+
identifier: string;
|
|
5321
|
+
/** Format: int64 */
|
|
5322
|
+
epoch: number;
|
|
5323
|
+
};
|
|
5324
|
+
signatures: string[];
|
|
5325
|
+
witnesses: ({
|
|
5326
|
+
id: string;
|
|
5327
|
+
url: string;
|
|
5328
|
+
claimAttestation?: {
|
|
5329
|
+
[key: string]: unknown;
|
|
5330
|
+
};
|
|
5331
|
+
} & {
|
|
5332
|
+
[key: string]: unknown;
|
|
5333
|
+
})[];
|
|
5334
|
+
/** @description Extraction values carried by the proof. Consumers trust only the values returned by `verifyProof` after successful verification. */
|
|
5335
|
+
extractedParameterValues: unknown;
|
|
5336
|
+
/** @description Provider-supplied data. This field isn't verified. */
|
|
5337
|
+
publicData?: unknown;
|
|
5338
|
+
/** Format: int64 */
|
|
5339
|
+
taskId?: number;
|
|
5340
|
+
teeAttestation?: {
|
|
5341
|
+
[key: string]: unknown;
|
|
5342
|
+
};
|
|
5343
|
+
} & {
|
|
5344
|
+
[key: string]: unknown;
|
|
5345
|
+
};
|
|
5346
|
+
/** @description The decoded payload of a signature-verified delivered result (the JWS itself is the `Jws` schema, signed ES256K by a key at the registered Verification Client JWKS URL). Consumers must compare `iss` with the registered issuer and use the separately registered JWKS URL; never derive a fetch URL from payload data. Consumers must also check `reclaimSessionId` against the session they created and `verification_session.status` for the outcome. `results` is present on success; `problem` (RFC 9457 shape) is set when the run failed. */
|
|
4639
5347
|
VerificationResultPayload: {
|
|
4640
|
-
/** @description Verification Client issuer URL. */
|
|
5348
|
+
/** @description Verification Client issuer URL. Compare this value with the registered issuer before fetching the separately registered JWKS. */
|
|
4641
5349
|
iss: string;
|
|
4642
5350
|
/** @description The session id (same as `reclaimSessionId`). */
|
|
4643
5351
|
sub: string;
|
|
@@ -4645,12 +5353,21 @@ export interface components {
|
|
|
4645
5353
|
aud: string;
|
|
4646
5354
|
/** Format: int64 */
|
|
4647
5355
|
iat: number;
|
|
4648
|
-
/**
|
|
4649
|
-
|
|
5356
|
+
/**
|
|
5357
|
+
* Format: int64
|
|
5358
|
+
* @deprecated
|
|
5359
|
+
* @description Legacy delivery-expiry claim. New Builder results omit it so a stored signed result and its proofs can be verified later.
|
|
5360
|
+
*/
|
|
5361
|
+
exp?: number;
|
|
4650
5362
|
reclaimSessionId: components["schemas"]["SessionID"];
|
|
4651
5363
|
verification_session: {
|
|
4652
5364
|
/** @enum {string} */
|
|
4653
5365
|
status: "success" | "rejected" | "error";
|
|
5366
|
+
/**
|
|
5367
|
+
* Format: uuid
|
|
5368
|
+
* @description Registered Verification Client that signed this result. Use it to resolve the trusted issuer and JWKS configuration.
|
|
5369
|
+
*/
|
|
5370
|
+
verification_client_id: string;
|
|
4654
5371
|
/** @description The providers verified in this session, in run order. */
|
|
4655
5372
|
providers: ({
|
|
4656
5373
|
provider_id: components["schemas"]["ProviderID"];
|
|
@@ -4675,14 +5392,15 @@ export interface components {
|
|
|
4675
5392
|
request_id?: string;
|
|
4676
5393
|
url?: string;
|
|
4677
5394
|
method?: string;
|
|
5395
|
+
/** @description Signed-envelope diagnostic copy. Don't trust this copy; use the data returned by `verifyProof`. */
|
|
4678
5396
|
extracted_parameters?: {
|
|
4679
5397
|
[key: string]: unknown;
|
|
4680
5398
|
};
|
|
5399
|
+
/** @description Signed-envelope diagnostic hash. Proof validation uses the exact proof and the resolved recipe/provider. */
|
|
4681
5400
|
content_hash?: string;
|
|
4682
5401
|
identifier?: string;
|
|
4683
5402
|
owner?: string;
|
|
4684
|
-
|
|
4685
|
-
proof?: unknown;
|
|
5403
|
+
proof: components["schemas"]["LegacyProof"];
|
|
4686
5404
|
} & {
|
|
4687
5405
|
[key: string]: unknown;
|
|
4688
5406
|
})[];
|
|
@@ -6048,7 +6766,7 @@ export interface operations {
|
|
|
6048
6766
|
default: components["responses"]["ProblemResponse"];
|
|
6049
6767
|
};
|
|
6050
6768
|
};
|
|
6051
|
-
|
|
6769
|
+
SetOrgPaymentAllowance: {
|
|
6052
6770
|
parameters: {
|
|
6053
6771
|
query?: never;
|
|
6054
6772
|
header?: never;
|
|
@@ -6059,18 +6777,18 @@ export interface operations {
|
|
|
6059
6777
|
};
|
|
6060
6778
|
requestBody: {
|
|
6061
6779
|
content: {
|
|
6062
|
-
"application/json": components["schemas"]["
|
|
6063
|
-
"application/x-www-form-urlencoded": components["schemas"]["
|
|
6780
|
+
"application/json": components["schemas"]["SetOrgPaymentAllowanceRequest"];
|
|
6781
|
+
"application/x-www-form-urlencoded": components["schemas"]["SetOrgPaymentAllowanceRequest"];
|
|
6064
6782
|
};
|
|
6065
6783
|
};
|
|
6066
6784
|
responses: {
|
|
6067
|
-
/** @description
|
|
6785
|
+
/** @description Payment-failure allowance updated */
|
|
6068
6786
|
200: {
|
|
6069
6787
|
headers: {
|
|
6070
6788
|
[name: string]: unknown;
|
|
6071
6789
|
};
|
|
6072
6790
|
content: {
|
|
6073
|
-
"application/json": components["schemas"]["
|
|
6791
|
+
"application/json": components["schemas"]["OrgPoolAllowanceResult"];
|
|
6074
6792
|
};
|
|
6075
6793
|
};
|
|
6076
6794
|
403: components["responses"]["ForbiddenResponse"];
|
|
@@ -6133,7 +6851,7 @@ export interface operations {
|
|
|
6133
6851
|
default: components["responses"]["ProblemResponse"];
|
|
6134
6852
|
};
|
|
6135
6853
|
};
|
|
6136
|
-
|
|
6854
|
+
SetOrgCreditAllowance: {
|
|
6137
6855
|
parameters: {
|
|
6138
6856
|
query?: never;
|
|
6139
6857
|
header?: never;
|
|
@@ -6144,18 +6862,18 @@ export interface operations {
|
|
|
6144
6862
|
};
|
|
6145
6863
|
requestBody: {
|
|
6146
6864
|
content: {
|
|
6147
|
-
"application/json": components["schemas"]["
|
|
6148
|
-
"application/x-www-form-urlencoded": components["schemas"]["
|
|
6865
|
+
"application/json": components["schemas"]["SetOrgCreditAllowanceRequest"];
|
|
6866
|
+
"application/x-www-form-urlencoded": components["schemas"]["SetOrgCreditAllowanceRequest"];
|
|
6149
6867
|
};
|
|
6150
6868
|
};
|
|
6151
6869
|
responses: {
|
|
6152
|
-
/** @description Credit
|
|
6870
|
+
/** @description Credit-exhaustion allowance updated */
|
|
6153
6871
|
200: {
|
|
6154
6872
|
headers: {
|
|
6155
6873
|
[name: string]: unknown;
|
|
6156
6874
|
};
|
|
6157
6875
|
content: {
|
|
6158
|
-
"application/json": components["schemas"]["
|
|
6876
|
+
"application/json": components["schemas"]["OrgPoolAllowanceResult"];
|
|
6159
6877
|
};
|
|
6160
6878
|
};
|
|
6161
6879
|
403: components["responses"]["ForbiddenResponse"];
|
|
@@ -6522,7 +7240,12 @@ export interface operations {
|
|
|
6522
7240
|
};
|
|
6523
7241
|
VerificationPage: {
|
|
6524
7242
|
parameters: {
|
|
6525
|
-
query?:
|
|
7243
|
+
query?: {
|
|
7244
|
+
/** @description Exact `1` enables diagnostic mode for this launch. */
|
|
7245
|
+
diag?: "1";
|
|
7246
|
+
/** @description Internal marker added after the claimant accepts organization consent. */
|
|
7247
|
+
consent?: "1";
|
|
7248
|
+
};
|
|
6526
7249
|
header?: never;
|
|
6527
7250
|
path: {
|
|
6528
7251
|
sessionId: components["schemas"]["SessionID"];
|
|
@@ -6715,6 +7438,8 @@ export interface operations {
|
|
|
6715
7438
|
keys: {
|
|
6716
7439
|
[key: string]: unknown;
|
|
6717
7440
|
}[];
|
|
7441
|
+
/** @description Trusted EIP-191 proof signer addresses. Consumers compare locally recovered proof signers with this registry. */
|
|
7442
|
+
"x-reclaim-attestors"?: string[];
|
|
6718
7443
|
};
|
|
6719
7444
|
};
|
|
6720
7445
|
};
|
|
@@ -8036,6 +8761,299 @@ export interface operations {
|
|
|
8036
8761
|
default: components["responses"]["ProblemResponse"];
|
|
8037
8762
|
};
|
|
8038
8763
|
};
|
|
8764
|
+
GetPublicContributionCampaign: {
|
|
8765
|
+
parameters: {
|
|
8766
|
+
query?: {
|
|
8767
|
+
/** @description Opaque attempt handle used to show resume status. It is not an authorization credential and has no effect on the campaign scope. */
|
|
8768
|
+
attempt?: components["schemas"]["ContributionAttemptID"];
|
|
8769
|
+
};
|
|
8770
|
+
header?: never;
|
|
8771
|
+
path: {
|
|
8772
|
+
publicId: components["schemas"]["ContributionPublicID"];
|
|
8773
|
+
};
|
|
8774
|
+
cookie?: never;
|
|
8775
|
+
};
|
|
8776
|
+
requestBody?: never;
|
|
8777
|
+
responses: {
|
|
8778
|
+
/** @description Public contribution brief. */
|
|
8779
|
+
200: {
|
|
8780
|
+
headers: {
|
|
8781
|
+
[name: string]: unknown;
|
|
8782
|
+
};
|
|
8783
|
+
content: {
|
|
8784
|
+
"text/html": components["schemas"]["HtmlContent"];
|
|
8785
|
+
"application/json": components["schemas"]["PublicContributionCampaign"];
|
|
8786
|
+
};
|
|
8787
|
+
};
|
|
8788
|
+
/** @description Campaign not found, closed, or not publicly available. */
|
|
8789
|
+
404: {
|
|
8790
|
+
headers: {
|
|
8791
|
+
[name: string]: unknown;
|
|
8792
|
+
};
|
|
8793
|
+
content?: never;
|
|
8794
|
+
};
|
|
8795
|
+
default: components["responses"]["ProblemResponse"];
|
|
8796
|
+
};
|
|
8797
|
+
};
|
|
8798
|
+
CreatePublicContributionAttempt: {
|
|
8799
|
+
parameters: {
|
|
8800
|
+
query?: never;
|
|
8801
|
+
header?: never;
|
|
8802
|
+
path: {
|
|
8803
|
+
publicId: components["schemas"]["ContributionPublicID"];
|
|
8804
|
+
};
|
|
8805
|
+
cookie?: never;
|
|
8806
|
+
};
|
|
8807
|
+
requestBody: {
|
|
8808
|
+
content: {
|
|
8809
|
+
"application/x-www-form-urlencoded": components["schemas"]["CreatePublicContributionAttemptRequest"];
|
|
8810
|
+
"application/json": components["schemas"]["CreatePublicContributionAttemptRequest"];
|
|
8811
|
+
};
|
|
8812
|
+
};
|
|
8813
|
+
responses: {
|
|
8814
|
+
/** @description Started attempt for JSON callers. */
|
|
8815
|
+
201: {
|
|
8816
|
+
headers: {
|
|
8817
|
+
[name: string]: unknown;
|
|
8818
|
+
};
|
|
8819
|
+
content: {
|
|
8820
|
+
"application/json": components["schemas"]["ContributionAttemptStart"];
|
|
8821
|
+
};
|
|
8822
|
+
};
|
|
8823
|
+
/** @description Redirect to the field-scoped verification URL. */
|
|
8824
|
+
303: {
|
|
8825
|
+
headers: {
|
|
8826
|
+
Location?: string;
|
|
8827
|
+
[name: string]: unknown;
|
|
8828
|
+
};
|
|
8829
|
+
content?: never;
|
|
8830
|
+
};
|
|
8831
|
+
/** @description Campaign or field not found, closed, or not public. */
|
|
8832
|
+
404: {
|
|
8833
|
+
headers: {
|
|
8834
|
+
[name: string]: unknown;
|
|
8835
|
+
};
|
|
8836
|
+
content?: never;
|
|
8837
|
+
};
|
|
8838
|
+
default: components["responses"]["ProblemResponse"];
|
|
8839
|
+
};
|
|
8840
|
+
};
|
|
8841
|
+
SubmitPublicContributionFeedback: {
|
|
8842
|
+
parameters: {
|
|
8843
|
+
query?: never;
|
|
8844
|
+
header?: never;
|
|
8845
|
+
path: {
|
|
8846
|
+
publicId: components["schemas"]["ContributionPublicID"];
|
|
8847
|
+
};
|
|
8848
|
+
cookie?: never;
|
|
8849
|
+
};
|
|
8850
|
+
requestBody: {
|
|
8851
|
+
content: {
|
|
8852
|
+
"application/x-www-form-urlencoded": components["schemas"]["PublicContributionFeedbackRequest"];
|
|
8853
|
+
"application/json": components["schemas"]["PublicContributionFeedbackRequest"];
|
|
8854
|
+
};
|
|
8855
|
+
};
|
|
8856
|
+
responses: {
|
|
8857
|
+
/** @description Feedback accepted for JSON callers. */
|
|
8858
|
+
204: {
|
|
8859
|
+
headers: {
|
|
8860
|
+
[name: string]: unknown;
|
|
8861
|
+
};
|
|
8862
|
+
content?: never;
|
|
8863
|
+
};
|
|
8864
|
+
/** @description Feedback accepted; redirect to the attempt status. */
|
|
8865
|
+
303: {
|
|
8866
|
+
headers: {
|
|
8867
|
+
Location?: string;
|
|
8868
|
+
[name: string]: unknown;
|
|
8869
|
+
};
|
|
8870
|
+
content?: never;
|
|
8871
|
+
};
|
|
8872
|
+
/** @description Campaign or capability not found. */
|
|
8873
|
+
404: {
|
|
8874
|
+
headers: {
|
|
8875
|
+
[name: string]: unknown;
|
|
8876
|
+
};
|
|
8877
|
+
content?: never;
|
|
8878
|
+
};
|
|
8879
|
+
default: components["responses"]["ProblemResponse"];
|
|
8880
|
+
};
|
|
8881
|
+
};
|
|
8882
|
+
ListProviderContributionCampaigns: {
|
|
8883
|
+
parameters: {
|
|
8884
|
+
query?: never;
|
|
8885
|
+
header?: never;
|
|
8886
|
+
path: {
|
|
8887
|
+
providerId: components["schemas"]["ProviderID"];
|
|
8888
|
+
};
|
|
8889
|
+
cookie?: never;
|
|
8890
|
+
};
|
|
8891
|
+
requestBody?: never;
|
|
8892
|
+
responses: {
|
|
8893
|
+
/** @description Campaigns and bounded contribution history. */
|
|
8894
|
+
200: {
|
|
8895
|
+
headers: {
|
|
8896
|
+
[name: string]: unknown;
|
|
8897
|
+
};
|
|
8898
|
+
content: {
|
|
8899
|
+
"text/html": components["schemas"]["HtmlContent"];
|
|
8900
|
+
"application/json": components["schemas"]["ContributionReviewDocument"];
|
|
8901
|
+
};
|
|
8902
|
+
};
|
|
8903
|
+
403: components["responses"]["ForbiddenResponse"];
|
|
8904
|
+
default: components["responses"]["ProblemResponse"];
|
|
8905
|
+
};
|
|
8906
|
+
};
|
|
8907
|
+
CreateProviderContributionCampaign: {
|
|
8908
|
+
parameters: {
|
|
8909
|
+
query?: never;
|
|
8910
|
+
header?: never;
|
|
8911
|
+
path: {
|
|
8912
|
+
providerId: components["schemas"]["ProviderID"];
|
|
8913
|
+
};
|
|
8914
|
+
cookie?: never;
|
|
8915
|
+
};
|
|
8916
|
+
requestBody: {
|
|
8917
|
+
content: {
|
|
8918
|
+
"application/x-www-form-urlencoded": components["schemas"]["CreateContributionCampaignRequest"];
|
|
8919
|
+
"application/json": components["schemas"]["CreateContributionCampaignRequest"];
|
|
8920
|
+
};
|
|
8921
|
+
};
|
|
8922
|
+
responses: {
|
|
8923
|
+
/** @description Draft campaign created. */
|
|
8924
|
+
201: {
|
|
8925
|
+
headers: {
|
|
8926
|
+
[name: string]: unknown;
|
|
8927
|
+
};
|
|
8928
|
+
content: {
|
|
8929
|
+
"application/json": components["schemas"]["ContributionCampaign"];
|
|
8930
|
+
};
|
|
8931
|
+
};
|
|
8932
|
+
403: components["responses"]["ForbiddenResponse"];
|
|
8933
|
+
default: components["responses"]["ProblemResponse"];
|
|
8934
|
+
};
|
|
8935
|
+
};
|
|
8936
|
+
SetProviderContributionCampaignStatus: {
|
|
8937
|
+
parameters: {
|
|
8938
|
+
query?: never;
|
|
8939
|
+
header?: never;
|
|
8940
|
+
path: {
|
|
8941
|
+
providerId: components["schemas"]["ProviderID"];
|
|
8942
|
+
campaignId: components["schemas"]["ContributionID"];
|
|
8943
|
+
};
|
|
8944
|
+
cookie?: never;
|
|
8945
|
+
};
|
|
8946
|
+
requestBody: {
|
|
8947
|
+
content: {
|
|
8948
|
+
"application/x-www-form-urlencoded": components["schemas"]["SetContributionCampaignStatusRequest"];
|
|
8949
|
+
"application/json": components["schemas"]["SetContributionCampaignStatusRequest"];
|
|
8950
|
+
};
|
|
8951
|
+
};
|
|
8952
|
+
responses: {
|
|
8953
|
+
/** @description Campaign status changed. */
|
|
8954
|
+
200: {
|
|
8955
|
+
headers: {
|
|
8956
|
+
[name: string]: unknown;
|
|
8957
|
+
};
|
|
8958
|
+
content: {
|
|
8959
|
+
"application/json": components["schemas"]["ContributionCampaign"];
|
|
8960
|
+
};
|
|
8961
|
+
};
|
|
8962
|
+
403: components["responses"]["ForbiddenResponse"];
|
|
8963
|
+
409: components["responses"]["ProblemResponse"];
|
|
8964
|
+
default: components["responses"]["ProblemResponse"];
|
|
8965
|
+
};
|
|
8966
|
+
};
|
|
8967
|
+
UpdateProviderContributionCampaign: {
|
|
8968
|
+
parameters: {
|
|
8969
|
+
query?: never;
|
|
8970
|
+
header?: never;
|
|
8971
|
+
path: {
|
|
8972
|
+
providerId: components["schemas"]["ProviderID"];
|
|
8973
|
+
campaignId: components["schemas"]["ContributionID"];
|
|
8974
|
+
};
|
|
8975
|
+
cookie?: never;
|
|
8976
|
+
};
|
|
8977
|
+
requestBody: {
|
|
8978
|
+
content: {
|
|
8979
|
+
"application/x-www-form-urlencoded": components["schemas"]["UpdateContributionCampaignRequest"];
|
|
8980
|
+
"application/json": components["schemas"]["UpdateContributionCampaignRequest"];
|
|
8981
|
+
};
|
|
8982
|
+
};
|
|
8983
|
+
responses: {
|
|
8984
|
+
/** @description Campaign updated. */
|
|
8985
|
+
200: {
|
|
8986
|
+
headers: {
|
|
8987
|
+
[name: string]: unknown;
|
|
8988
|
+
};
|
|
8989
|
+
content: {
|
|
8990
|
+
"application/json": components["schemas"]["ContributionCampaign"];
|
|
8991
|
+
};
|
|
8992
|
+
};
|
|
8993
|
+
403: components["responses"]["ForbiddenResponse"];
|
|
8994
|
+
default: components["responses"]["ProblemResponse"];
|
|
8995
|
+
};
|
|
8996
|
+
};
|
|
8997
|
+
CreateProviderContributionRequirementRevision: {
|
|
8998
|
+
parameters: {
|
|
8999
|
+
query?: never;
|
|
9000
|
+
header?: never;
|
|
9001
|
+
path: {
|
|
9002
|
+
providerId: components["schemas"]["ProviderID"];
|
|
9003
|
+
campaignId: components["schemas"]["ContributionID"];
|
|
9004
|
+
};
|
|
9005
|
+
cookie?: never;
|
|
9006
|
+
};
|
|
9007
|
+
requestBody: {
|
|
9008
|
+
content: {
|
|
9009
|
+
"application/x-www-form-urlencoded": components["schemas"]["CreateContributionRequirementRevisionRequest"];
|
|
9010
|
+
"application/json": components["schemas"]["CreateContributionRequirementRevisionRequest"];
|
|
9011
|
+
};
|
|
9012
|
+
};
|
|
9013
|
+
responses: {
|
|
9014
|
+
/** @description Immutable requirement revision created. */
|
|
9015
|
+
201: {
|
|
9016
|
+
headers: {
|
|
9017
|
+
[name: string]: unknown;
|
|
9018
|
+
};
|
|
9019
|
+
content: {
|
|
9020
|
+
"application/json": components["schemas"]["ContributionRequirementRevision"];
|
|
9021
|
+
};
|
|
9022
|
+
};
|
|
9023
|
+
403: components["responses"]["ForbiddenResponse"];
|
|
9024
|
+
default: components["responses"]["ProblemResponse"];
|
|
9025
|
+
};
|
|
9026
|
+
};
|
|
9027
|
+
AddProviderContributionComment: {
|
|
9028
|
+
parameters: {
|
|
9029
|
+
query?: never;
|
|
9030
|
+
header?: never;
|
|
9031
|
+
path: {
|
|
9032
|
+
providerId: components["schemas"]["ProviderID"];
|
|
9033
|
+
campaignId: components["schemas"]["ContributionID"];
|
|
9034
|
+
};
|
|
9035
|
+
cookie?: never;
|
|
9036
|
+
};
|
|
9037
|
+
requestBody: {
|
|
9038
|
+
content: {
|
|
9039
|
+
"application/x-www-form-urlencoded": components["schemas"]["AddContributionCommentRequest"];
|
|
9040
|
+
"application/json": components["schemas"]["AddContributionCommentRequest"];
|
|
9041
|
+
};
|
|
9042
|
+
};
|
|
9043
|
+
responses: {
|
|
9044
|
+
/** @description Comment added. */
|
|
9045
|
+
201: {
|
|
9046
|
+
headers: {
|
|
9047
|
+
[name: string]: unknown;
|
|
9048
|
+
};
|
|
9049
|
+
content: {
|
|
9050
|
+
"application/json": components["schemas"]["ContributionComment"];
|
|
9051
|
+
};
|
|
9052
|
+
};
|
|
9053
|
+
403: components["responses"]["ForbiddenResponse"];
|
|
9054
|
+
default: components["responses"]["ProblemResponse"];
|
|
9055
|
+
};
|
|
9056
|
+
};
|
|
8039
9057
|
GetProvider: {
|
|
8040
9058
|
parameters: {
|
|
8041
9059
|
query?: never;
|
|
@@ -8770,6 +9788,38 @@ export interface operations {
|
|
|
8770
9788
|
default: components["responses"]["ProblemResponse"];
|
|
8771
9789
|
};
|
|
8772
9790
|
};
|
|
9791
|
+
GetVerificationFunnel: {
|
|
9792
|
+
parameters: {
|
|
9793
|
+
query: {
|
|
9794
|
+
providerIds?: components["schemas"]["ProviderID"][];
|
|
9795
|
+
providerMatch?: "ANY" | "ALL";
|
|
9796
|
+
mode?: "SESSION" | "PROVIDER";
|
|
9797
|
+
/** @description Inclusive session creation time. */
|
|
9798
|
+
createdAfter: components["schemas"]["Timestamp"];
|
|
9799
|
+
/** @description Exclusive session creation time. */
|
|
9800
|
+
createdBefore: components["schemas"]["Timestamp"];
|
|
9801
|
+
};
|
|
9802
|
+
header?: never;
|
|
9803
|
+
path: {
|
|
9804
|
+
orgId: components["schemas"]["OrgID"];
|
|
9805
|
+
};
|
|
9806
|
+
cookie?: never;
|
|
9807
|
+
};
|
|
9808
|
+
requestBody?: never;
|
|
9809
|
+
responses: {
|
|
9810
|
+
/** @description Funnel calculated */
|
|
9811
|
+
200: {
|
|
9812
|
+
headers: {
|
|
9813
|
+
[name: string]: unknown;
|
|
9814
|
+
};
|
|
9815
|
+
content: {
|
|
9816
|
+
"application/json": components["schemas"]["VerificationFunnel"];
|
|
9817
|
+
};
|
|
9818
|
+
};
|
|
9819
|
+
403: components["responses"]["ForbiddenResponse"];
|
|
9820
|
+
default: components["responses"]["ProblemResponse"];
|
|
9821
|
+
};
|
|
9822
|
+
};
|
|
8773
9823
|
CreateVerificationSession: {
|
|
8774
9824
|
parameters: {
|
|
8775
9825
|
query?: never;
|
|
@@ -8801,7 +9851,7 @@ export interface operations {
|
|
|
8801
9851
|
"application/problem+json": components["schemas"]["Problem"];
|
|
8802
9852
|
};
|
|
8803
9853
|
};
|
|
8804
|
-
/** @description Overage paused — the organization is past its plan allowance, its prepaid credit balance is exhausted, and
|
|
9854
|
+
/** @description Overage paused — the organization is past its plan allowance, its prepaid credit balance is exhausted, and its per-pool credit-exhaustion allowance is depleted (`event: billing_required`). Requests within the plan allowance still succeed; add credits to resume overage. */
|
|
8805
9855
|
402: {
|
|
8806
9856
|
headers: {
|
|
8807
9857
|
[name: string]: unknown;
|
|
@@ -8819,7 +9869,7 @@ export interface operations {
|
|
|
8819
9869
|
"application/problem+json": components["schemas"]["Problem"];
|
|
8820
9870
|
};
|
|
8821
9871
|
};
|
|
8822
|
-
/** @description
|
|
9872
|
+
/** @description Verification quota exceeded (`event: billing_required` with a terminal `sessionId`). */
|
|
8823
9873
|
429: {
|
|
8824
9874
|
headers: {
|
|
8825
9875
|
[name: string]: unknown;
|
|
@@ -8876,17 +9926,19 @@ export interface operations {
|
|
|
8876
9926
|
/** @description One recipe per session provider, in run order. */
|
|
8877
9927
|
recipes: {
|
|
8878
9928
|
providerId: components["schemas"]["ProviderID"];
|
|
9929
|
+
/** @description Display-only provider branding. Verification Clients can use it in claimant-facing UI; it does not affect recipe execution or proof verification. */
|
|
9930
|
+
provider: components["schemas"]["VerificationBrand"];
|
|
8879
9931
|
resolvedVersion: string;
|
|
8880
9932
|
initialUrl: string;
|
|
8881
|
-
/** @description
|
|
9933
|
+
/** @description Legacy-only preference. Builder-mode sessions run the structured recipe and do not enable AI or manual verification. Dual-mode clients may use this value only on their legacy path. */
|
|
8882
9934
|
preferAiAgent: boolean;
|
|
8883
9935
|
/** @description The version's webSettings geoLocation template (`{{DYNAMIC_GEO}}` / `{{DYNAMIC_GEO_SECRET}}` / '' / ISO code), applied to this provider's requests. */
|
|
8884
9936
|
geoLocation?: string;
|
|
8885
9937
|
/** @description The version's webSettings.jsUserScripts — page JavaScript the Verification Client installs to run before every page load (before navigating to initialUrl), to drive login/navigation so the target requests fire. */
|
|
8886
9938
|
jsUserScripts?: string;
|
|
8887
|
-
|
|
8888
|
-
|
|
8889
|
-
|
|
9939
|
+
/** @description Browser client options from the resolved provider version. Verification Clients apply these options before opening the provider. */
|
|
9940
|
+
clientOptions?: components["schemas"]["ClientOptions"];
|
|
9941
|
+
requests: components["schemas"]["RequestSelection"][];
|
|
8890
9942
|
/** @description The version's allowedJsRequests — request-selection templates (with optional templateParams expansion) for requests fired by injected JS, which the Verification Client may additionally prove. */
|
|
8891
9943
|
allowedJsRequests?: components["schemas"]["RequestSelectionTemplate"][];
|
|
8892
9944
|
}[];
|
|
@@ -8897,6 +9949,62 @@ export interface operations {
|
|
|
8897
9949
|
default: components["responses"]["ProblemResponse"];
|
|
8898
9950
|
};
|
|
8899
9951
|
};
|
|
9952
|
+
BindVerificationSessionTeeNonce: {
|
|
9953
|
+
parameters: {
|
|
9954
|
+
query?: never;
|
|
9955
|
+
header?: never;
|
|
9956
|
+
path: {
|
|
9957
|
+
sessionId: components["schemas"]["SessionID"];
|
|
9958
|
+
};
|
|
9959
|
+
cookie?: never;
|
|
9960
|
+
};
|
|
9961
|
+
requestBody: {
|
|
9962
|
+
content: {
|
|
9963
|
+
"application/json": components["schemas"]["BindVerificationSessionTeeNonceRequest"];
|
|
9964
|
+
};
|
|
9965
|
+
};
|
|
9966
|
+
responses: {
|
|
9967
|
+
/** @description TEE nonce bound (or the exact previous binding was replayed) */
|
|
9968
|
+
200: {
|
|
9969
|
+
headers: {
|
|
9970
|
+
[name: string]: unknown;
|
|
9971
|
+
};
|
|
9972
|
+
content: {
|
|
9973
|
+
"application/json": components["schemas"]["VerificationSession"];
|
|
9974
|
+
};
|
|
9975
|
+
};
|
|
9976
|
+
/** @description Invalid binding, signature, key relationship, or timestamp */
|
|
9977
|
+
400: {
|
|
9978
|
+
headers: {
|
|
9979
|
+
[name: string]: unknown;
|
|
9980
|
+
};
|
|
9981
|
+
content: {
|
|
9982
|
+
"application/problem+json": components["schemas"]["Problem"];
|
|
9983
|
+
};
|
|
9984
|
+
};
|
|
9985
|
+
403: components["responses"]["ForbiddenResponse"];
|
|
9986
|
+
404: components["responses"]["ProblemResponse"];
|
|
9987
|
+
/** @description Binding conflicts with the immutable session state */
|
|
9988
|
+
409: {
|
|
9989
|
+
headers: {
|
|
9990
|
+
[name: string]: unknown;
|
|
9991
|
+
};
|
|
9992
|
+
content: {
|
|
9993
|
+
"application/problem+json": components["schemas"]["Problem"];
|
|
9994
|
+
};
|
|
9995
|
+
};
|
|
9996
|
+
/** @description The organization has no registered verification key */
|
|
9997
|
+
412: {
|
|
9998
|
+
headers: {
|
|
9999
|
+
[name: string]: unknown;
|
|
10000
|
+
};
|
|
10001
|
+
content: {
|
|
10002
|
+
"application/problem+json": components["schemas"]["Problem"];
|
|
10003
|
+
};
|
|
10004
|
+
};
|
|
10005
|
+
default: components["responses"]["ProblemResponse"];
|
|
10006
|
+
};
|
|
10007
|
+
};
|
|
8900
10008
|
ListVerificationEvents: {
|
|
8901
10009
|
parameters: {
|
|
8902
10010
|
query?: never;
|
|
@@ -8949,6 +10057,35 @@ export interface operations {
|
|
|
8949
10057
|
default: components["responses"]["ProblemResponse"];
|
|
8950
10058
|
};
|
|
8951
10059
|
};
|
|
10060
|
+
PatchVerificationClaimant: {
|
|
10061
|
+
parameters: {
|
|
10062
|
+
query?: never;
|
|
10063
|
+
header?: never;
|
|
10064
|
+
path: {
|
|
10065
|
+
sessionId: components["schemas"]["SessionID"];
|
|
10066
|
+
};
|
|
10067
|
+
cookie?: never;
|
|
10068
|
+
};
|
|
10069
|
+
requestBody: {
|
|
10070
|
+
content: {
|
|
10071
|
+
"application/json": components["schemas"]["PatchVerificationClaimantRequest"];
|
|
10072
|
+
};
|
|
10073
|
+
};
|
|
10074
|
+
responses: {
|
|
10075
|
+
/** @description Claimant details updated */
|
|
10076
|
+
200: {
|
|
10077
|
+
headers: {
|
|
10078
|
+
[name: string]: unknown;
|
|
10079
|
+
};
|
|
10080
|
+
content: {
|
|
10081
|
+
"application/json": components["schemas"]["VerificationSession"];
|
|
10082
|
+
};
|
|
10083
|
+
};
|
|
10084
|
+
403: components["responses"]["ForbiddenResponse"];
|
|
10085
|
+
404: components["responses"]["ProblemResponse"];
|
|
10086
|
+
default: components["responses"]["ProblemResponse"];
|
|
10087
|
+
};
|
|
10088
|
+
};
|
|
8952
10089
|
ListVerificationDeliveries: {
|
|
8953
10090
|
parameters: {
|
|
8954
10091
|
query?: never;
|