@peable.to/contracts 5.0.0 → 5.1.0

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.
@@ -128,6 +128,9 @@ exports.paymentIntentFaircoinSchema = (0, objects_1.defineComponent)('PaymentInt
128
128
  quote: exports.faircoinQuoteSchema
129
129
  .nullable()
130
130
  .describe('The fiat order this payment pays, as quoted (ADR 0021); `null` on a FAIR-priced payment.'),
131
+ recipient_key_replaced_at: primitives_1.unixSeconds
132
+ .nullable()
133
+ .describe("When Peable found that a recipient's identity key had been replaced after this payment's address was reserved, while the payer had already broadcast (ADR 0002, amended 2026-11-06). The coins are at the address reserved under the PREVIOUS key: spendable only with that key, which the recipient may no longer hold. `null` when every recorded key is still the recipient's `#key-1`, and on a payment written before keys were recorded. A payment nobody had paid yet is never left open under a replaced key: it is canceled with `cancellation_reason: recipient_key_changed`."),
131
134
  })
132
135
  .strict());
133
136
  /** Where a destination charge's funds go (`transfer_data`, ADR 0015 §2). */
@@ -99,7 +99,11 @@ exports.socialReceiveCursorSchema = (0, objects_1.defineComponent)('SocialReceiv
99
99
  identity_public_key: zod_1.z
100
100
  .string()
101
101
  .nullable()
102
- .describe('The identity public key (hex) those addresses derive from; `null` exactly when no address was ever reserved.'),
102
+ .describe('The identity public key (hex) those addresses derive from — the key recorded at the LAST reservation; `null` exactly when no address was ever reserved.'),
103
+ account_identity_public_key: zod_1.z
104
+ .string()
105
+ .nullable()
106
+ .describe("The caller's CURRENT identity public key: their DID's `#key-1`, read from Oxy at request time (never cached), as lowercase hex of the key exactly as the DID publishes it (`publicKeyHex`, the compressed secp256k1 key) — the same encoding as `identity_public_key`. Compare the device's key with THIS, not with `identity_public_key`, which only says what the last reservation used. `null` for a keyless (custodial) account."),
103
107
  })
104
108
  .strict());
105
109
  exports.socialPaymentsQuery = networkQuery;
@@ -154,6 +158,7 @@ exports.socialRoutes = [
154
158
  path: '/v1/social/me/cursor',
155
159
  tag: 'Social payments',
156
160
  summary: "Retrieve the caller's receive cursor",
161
+ description: "How far the caller's receive tree has been reserved, the key the last reservation used, and the caller's current `#key-1` read fresh from Oxy (ADR 0002). A 503 when Oxy cannot be asked for the current key.",
157
162
  auth: 'user',
158
163
  query: exports.socialReceiveCursorQuery,
159
164
  response: exports.socialReceiveCursorSchema,
@@ -26,14 +26,19 @@ exports.PAYMENT_INTENT_STATUSES = [
26
26
  'canceled',
27
27
  ];
28
28
  /**
29
- * Why an intent was cancelled — Stripe's reasons, plus `underpaid` (FairCoin
30
- * only: a transaction paid less than the amount).
29
+ * Why an intent was cancelled — Stripe's reasons, plus two FairCoin-only ones:
30
+ * `underpaid` (a transaction paid less than the amount) and
31
+ * `recipient_key_changed` (the recipient's identity key was replaced after the
32
+ * address was reserved, so the address is no longer in the wallet it pays —
33
+ * ADR 0002, amended 2026-11-06; nothing had been broadcast, and the order stays
34
+ * open for a fresh address).
31
35
  */
32
36
  exports.PAYMENT_INTENT_CANCELLATION_REASONS = [
33
37
  'abandoned',
34
38
  'automatic',
35
39
  'duplicate',
36
40
  'fraudulent',
41
+ 'recipient_key_changed',
37
42
  'requested_by_customer',
38
43
  'underpaid',
39
44
  ];
@@ -125,6 +125,9 @@ export const paymentIntentFaircoinSchema = defineComponent('PaymentIntentFaircoi
125
125
  quote: faircoinQuoteSchema
126
126
  .nullable()
127
127
  .describe('The fiat order this payment pays, as quoted (ADR 0021); `null` on a FAIR-priced payment.'),
128
+ recipient_key_replaced_at: unixSeconds
129
+ .nullable()
130
+ .describe("When Peable found that a recipient's identity key had been replaced after this payment's address was reserved, while the payer had already broadcast (ADR 0002, amended 2026-11-06). The coins are at the address reserved under the PREVIOUS key: spendable only with that key, which the recipient may no longer hold. `null` when every recorded key is still the recipient's `#key-1`, and on a payment written before keys were recorded. A payment nobody had paid yet is never left open under a replaced key: it is canceled with `cancellation_reason: recipient_key_changed`."),
128
131
  })
129
132
  .strict());
130
133
  /** Where a destination charge's funds go (`transfer_data`, ADR 0015 §2). */
@@ -96,7 +96,11 @@ export const socialReceiveCursorSchema = defineComponent('SocialReceiveCursor',
96
96
  identity_public_key: z
97
97
  .string()
98
98
  .nullable()
99
- .describe('The identity public key (hex) those addresses derive from; `null` exactly when no address was ever reserved.'),
99
+ .describe('The identity public key (hex) those addresses derive from — the key recorded at the LAST reservation; `null` exactly when no address was ever reserved.'),
100
+ account_identity_public_key: z
101
+ .string()
102
+ .nullable()
103
+ .describe("The caller's CURRENT identity public key: their DID's `#key-1`, read from Oxy at request time (never cached), as lowercase hex of the key exactly as the DID publishes it (`publicKeyHex`, the compressed secp256k1 key) — the same encoding as `identity_public_key`. Compare the device's key with THIS, not with `identity_public_key`, which only says what the last reservation used. `null` for a keyless (custodial) account."),
100
104
  })
101
105
  .strict());
102
106
  export const socialPaymentsQuery = networkQuery;
@@ -151,6 +155,7 @@ export const socialRoutes = [
151
155
  path: '/v1/social/me/cursor',
152
156
  tag: 'Social payments',
153
157
  summary: "Retrieve the caller's receive cursor",
158
+ description: "How far the caller's receive tree has been reserved, the key the last reservation used, and the caller's current `#key-1` read fresh from Oxy (ADR 0002). A 503 when Oxy cannot be asked for the current key.",
154
159
  auth: 'user',
155
160
  query: socialReceiveCursorQuery,
156
161
  response: socialReceiveCursorSchema,
@@ -23,14 +23,19 @@ export const PAYMENT_INTENT_STATUSES = [
23
23
  'canceled',
24
24
  ];
25
25
  /**
26
- * Why an intent was cancelled — Stripe's reasons, plus `underpaid` (FairCoin
27
- * only: a transaction paid less than the amount).
26
+ * Why an intent was cancelled — Stripe's reasons, plus two FairCoin-only ones:
27
+ * `underpaid` (a transaction paid less than the amount) and
28
+ * `recipient_key_changed` (the recipient's identity key was replaced after the
29
+ * address was reserved, so the address is no longer in the wallet it pays —
30
+ * ADR 0002, amended 2026-11-06; nothing had been broadcast, and the order stays
31
+ * open for a fresh address).
28
32
  */
29
33
  export const PAYMENT_INTENT_CANCELLATION_REASONS = [
30
34
  'abandoned',
31
35
  'automatic',
32
36
  'duplicate',
33
37
  'fraudulent',
38
+ 'recipient_key_changed',
34
39
  'requested_by_customer',
35
40
  'underpaid',
36
41
  ];
@@ -182,6 +182,7 @@ export declare const paymentsRoutes: readonly [{
182
182
  fraudulent: "fraudulent";
183
183
  abandoned: "abandoned";
184
184
  automatic: "automatic";
185
+ recipient_key_changed: "recipient_key_changed";
185
186
  requested_by_customer: "requested_by_customer";
186
187
  underpaid: "underpaid";
187
188
  }>>;
@@ -248,6 +249,7 @@ export declare const paymentsRoutes: readonly [{
248
249
  quoted_at: import("zod").ZodNumber;
249
250
  expires_at: import("zod").ZodNumber;
250
251
  }, import("zod/v4/core").$strict>>;
252
+ recipient_key_replaced_at: import("zod").ZodNullable<import("zod").ZodNumber>;
251
253
  }, import("zod/v4/core").$strict>>;
252
254
  merchant_id: import("zod").ZodString;
253
255
  connected_account: import("zod").ZodNullable<import("zod").ZodType<string | import("../..").Ref<"connected_account">, string | import("../..").Ref<"connected_account">, import("zod/v4/core").$ZodTypeInternals<string | import("../..").Ref<"connected_account">, string | import("../..").Ref<"connected_account">>>>;
@@ -404,6 +406,7 @@ export declare const paymentsRoutes: readonly [{
404
406
  fraudulent: "fraudulent";
405
407
  abandoned: "abandoned";
406
408
  automatic: "automatic";
409
+ recipient_key_changed: "recipient_key_changed";
407
410
  requested_by_customer: "requested_by_customer";
408
411
  underpaid: "underpaid";
409
412
  }>>;
@@ -470,6 +473,7 @@ export declare const paymentsRoutes: readonly [{
470
473
  quoted_at: import("zod").ZodNumber;
471
474
  expires_at: import("zod").ZodNumber;
472
475
  }, import("zod/v4/core").$strict>>;
476
+ recipient_key_replaced_at: import("zod").ZodNullable<import("zod").ZodNumber>;
473
477
  }, import("zod/v4/core").$strict>>;
474
478
  merchant_id: import("zod").ZodString;
475
479
  connected_account: import("zod").ZodNullable<import("zod").ZodType<string | import("../..").Ref<"connected_account">, string | import("../..").Ref<"connected_account">, import("zod/v4/core").$ZodTypeInternals<string | import("../..").Ref<"connected_account">, string | import("../..").Ref<"connected_account">>>>;
@@ -607,6 +611,7 @@ export declare const paymentsRoutes: readonly [{
607
611
  fraudulent: "fraudulent";
608
612
  abandoned: "abandoned";
609
613
  automatic: "automatic";
614
+ recipient_key_changed: "recipient_key_changed";
610
615
  requested_by_customer: "requested_by_customer";
611
616
  underpaid: "underpaid";
612
617
  }>>;
@@ -673,6 +678,7 @@ export declare const paymentsRoutes: readonly [{
673
678
  quoted_at: import("zod").ZodNumber;
674
679
  expires_at: import("zod").ZodNumber;
675
680
  }, import("zod/v4/core").$strict>>;
681
+ recipient_key_replaced_at: import("zod").ZodNullable<import("zod").ZodNumber>;
676
682
  }, import("zod/v4/core").$strict>>;
677
683
  merchant_id: import("zod").ZodString;
678
684
  connected_account: import("zod").ZodNullable<import("zod").ZodType<string | import("../..").Ref<"connected_account">, string | import("../..").Ref<"connected_account">, import("zod/v4/core").$ZodTypeInternals<string | import("../..").Ref<"connected_account">, string | import("../..").Ref<"connected_account">>>>;
@@ -824,6 +830,7 @@ export declare const paymentsRoutes: readonly [{
824
830
  fraudulent: "fraudulent";
825
831
  abandoned: "abandoned";
826
832
  automatic: "automatic";
833
+ recipient_key_changed: "recipient_key_changed";
827
834
  requested_by_customer: "requested_by_customer";
828
835
  underpaid: "underpaid";
829
836
  }>>;
@@ -890,6 +897,7 @@ export declare const paymentsRoutes: readonly [{
890
897
  quoted_at: import("zod").ZodNumber;
891
898
  expires_at: import("zod").ZodNumber;
892
899
  }, import("zod/v4/core").$strict>>;
900
+ recipient_key_replaced_at: import("zod").ZodNullable<import("zod").ZodNumber>;
893
901
  }, import("zod/v4/core").$strict>>;
894
902
  merchant_id: import("zod").ZodString;
895
903
  connected_account: import("zod").ZodNullable<import("zod").ZodType<string | import("../..").Ref<"connected_account">, string | import("../..").Ref<"connected_account">, import("zod/v4/core").$ZodTypeInternals<string | import("../..").Ref<"connected_account">, string | import("../..").Ref<"connected_account">>>>;
@@ -1071,6 +1079,7 @@ export declare const paymentsRoutes: readonly [{
1071
1079
  fraudulent: "fraudulent";
1072
1080
  abandoned: "abandoned";
1073
1081
  automatic: "automatic";
1082
+ recipient_key_changed: "recipient_key_changed";
1074
1083
  requested_by_customer: "requested_by_customer";
1075
1084
  underpaid: "underpaid";
1076
1085
  }>>;
@@ -1137,6 +1146,7 @@ export declare const paymentsRoutes: readonly [{
1137
1146
  quoted_at: import("zod").ZodNumber;
1138
1147
  expires_at: import("zod").ZodNumber;
1139
1148
  }, import("zod/v4/core").$strict>>;
1149
+ recipient_key_replaced_at: import("zod").ZodNullable<import("zod").ZodNumber>;
1140
1150
  }, import("zod/v4/core").$strict>>;
1141
1151
  merchant_id: import("zod").ZodString;
1142
1152
  connected_account: import("zod").ZodNullable<import("zod").ZodType<string | import("../..").Ref<"connected_account">, string | import("../..").Ref<"connected_account">, import("zod/v4/core").$ZodTypeInternals<string | import("../..").Ref<"connected_account">, string | import("../..").Ref<"connected_account">>>>;
@@ -1272,6 +1282,7 @@ export declare const paymentsRoutes: readonly [{
1272
1282
  fraudulent: "fraudulent";
1273
1283
  abandoned: "abandoned";
1274
1284
  automatic: "automatic";
1285
+ recipient_key_changed: "recipient_key_changed";
1275
1286
  requested_by_customer: "requested_by_customer";
1276
1287
  underpaid: "underpaid";
1277
1288
  }>>;
@@ -1338,6 +1349,7 @@ export declare const paymentsRoutes: readonly [{
1338
1349
  quoted_at: import("zod").ZodNumber;
1339
1350
  expires_at: import("zod").ZodNumber;
1340
1351
  }, import("zod/v4/core").$strict>>;
1352
+ recipient_key_replaced_at: import("zod").ZodNullable<import("zod").ZodNumber>;
1341
1353
  }, import("zod/v4/core").$strict>>;
1342
1354
  merchant_id: import("zod").ZodString;
1343
1355
  connected_account: import("zod").ZodNullable<import("zod").ZodType<string | import("../..").Ref<"connected_account">, string | import("../..").Ref<"connected_account">, import("zod/v4/core").$ZodTypeInternals<string | import("../..").Ref<"connected_account">, string | import("../..").Ref<"connected_account">>>>;
@@ -1478,6 +1490,7 @@ export declare const paymentsRoutes: readonly [{
1478
1490
  fraudulent: "fraudulent";
1479
1491
  abandoned: "abandoned";
1480
1492
  automatic: "automatic";
1493
+ recipient_key_changed: "recipient_key_changed";
1481
1494
  requested_by_customer: "requested_by_customer";
1482
1495
  underpaid: "underpaid";
1483
1496
  }>>;
@@ -1544,6 +1557,7 @@ export declare const paymentsRoutes: readonly [{
1544
1557
  quoted_at: import("zod").ZodNumber;
1545
1558
  expires_at: import("zod").ZodNumber;
1546
1559
  }, import("zod/v4/core").$strict>>;
1560
+ recipient_key_replaced_at: import("zod").ZodNullable<import("zod").ZodNumber>;
1547
1561
  }, import("zod/v4/core").$strict>>;
1548
1562
  merchant_id: import("zod").ZodString;
1549
1563
  connected_account: import("zod").ZodNullable<import("zod").ZodType<string | import("../..").Ref<"connected_account">, string | import("../..").Ref<"connected_account">, import("zod/v4/core").$ZodTypeInternals<string | import("../..").Ref<"connected_account">, string | import("../..").Ref<"connected_account">>>>;
@@ -1677,6 +1691,7 @@ export declare const paymentsRoutes: readonly [{
1677
1691
  fraudulent: "fraudulent";
1678
1692
  abandoned: "abandoned";
1679
1693
  automatic: "automatic";
1694
+ recipient_key_changed: "recipient_key_changed";
1680
1695
  requested_by_customer: "requested_by_customer";
1681
1696
  underpaid: "underpaid";
1682
1697
  }>>;
@@ -1743,6 +1758,7 @@ export declare const paymentsRoutes: readonly [{
1743
1758
  quoted_at: import("zod").ZodNumber;
1744
1759
  expires_at: import("zod").ZodNumber;
1745
1760
  }, import("zod/v4/core").$strict>>;
1761
+ recipient_key_replaced_at: import("zod").ZodNullable<import("zod").ZodNumber>;
1746
1762
  }, import("zod/v4/core").$strict>>;
1747
1763
  merchant_id: import("zod").ZodString;
1748
1764
  connected_account: import("zod").ZodNullable<import("zod").ZodType<string | import("../..").Ref<"connected_account">, string | import("../..").Ref<"connected_account">, import("zod/v4/core").$ZodTypeInternals<string | import("../..").Ref<"connected_account">, string | import("../..").Ref<"connected_account">>>>;
@@ -1876,6 +1892,7 @@ export declare const paymentsRoutes: readonly [{
1876
1892
  fraudulent: "fraudulent";
1877
1893
  abandoned: "abandoned";
1878
1894
  automatic: "automatic";
1895
+ recipient_key_changed: "recipient_key_changed";
1879
1896
  requested_by_customer: "requested_by_customer";
1880
1897
  underpaid: "underpaid";
1881
1898
  }>>;
@@ -1942,6 +1959,7 @@ export declare const paymentsRoutes: readonly [{
1942
1959
  quoted_at: import("zod").ZodNumber;
1943
1960
  expires_at: import("zod").ZodNumber;
1944
1961
  }, import("zod/v4/core").$strict>>;
1962
+ recipient_key_replaced_at: import("zod").ZodNullable<import("zod").ZodNumber>;
1945
1963
  }, import("zod/v4/core").$strict>>;
1946
1964
  merchant_id: import("zod").ZodString;
1947
1965
  connected_account: import("zod").ZodNullable<import("zod").ZodType<string | import("../..").Ref<"connected_account">, string | import("../..").Ref<"connected_account">, import("zod/v4/core").$ZodTypeInternals<string | import("../..").Ref<"connected_account">, string | import("../..").Ref<"connected_account">>>>;
@@ -3710,6 +3728,7 @@ export declare const paymentsRoutes: readonly [{
3710
3728
  readonly path: "/v1/social/me/cursor";
3711
3729
  readonly tag: "Social payments";
3712
3730
  readonly summary: "Retrieve the caller's receive cursor";
3731
+ readonly description: "How far the caller's receive tree has been reserved, the key the last reservation used, and the caller's current `#key-1` read fresh from Oxy (ADR 0002). A 503 when Oxy cannot be asked for the current key.";
3713
3732
  readonly auth: "user";
3714
3733
  readonly query: import("zod").ZodObject<{
3715
3734
  network: import("zod").ZodEnum<{
@@ -3720,6 +3739,7 @@ export declare const paymentsRoutes: readonly [{
3720
3739
  readonly response: import("zod").ZodObject<{
3721
3740
  reserved_through: import("zod").ZodNumber;
3722
3741
  identity_public_key: import("zod").ZodNullable<import("zod").ZodString>;
3742
+ account_identity_public_key: import("zod").ZodNullable<import("zod").ZodString>;
3723
3743
  }, import("zod/v4/core").$strict>;
3724
3744
  }, {
3725
3745
  readonly operationId: "listSocialPayments";
@@ -3895,6 +3915,7 @@ export declare const paymentsRoutes: readonly [{
3895
3915
  fraudulent: "fraudulent";
3896
3916
  abandoned: "abandoned";
3897
3917
  automatic: "automatic";
3918
+ recipient_key_changed: "recipient_key_changed";
3898
3919
  requested_by_customer: "requested_by_customer";
3899
3920
  underpaid: "underpaid";
3900
3921
  }>>;
@@ -3961,6 +3982,7 @@ export declare const paymentsRoutes: readonly [{
3961
3982
  quoted_at: import("zod").ZodNumber;
3962
3983
  expires_at: import("zod").ZodNumber;
3963
3984
  }, import("zod/v4/core").$strict>>;
3985
+ recipient_key_replaced_at: import("zod").ZodNullable<import("zod").ZodNumber>;
3964
3986
  }, import("zod/v4/core").$strict>>;
3965
3987
  merchant_id: import("zod").ZodString;
3966
3988
  connected_account: import("zod").ZodNullable<import("zod").ZodType<string | import("../..").Ref<"connected_account">, string | import("../..").Ref<"connected_account">, import("zod/v4/core").$ZodTypeInternals<string | import("../..").Ref<"connected_account">, string | import("../..").Ref<"connected_account">>>>;
@@ -141,6 +141,7 @@ export declare const paymentIntentFaircoinSchema: z.ZodObject<{
141
141
  quoted_at: z.ZodNumber;
142
142
  expires_at: z.ZodNumber;
143
143
  }, z.core.$strict>>;
144
+ recipient_key_replaced_at: z.ZodNullable<z.ZodNumber>;
144
145
  }, z.core.$strict>;
145
146
  export type PaymentIntentFaircoin = z.output<typeof paymentIntentFaircoinSchema>;
146
147
  /** Where a destination charge's funds go (`transfer_data`, ADR 0015 §2). */
@@ -265,6 +266,7 @@ export declare const paymentIntentSchema: z.ZodObject<{
265
266
  fraudulent: "fraudulent";
266
267
  abandoned: "abandoned";
267
268
  automatic: "automatic";
269
+ recipient_key_changed: "recipient_key_changed";
268
270
  requested_by_customer: "requested_by_customer";
269
271
  underpaid: "underpaid";
270
272
  }>>;
@@ -331,6 +333,7 @@ export declare const paymentIntentSchema: z.ZodObject<{
331
333
  quoted_at: z.ZodNumber;
332
334
  expires_at: z.ZodNumber;
333
335
  }, z.core.$strict>>;
336
+ recipient_key_replaced_at: z.ZodNullable<z.ZodNumber>;
334
337
  }, z.core.$strict>>;
335
338
  merchant_id: z.ZodString;
336
339
  connected_account: z.ZodNullable<z.ZodType<string | import("../..").Ref<"connected_account">, string | import("../..").Ref<"connected_account">, z.core.$ZodTypeInternals<string | import("../..").Ref<"connected_account">, string | import("../..").Ref<"connected_account">>>>;
@@ -771,6 +774,7 @@ export declare const paymentIntentRoutes: readonly [{
771
774
  fraudulent: "fraudulent";
772
775
  abandoned: "abandoned";
773
776
  automatic: "automatic";
777
+ recipient_key_changed: "recipient_key_changed";
774
778
  requested_by_customer: "requested_by_customer";
775
779
  underpaid: "underpaid";
776
780
  }>>;
@@ -837,6 +841,7 @@ export declare const paymentIntentRoutes: readonly [{
837
841
  quoted_at: z.ZodNumber;
838
842
  expires_at: z.ZodNumber;
839
843
  }, z.core.$strict>>;
844
+ recipient_key_replaced_at: z.ZodNullable<z.ZodNumber>;
840
845
  }, z.core.$strict>>;
841
846
  merchant_id: z.ZodString;
842
847
  connected_account: z.ZodNullable<z.ZodType<string | import("../..").Ref<"connected_account">, string | import("../..").Ref<"connected_account">, z.core.$ZodTypeInternals<string | import("../..").Ref<"connected_account">, string | import("../..").Ref<"connected_account">>>>;
@@ -993,6 +998,7 @@ export declare const paymentIntentRoutes: readonly [{
993
998
  fraudulent: "fraudulent";
994
999
  abandoned: "abandoned";
995
1000
  automatic: "automatic";
1001
+ recipient_key_changed: "recipient_key_changed";
996
1002
  requested_by_customer: "requested_by_customer";
997
1003
  underpaid: "underpaid";
998
1004
  }>>;
@@ -1059,6 +1065,7 @@ export declare const paymentIntentRoutes: readonly [{
1059
1065
  quoted_at: z.ZodNumber;
1060
1066
  expires_at: z.ZodNumber;
1061
1067
  }, z.core.$strict>>;
1068
+ recipient_key_replaced_at: z.ZodNullable<z.ZodNumber>;
1062
1069
  }, z.core.$strict>>;
1063
1070
  merchant_id: z.ZodString;
1064
1071
  connected_account: z.ZodNullable<z.ZodType<string | import("../..").Ref<"connected_account">, string | import("../..").Ref<"connected_account">, z.core.$ZodTypeInternals<string | import("../..").Ref<"connected_account">, string | import("../..").Ref<"connected_account">>>>;
@@ -1196,6 +1203,7 @@ export declare const paymentIntentRoutes: readonly [{
1196
1203
  fraudulent: "fraudulent";
1197
1204
  abandoned: "abandoned";
1198
1205
  automatic: "automatic";
1206
+ recipient_key_changed: "recipient_key_changed";
1199
1207
  requested_by_customer: "requested_by_customer";
1200
1208
  underpaid: "underpaid";
1201
1209
  }>>;
@@ -1262,6 +1270,7 @@ export declare const paymentIntentRoutes: readonly [{
1262
1270
  quoted_at: z.ZodNumber;
1263
1271
  expires_at: z.ZodNumber;
1264
1272
  }, z.core.$strict>>;
1273
+ recipient_key_replaced_at: z.ZodNullable<z.ZodNumber>;
1265
1274
  }, z.core.$strict>>;
1266
1275
  merchant_id: z.ZodString;
1267
1276
  connected_account: z.ZodNullable<z.ZodType<string | import("../..").Ref<"connected_account">, string | import("../..").Ref<"connected_account">, z.core.$ZodTypeInternals<string | import("../..").Ref<"connected_account">, string | import("../..").Ref<"connected_account">>>>;
@@ -1413,6 +1422,7 @@ export declare const paymentIntentRoutes: readonly [{
1413
1422
  fraudulent: "fraudulent";
1414
1423
  abandoned: "abandoned";
1415
1424
  automatic: "automatic";
1425
+ recipient_key_changed: "recipient_key_changed";
1416
1426
  requested_by_customer: "requested_by_customer";
1417
1427
  underpaid: "underpaid";
1418
1428
  }>>;
@@ -1479,6 +1489,7 @@ export declare const paymentIntentRoutes: readonly [{
1479
1489
  quoted_at: z.ZodNumber;
1480
1490
  expires_at: z.ZodNumber;
1481
1491
  }, z.core.$strict>>;
1492
+ recipient_key_replaced_at: z.ZodNullable<z.ZodNumber>;
1482
1493
  }, z.core.$strict>>;
1483
1494
  merchant_id: z.ZodString;
1484
1495
  connected_account: z.ZodNullable<z.ZodType<string | import("../..").Ref<"connected_account">, string | import("../..").Ref<"connected_account">, z.core.$ZodTypeInternals<string | import("../..").Ref<"connected_account">, string | import("../..").Ref<"connected_account">>>>;
@@ -1660,6 +1671,7 @@ export declare const paymentIntentRoutes: readonly [{
1660
1671
  fraudulent: "fraudulent";
1661
1672
  abandoned: "abandoned";
1662
1673
  automatic: "automatic";
1674
+ recipient_key_changed: "recipient_key_changed";
1663
1675
  requested_by_customer: "requested_by_customer";
1664
1676
  underpaid: "underpaid";
1665
1677
  }>>;
@@ -1726,6 +1738,7 @@ export declare const paymentIntentRoutes: readonly [{
1726
1738
  quoted_at: z.ZodNumber;
1727
1739
  expires_at: z.ZodNumber;
1728
1740
  }, z.core.$strict>>;
1741
+ recipient_key_replaced_at: z.ZodNullable<z.ZodNumber>;
1729
1742
  }, z.core.$strict>>;
1730
1743
  merchant_id: z.ZodString;
1731
1744
  connected_account: z.ZodNullable<z.ZodType<string | import("../..").Ref<"connected_account">, string | import("../..").Ref<"connected_account">, z.core.$ZodTypeInternals<string | import("../..").Ref<"connected_account">, string | import("../..").Ref<"connected_account">>>>;
@@ -1861,6 +1874,7 @@ export declare const paymentIntentRoutes: readonly [{
1861
1874
  fraudulent: "fraudulent";
1862
1875
  abandoned: "abandoned";
1863
1876
  automatic: "automatic";
1877
+ recipient_key_changed: "recipient_key_changed";
1864
1878
  requested_by_customer: "requested_by_customer";
1865
1879
  underpaid: "underpaid";
1866
1880
  }>>;
@@ -1927,6 +1941,7 @@ export declare const paymentIntentRoutes: readonly [{
1927
1941
  quoted_at: z.ZodNumber;
1928
1942
  expires_at: z.ZodNumber;
1929
1943
  }, z.core.$strict>>;
1944
+ recipient_key_replaced_at: z.ZodNullable<z.ZodNumber>;
1930
1945
  }, z.core.$strict>>;
1931
1946
  merchant_id: z.ZodString;
1932
1947
  connected_account: z.ZodNullable<z.ZodType<string | import("../..").Ref<"connected_account">, string | import("../..").Ref<"connected_account">, z.core.$ZodTypeInternals<string | import("../..").Ref<"connected_account">, string | import("../..").Ref<"connected_account">>>>;
@@ -2067,6 +2082,7 @@ export declare const paymentIntentRoutes: readonly [{
2067
2082
  fraudulent: "fraudulent";
2068
2083
  abandoned: "abandoned";
2069
2084
  automatic: "automatic";
2085
+ recipient_key_changed: "recipient_key_changed";
2070
2086
  requested_by_customer: "requested_by_customer";
2071
2087
  underpaid: "underpaid";
2072
2088
  }>>;
@@ -2133,6 +2149,7 @@ export declare const paymentIntentRoutes: readonly [{
2133
2149
  quoted_at: z.ZodNumber;
2134
2150
  expires_at: z.ZodNumber;
2135
2151
  }, z.core.$strict>>;
2152
+ recipient_key_replaced_at: z.ZodNullable<z.ZodNumber>;
2136
2153
  }, z.core.$strict>>;
2137
2154
  merchant_id: z.ZodString;
2138
2155
  connected_account: z.ZodNullable<z.ZodType<string | import("../..").Ref<"connected_account">, string | import("../..").Ref<"connected_account">, z.core.$ZodTypeInternals<string | import("../..").Ref<"connected_account">, string | import("../..").Ref<"connected_account">>>>;
@@ -2266,6 +2283,7 @@ export declare const paymentIntentRoutes: readonly [{
2266
2283
  fraudulent: "fraudulent";
2267
2284
  abandoned: "abandoned";
2268
2285
  automatic: "automatic";
2286
+ recipient_key_changed: "recipient_key_changed";
2269
2287
  requested_by_customer: "requested_by_customer";
2270
2288
  underpaid: "underpaid";
2271
2289
  }>>;
@@ -2332,6 +2350,7 @@ export declare const paymentIntentRoutes: readonly [{
2332
2350
  quoted_at: z.ZodNumber;
2333
2351
  expires_at: z.ZodNumber;
2334
2352
  }, z.core.$strict>>;
2353
+ recipient_key_replaced_at: z.ZodNullable<z.ZodNumber>;
2335
2354
  }, z.core.$strict>>;
2336
2355
  merchant_id: z.ZodString;
2337
2356
  connected_account: z.ZodNullable<z.ZodType<string | import("../..").Ref<"connected_account">, string | import("../..").Ref<"connected_account">, z.core.$ZodTypeInternals<string | import("../..").Ref<"connected_account">, string | import("../..").Ref<"connected_account">>>>;
@@ -2465,6 +2484,7 @@ export declare const paymentIntentRoutes: readonly [{
2465
2484
  fraudulent: "fraudulent";
2466
2485
  abandoned: "abandoned";
2467
2486
  automatic: "automatic";
2487
+ recipient_key_changed: "recipient_key_changed";
2468
2488
  requested_by_customer: "requested_by_customer";
2469
2489
  underpaid: "underpaid";
2470
2490
  }>>;
@@ -2531,6 +2551,7 @@ export declare const paymentIntentRoutes: readonly [{
2531
2551
  quoted_at: z.ZodNumber;
2532
2552
  expires_at: z.ZodNumber;
2533
2553
  }, z.core.$strict>>;
2554
+ recipient_key_replaced_at: z.ZodNullable<z.ZodNumber>;
2534
2555
  }, z.core.$strict>>;
2535
2556
  merchant_id: z.ZodString;
2536
2557
  connected_account: z.ZodNullable<z.ZodType<string | import("../..").Ref<"connected_account">, string | import("../..").Ref<"connected_account">, z.core.$ZodTypeInternals<string | import("../..").Ref<"connected_account">, string | import("../..").Ref<"connected_account">>>>;
@@ -76,6 +76,7 @@ export type SocialReceiveCursorParams = z.input<typeof socialReceiveCursorQuery>
76
76
  export declare const socialReceiveCursorSchema: z.ZodObject<{
77
77
  reserved_through: z.ZodNumber;
78
78
  identity_public_key: z.ZodNullable<z.ZodString>;
79
+ account_identity_public_key: z.ZodNullable<z.ZodString>;
79
80
  }, z.core.$strict>;
80
81
  export type SocialReceiveCursorResponse = z.output<typeof socialReceiveCursorSchema>;
81
82
  export declare const socialPaymentsQuery: z.ZodObject<{
@@ -190,6 +191,7 @@ export declare const socialRoutes: readonly [{
190
191
  readonly path: "/v1/social/me/cursor";
191
192
  readonly tag: "Social payments";
192
193
  readonly summary: "Retrieve the caller's receive cursor";
194
+ readonly description: "How far the caller's receive tree has been reserved, the key the last reservation used, and the caller's current `#key-1` read fresh from Oxy (ADR 0002). A 503 when Oxy cannot be asked for the current key.";
193
195
  readonly auth: "user";
194
196
  readonly query: z.ZodObject<{
195
197
  network: z.ZodEnum<{
@@ -200,6 +202,7 @@ export declare const socialRoutes: readonly [{
200
202
  readonly response: z.ZodObject<{
201
203
  reserved_through: z.ZodNumber;
202
204
  identity_public_key: z.ZodNullable<z.ZodString>;
205
+ account_identity_public_key: z.ZodNullable<z.ZodString>;
203
206
  }, z.core.$strict>;
204
207
  }, {
205
208
  readonly operationId: "listSocialPayments";
@@ -124,6 +124,7 @@ export declare const paymentIntentTestHelperRoutes: readonly [{
124
124
  fraudulent: "fraudulent";
125
125
  abandoned: "abandoned";
126
126
  automatic: "automatic";
127
+ recipient_key_changed: "recipient_key_changed";
127
128
  requested_by_customer: "requested_by_customer";
128
129
  underpaid: "underpaid";
129
130
  }>>;
@@ -190,6 +191,7 @@ export declare const paymentIntentTestHelperRoutes: readonly [{
190
191
  quoted_at: z.ZodNumber;
191
192
  expires_at: z.ZodNumber;
192
193
  }, z.core.$strict>>;
194
+ recipient_key_replaced_at: z.ZodNullable<z.ZodNumber>;
193
195
  }, z.core.$strict>>;
194
196
  merchant_id: z.ZodString;
195
197
  connected_account: z.ZodNullable<z.ZodType<string | import("../..").Ref<"connected_account">, string | import("../..").Ref<"connected_account">, z.core.$ZodTypeInternals<string | import("../..").Ref<"connected_account">, string | import("../..").Ref<"connected_account">>>>;
@@ -13,10 +13,14 @@ export type PaymentIntentRail = (typeof PAYMENT_INTENT_RAILS)[number];
13
13
  export declare const PAYMENT_INTENT_STATUSES: readonly ["requires_payment_method", "requires_confirmation", "requires_action", "processing", "requires_capture", "succeeded", "canceled"];
14
14
  export type PaymentIntentStatus = (typeof PAYMENT_INTENT_STATUSES)[number];
15
15
  /**
16
- * Why an intent was cancelled — Stripe's reasons, plus `underpaid` (FairCoin
17
- * only: a transaction paid less than the amount).
16
+ * Why an intent was cancelled — Stripe's reasons, plus two FairCoin-only ones:
17
+ * `underpaid` (a transaction paid less than the amount) and
18
+ * `recipient_key_changed` (the recipient's identity key was replaced after the
19
+ * address was reserved, so the address is no longer in the wallet it pays —
20
+ * ADR 0002, amended 2026-11-06; nothing had been broadcast, and the order stays
21
+ * open for a fresh address).
18
22
  */
19
- export declare const PAYMENT_INTENT_CANCELLATION_REASONS: readonly ["abandoned", "automatic", "duplicate", "fraudulent", "requested_by_customer", "underpaid"];
23
+ export declare const PAYMENT_INTENT_CANCELLATION_REASONS: readonly ["abandoned", "automatic", "duplicate", "fraudulent", "recipient_key_changed", "requested_by_customer", "underpaid"];
20
24
  export type PaymentIntentCancellationReason = (typeof PAYMENT_INTENT_CANCELLATION_REASONS)[number];
21
25
  /** The reasons a MERCHANT may give `POST /v1/payment_intents/:id/cancel`. */
22
26
  export declare const MERCHANT_CANCELLATION_REASONS: readonly ["abandoned", "duplicate", "fraudulent", "requested_by_customer"];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@peable.to/contracts",
3
- "version": "5.0.0",
3
+ "version": "5.1.0",
4
4
  "description": "The Peable wire, declared once: Zod contracts of every public route, the OpenAPI 3.1 generator and the closed value sets (ADR 0014 D5).",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",