@peable.to/contracts 3.0.0 → 3.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.
@@ -26,7 +26,7 @@ exports.webhookDeliverySchema = (0, objects_1.defineObject)('webhook_delivery',
26
26
  delivered: zod_1.z.boolean(),
27
27
  last_status: zod_1.z
28
28
  .enum(events_1.WEBHOOK_DELIVERY_STATUSES)
29
- .describe('`pending`: will be attempted (`next_attempt_at`). `delivered`: terminal success. `failed`: the endpoint refused it (a 4xx, a blocked address) or was disabled first — never retried. `dead`: every attempt failed transiently for three days; it can be redelivered.'),
29
+ .describe('`pending`: will be attempted (`next_attempt_at`). `delivered`: terminal success. `failed`: the endpoint refused it (a 4xx, a blocked address), was disabled first, or its stored url breaks the registration rules — never retried. `dead`: every attempt failed transiently for three days; it can be redelivered.'),
30
30
  last_error: zod_1.z
31
31
  .string()
32
32
  .optional()
@@ -29,7 +29,7 @@ const endpointShape = {
29
29
  disabled_reason: zod_1.z
30
30
  .enum(events_1.WEBHOOK_ENDPOINT_DISABLED_REASONS)
31
31
  .nullable()
32
- .describe('`null` exactly when `status` is `enabled`. `delivery_failures`: every delivery failed for three days straight.'),
32
+ .describe('`null` exactly when `status` is `enabled`. `delivery_failures`: every delivery failed for three days straight. `url_refused`: the stored `url` breaks the registration rules, judged before every delivery; re-enable it with a `url` that passes.'),
33
33
  api_version: zod_1.z.string().describe('The wire version events are rendered with for this endpoint.'),
34
34
  metadata: primitives_1.metadata,
35
35
  created: primitives_1.unixSeconds,
@@ -7,6 +7,7 @@ const objects_1 = require("../../common/objects");
7
7
  const params_1 = require("../../common/params");
8
8
  const primitives_1 = require("../../common/primitives");
9
9
  const route_1 = require("../../route");
10
+ const refunds_1 = require("./refunds");
10
11
  const payments_1 = require("../../vocabulary/payments");
11
12
  /**
12
13
  * Disputes (`dp_…`) — the card network holding a payment's money while a
@@ -201,4 +202,19 @@ exports.disputeRoutes = [
201
202
  response: exports.disputeSchema,
202
203
  sdk: 'disputes.close',
203
204
  }),
205
+ (0, route_1.defineRoute)({
206
+ operationId: 'retrieveDisputeSettlement',
207
+ method: 'get',
208
+ path: '/v1/disputes/{disputeId}/settlement',
209
+ tag: 'Disputes',
210
+ summary: "Retrieve a dispute's settlement",
211
+ description: 'What the dispute WITHDREW from the settlement balance — `gross` the principal, `fee` the dispute fee, a negative `net` — in the settlement currency, read live from the provider. An inquiry moves no money: `unknown`, every figure `null`, never `0`. A reinstatement after a won dispute is not this figure.',
212
+ auth: 'service',
213
+ scope: 'payments:read',
214
+ params: disputeId,
215
+ query: params_1.expandOnlyQuery,
216
+ response: refunds_1.settlementSchema,
217
+ sdk: 'disputes.settlement',
218
+ expandable: 'settlement',
219
+ }),
204
220
  ];
@@ -10,7 +10,8 @@ const route_1 = require("../../route");
10
10
  const money_1 = require("../../vocabulary/money");
11
11
  const payments_1 = require("../../vocabulary/payments");
12
12
  /**
13
- * Refunds (`re_…`) and a payment's settlement figures. The provider's own
13
+ * Refunds (`re_…`) and the settlement figures of a payment, a refund or a
14
+ * dispute. The provider's own
14
15
  * refund id never appears: a merchant integrates against Peable and never
15
16
  * learns which acquirer sat behind it (ADR 0001 D3).
16
17
  */
@@ -56,23 +57,42 @@ exports.refundSchema = (0, objects_1.defineObject)('refund', 'Refund', zod_1.z
56
57
  ],
57
58
  });
58
59
  /**
59
- * What a payment actually came to, as the PROVIDER reports it. Every figure is
60
- * nullable and that is the contract: "the fee was zero" and "the fee is not
61
- * known yet" are different facts, and `status` says which produced the nulls.
62
- * It reports what the provider took; it attributes that cost to nobody.
60
+ * One movement of the settlement balance, as the PROVIDER reports it: what a
61
+ * payment brought in (`GET /v1/payment_intents/{intentId}/settlement`), what a
62
+ * refund took out (`GET /v1/refunds/{id}/settlement`) or what a dispute
63
+ * withdrew (`GET /v1/disputes/{disputeId}/settlement`). `refund` and `dispute`
64
+ * say which: both `null` for a payment's.
65
+ *
66
+ * Every figure is nullable and that is the contract: "the fee was zero" and
67
+ * "the fee is not known yet" are different facts, and `status` says which
68
+ * produced the nulls. It reports what the provider took; it attributes that
69
+ * cost to nobody.
70
+ *
71
+ * The signs: `gross` is the MAGNITUDE of the movement, `fee` the provider's fee
72
+ * on it (positive when charged, negative when returned), `net` its SIGNED
73
+ * effect on the balance — so `net = gross − fee` for a payment and
74
+ * `net = −gross − fee` for a refund or a dispute.
63
75
  */
64
76
  exports.settlementSchema = (0, objects_1.defineObject)('settlement', 'Settlement', zod_1.z
65
77
  .object({
66
78
  object: zod_1.z.literal('settlement'),
67
79
  livemode: primitives_1.livemode,
68
- payment_intent: (0, objects_1.expandable)('payment_intent', 'The `pi_…` this describes, or the PaymentIntent with `expand[]=payment_intent`.'),
80
+ payment_intent: (0, objects_1.expandable)('payment_intent', 'The `pi_…` this describes (the refunded or disputed payment, for a refund or a dispute), or the PaymentIntent with `expand[]=payment_intent`.'),
81
+ refund: (0, objects_1.expandable)('refund', 'The `re_…` whose movement this is, or the Refund with `expand[]=refund`; `null` unless this is the settlement of a refund.').nullable(),
82
+ dispute: (0, objects_1.expandable)('dispute', 'The `dp_…` whose withdrawal this is, or the Dispute with `expand[]=dispute`; `null` unless this is the settlement of a dispute.').nullable(),
69
83
  status: zod_1.z
70
84
  .enum(payments_1.SETTLEMENT_STATUSES)
71
- .describe('`available`: settled, the figures are final; `pending`: not final yet; `unknown`: there is none to read — **not zero**.'),
72
- gross: primitives_1.amount.nullable().describe('Base units of `currency`.'),
73
- fee: primitives_1.amount.nullable(),
74
- net: primitives_1.signedAmount.nullable(),
75
- currency: primitives_1.nullableString.describe("The SETTLEMENT currency (uppercase ISO 4217), which may differ from the payment's."),
85
+ .describe('`available`: settled, the figures are final; `pending`: not final yet; `unknown`: there is none to read — **not zero**. A dispute inquiry, which moves no money, and a refund that failed or was canceled are `unknown`.'),
86
+ gross: primitives_1.amount
87
+ .nullable()
88
+ .describe('The MAGNITUDE of the movement, never negative, in base units of `currency`: what the payment brought in, the refund took out or the dispute withdrew.'),
89
+ fee: primitives_1.signedAmount
90
+ .nullable()
91
+ .describe("The provider's fee on THIS movement, as the provider signs it: positive when charged to the balance (a payment's processing fee, a dispute fee), negative when returned to it (part of the original fee on some refunds). A refund's is usually `0`."),
92
+ net: primitives_1.signedAmount
93
+ .nullable()
94
+ .describe('The SIGNED effect on the balance: positive for a payment, negative for a refund or a dispute. Always `gross − fee` for a payment and `−gross − fee` for a refund or a dispute.'),
95
+ currency: primitives_1.nullableString.describe("The SETTLEMENT currency (uppercase ISO 4217) every figure is in, which may differ from the payment's, refund's or dispute's."),
76
96
  available_on: primitives_1.unixSeconds.nullable().describe('When the funds become available.'),
77
97
  exchange_rate: zod_1.z
78
98
  .number()
@@ -228,6 +248,21 @@ exports.refundRoutes = [
228
248
  sdk: 'refunds.settlement',
229
249
  expandable: 'settlement',
230
250
  }),
251
+ (0, route_1.defineRoute)({
252
+ operationId: 'retrieveRefundSettlement',
253
+ method: 'get',
254
+ path: '/v1/refunds/{id}/settlement',
255
+ tag: 'Refunds',
256
+ summary: "Retrieve a refund's settlement",
257
+ description: 'What the refund took off the settlement balance — `gross`, `fee`, a negative `net` — in the settlement currency, read live from the provider. A missing figure is `null` with a `status`, never `0`; a refund that failed or was canceled is `unknown`.',
258
+ auth: 'service',
259
+ scope: 'payments:read',
260
+ params: refundId,
261
+ query: params_1.expandOnlyQuery,
262
+ response: exports.settlementSchema,
263
+ sdk: 'refunds.refundSettlement',
264
+ expandable: 'settlement',
265
+ }),
231
266
  (0, route_1.defineRoute)({
232
267
  operationId: 'searchRefunds',
233
268
  method: 'get',
@@ -150,10 +150,15 @@ exports.WEBHOOK_ENDPOINT_STATUSES = ['enabled', 'disabled'];
150
150
  * - `delivery_failures` — every delivery to it failed for three days
151
151
  * straight, so Peable stopped sending. Re-enabling it (`disabled: false`)
152
152
  * starts the clock again.
153
+ * - `url_refused` — its stored `url` breaks the rules a URL is
154
+ * registered under (https in live mode, ports 80/443, no private, loopback
155
+ * or reserved address), judged again before every delivery, so Peable never
156
+ * sent to it. It is re-enabled only together with a `url` that passes.
153
157
  */
154
158
  exports.WEBHOOK_ENDPOINT_DISABLED_REASONS = [
155
159
  'disabled_by_merchant',
156
160
  'delivery_failures',
161
+ 'url_refused',
157
162
  ];
158
163
  /** At most this many endpoints per merchant (per mode). */
159
164
  exports.WEBHOOK_ENDPOINTS_MAX_PER_MERCHANT = 16;
@@ -23,7 +23,7 @@ export const webhookDeliverySchema = defineObject('webhook_delivery', 'WebhookDe
23
23
  delivered: z.boolean(),
24
24
  last_status: z
25
25
  .enum(WEBHOOK_DELIVERY_STATUSES)
26
- .describe('`pending`: will be attempted (`next_attempt_at`). `delivered`: terminal success. `failed`: the endpoint refused it (a 4xx, a blocked address) or was disabled first — never retried. `dead`: every attempt failed transiently for three days; it can be redelivered.'),
26
+ .describe('`pending`: will be attempted (`next_attempt_at`). `delivered`: terminal success. `failed`: the endpoint refused it (a 4xx, a blocked address), was disabled first, or its stored url breaks the registration rules — never retried. `dead`: every attempt failed transiently for three days; it can be redelivered.'),
27
27
  last_error: z
28
28
  .string()
29
29
  .optional()
@@ -26,7 +26,7 @@ const endpointShape = {
26
26
  disabled_reason: z
27
27
  .enum(WEBHOOK_ENDPOINT_DISABLED_REASONS)
28
28
  .nullable()
29
- .describe('`null` exactly when `status` is `enabled`. `delivery_failures`: every delivery failed for three days straight.'),
29
+ .describe('`null` exactly when `status` is `enabled`. `delivery_failures`: every delivery failed for three days straight. `url_refused`: the stored `url` breaks the registration rules, judged before every delivery; re-enable it with a `url` that passes.'),
30
30
  api_version: z.string().describe('The wire version events are rendered with for this endpoint.'),
31
31
  metadata,
32
32
  created: unixSeconds,
@@ -4,6 +4,7 @@ import { defineComponent, defineObject, expandable } from '../../common/objects.
4
4
  import { expandOnlyQuery, idParam, listQuery, metadataUpdateParam } from '../../common/params.js';
5
5
  import { amount, currency, livemode, metadata, unixSeconds } from '../../common/primitives.js';
6
6
  import { defineRoute } from '../../route.js';
7
+ import { settlementSchema } from './refunds.js';
7
8
  import { DISPUTE_EVIDENCE_TEXT_MAX, DISPUTE_FILE_EVIDENCE_FIELDS, DISPUTE_REASONS, DISPUTE_STATUSES, DISPUTE_TEXT_EVIDENCE_FIELDS, } from '../../vocabulary/payments.js';
8
9
  /**
9
10
  * Disputes (`dp_…`) — the card network holding a payment's money while a
@@ -198,4 +199,19 @@ export const disputeRoutes = [
198
199
  response: disputeSchema,
199
200
  sdk: 'disputes.close',
200
201
  }),
202
+ defineRoute({
203
+ operationId: 'retrieveDisputeSettlement',
204
+ method: 'get',
205
+ path: '/v1/disputes/{disputeId}/settlement',
206
+ tag: 'Disputes',
207
+ summary: "Retrieve a dispute's settlement",
208
+ description: 'What the dispute WITHDREW from the settlement balance — `gross` the principal, `fee` the dispute fee, a negative `net` — in the settlement currency, read live from the provider. An inquiry moves no money: `unknown`, every figure `null`, never `0`. A reinstatement after a won dispute is not this figure.',
209
+ auth: 'service',
210
+ scope: 'payments:read',
211
+ params: disputeId,
212
+ query: expandOnlyQuery,
213
+ response: settlementSchema,
214
+ sdk: 'disputes.settlement',
215
+ expandable: 'settlement',
216
+ }),
201
217
  ];
@@ -7,7 +7,8 @@ import { defineRoute } from '../../route.js';
7
7
  import { isBaseUnitString } from '../../vocabulary/money.js';
8
8
  import { REFUND_ORIGINS, REFUND_REASONS, REFUND_STATUSES, SETTLEMENT_STATUSES, } from '../../vocabulary/payments.js';
9
9
  /**
10
- * Refunds (`re_…`) and a payment's settlement figures. The provider's own
10
+ * Refunds (`re_…`) and the settlement figures of a payment, a refund or a
11
+ * dispute. The provider's own
11
12
  * refund id never appears: a merchant integrates against Peable and never
12
13
  * learns which acquirer sat behind it (ADR 0001 D3).
13
14
  */
@@ -53,23 +54,42 @@ export const refundSchema = defineObject('refund', 'Refund', z
53
54
  ],
54
55
  });
55
56
  /**
56
- * What a payment actually came to, as the PROVIDER reports it. Every figure is
57
- * nullable and that is the contract: "the fee was zero" and "the fee is not
58
- * known yet" are different facts, and `status` says which produced the nulls.
59
- * It reports what the provider took; it attributes that cost to nobody.
57
+ * One movement of the settlement balance, as the PROVIDER reports it: what a
58
+ * payment brought in (`GET /v1/payment_intents/{intentId}/settlement`), what a
59
+ * refund took out (`GET /v1/refunds/{id}/settlement`) or what a dispute
60
+ * withdrew (`GET /v1/disputes/{disputeId}/settlement`). `refund` and `dispute`
61
+ * say which: both `null` for a payment's.
62
+ *
63
+ * Every figure is nullable and that is the contract: "the fee was zero" and
64
+ * "the fee is not known yet" are different facts, and `status` says which
65
+ * produced the nulls. It reports what the provider took; it attributes that
66
+ * cost to nobody.
67
+ *
68
+ * The signs: `gross` is the MAGNITUDE of the movement, `fee` the provider's fee
69
+ * on it (positive when charged, negative when returned), `net` its SIGNED
70
+ * effect on the balance — so `net = gross − fee` for a payment and
71
+ * `net = −gross − fee` for a refund or a dispute.
60
72
  */
61
73
  export const settlementSchema = defineObject('settlement', 'Settlement', z
62
74
  .object({
63
75
  object: z.literal('settlement'),
64
76
  livemode,
65
- payment_intent: expandable('payment_intent', 'The `pi_…` this describes, or the PaymentIntent with `expand[]=payment_intent`.'),
77
+ payment_intent: expandable('payment_intent', 'The `pi_…` this describes (the refunded or disputed payment, for a refund or a dispute), or the PaymentIntent with `expand[]=payment_intent`.'),
78
+ refund: expandable('refund', 'The `re_…` whose movement this is, or the Refund with `expand[]=refund`; `null` unless this is the settlement of a refund.').nullable(),
79
+ dispute: expandable('dispute', 'The `dp_…` whose withdrawal this is, or the Dispute with `expand[]=dispute`; `null` unless this is the settlement of a dispute.').nullable(),
66
80
  status: z
67
81
  .enum(SETTLEMENT_STATUSES)
68
- .describe('`available`: settled, the figures are final; `pending`: not final yet; `unknown`: there is none to read — **not zero**.'),
69
- gross: amount.nullable().describe('Base units of `currency`.'),
70
- fee: amount.nullable(),
71
- net: signedAmount.nullable(),
72
- currency: nullableString.describe("The SETTLEMENT currency (uppercase ISO 4217), which may differ from the payment's."),
82
+ .describe('`available`: settled, the figures are final; `pending`: not final yet; `unknown`: there is none to read — **not zero**. A dispute inquiry, which moves no money, and a refund that failed or was canceled are `unknown`.'),
83
+ gross: amount
84
+ .nullable()
85
+ .describe('The MAGNITUDE of the movement, never negative, in base units of `currency`: what the payment brought in, the refund took out or the dispute withdrew.'),
86
+ fee: signedAmount
87
+ .nullable()
88
+ .describe("The provider's fee on THIS movement, as the provider signs it: positive when charged to the balance (a payment's processing fee, a dispute fee), negative when returned to it (part of the original fee on some refunds). A refund's is usually `0`."),
89
+ net: signedAmount
90
+ .nullable()
91
+ .describe('The SIGNED effect on the balance: positive for a payment, negative for a refund or a dispute. Always `gross − fee` for a payment and `−gross − fee` for a refund or a dispute.'),
92
+ currency: nullableString.describe("The SETTLEMENT currency (uppercase ISO 4217) every figure is in, which may differ from the payment's, refund's or dispute's."),
73
93
  available_on: unixSeconds.nullable().describe('When the funds become available.'),
74
94
  exchange_rate: z
75
95
  .number()
@@ -225,6 +245,21 @@ export const refundRoutes = [
225
245
  sdk: 'refunds.settlement',
226
246
  expandable: 'settlement',
227
247
  }),
248
+ defineRoute({
249
+ operationId: 'retrieveRefundSettlement',
250
+ method: 'get',
251
+ path: '/v1/refunds/{id}/settlement',
252
+ tag: 'Refunds',
253
+ summary: "Retrieve a refund's settlement",
254
+ description: 'What the refund took off the settlement balance — `gross`, `fee`, a negative `net` — in the settlement currency, read live from the provider. A missing figure is `null` with a `status`, never `0`; a refund that failed or was canceled is `unknown`.',
255
+ auth: 'service',
256
+ scope: 'payments:read',
257
+ params: refundId,
258
+ query: expandOnlyQuery,
259
+ response: settlementSchema,
260
+ sdk: 'refunds.refundSettlement',
261
+ expandable: 'settlement',
262
+ }),
228
263
  defineRoute({
229
264
  operationId: 'searchRefunds',
230
265
  method: 'get',
@@ -147,10 +147,15 @@ export const WEBHOOK_ENDPOINT_STATUSES = ['enabled', 'disabled'];
147
147
  * - `delivery_failures` — every delivery to it failed for three days
148
148
  * straight, so Peable stopped sending. Re-enabling it (`disabled: false`)
149
149
  * starts the clock again.
150
+ * - `url_refused` — its stored `url` breaks the rules a URL is
151
+ * registered under (https in live mode, ports 80/443, no private, loopback
152
+ * or reserved address), judged again before every delivery, so Peable never
153
+ * sent to it. It is re-enabled only together with a `url` that passes.
150
154
  */
151
155
  export const WEBHOOK_ENDPOINT_DISABLED_REASONS = [
152
156
  'disabled_by_merchant',
153
157
  'delivery_failures',
158
+ 'url_refused',
154
159
  ];
155
160
  /** At most this many endpoints per merchant (per mode). */
156
161
  export const WEBHOOK_ENDPOINTS_MAX_PER_MERCHANT = 16;
@@ -54,8 +54,8 @@ export declare const balanceTransactionSchema: z.ZodObject<{
54
54
  payout: "payout";
55
55
  transfer: "transfer";
56
56
  charge: "charge";
57
- dispute: "dispute";
58
57
  refund: "refund";
58
+ dispute: "dispute";
59
59
  adjustment: "adjustment";
60
60
  other: "other";
61
61
  payment: "payment";
@@ -147,8 +147,8 @@ export declare const listBalanceTransactionsQuery: z.ZodObject<{
147
147
  payout: "payout";
148
148
  transfer: "transfer";
149
149
  charge: "charge";
150
- dispute: "dispute";
151
150
  refund: "refund";
151
+ dispute: "dispute";
152
152
  adjustment: "adjustment";
153
153
  other: "other";
154
154
  payment: "payment";
@@ -250,8 +250,8 @@ export declare const balanceRoutes: readonly [{
250
250
  payout: "payout";
251
251
  transfer: "transfer";
252
252
  charge: "charge";
253
- dispute: "dispute";
254
253
  refund: "refund";
254
+ dispute: "dispute";
255
255
  adjustment: "adjustment";
256
256
  other: "other";
257
257
  payment: "payment";
@@ -284,8 +284,8 @@ export declare const balanceRoutes: readonly [{
284
284
  payout: "payout";
285
285
  transfer: "transfer";
286
286
  charge: "charge";
287
- dispute: "dispute";
288
287
  refund: "refund";
288
+ dispute: "dispute";
289
289
  adjustment: "adjustment";
290
290
  other: "other";
291
291
  payment: "payment";
@@ -356,8 +356,8 @@ export declare const balanceRoutes: readonly [{
356
356
  payout: "payout";
357
357
  transfer: "transfer";
358
358
  charge: "charge";
359
- dispute: "dispute";
360
359
  refund: "refund";
360
+ dispute: "dispute";
361
361
  adjustment: "adjustment";
362
362
  other: "other";
363
363
  payment: "payment";
@@ -688,8 +688,8 @@ export declare const connectRoutes: readonly [{
688
688
  payout: "payout";
689
689
  transfer: "transfer";
690
690
  charge: "charge";
691
- dispute: "dispute";
692
691
  refund: "refund";
692
+ dispute: "dispute";
693
693
  adjustment: "adjustment";
694
694
  other: "other";
695
695
  payment: "payment";
@@ -722,8 +722,8 @@ export declare const connectRoutes: readonly [{
722
722
  payout: "payout";
723
723
  transfer: "transfer";
724
724
  charge: "charge";
725
- dispute: "dispute";
726
725
  refund: "refund";
726
+ dispute: "dispute";
727
727
  adjustment: "adjustment";
728
728
  other: "other";
729
729
  payment: "payment";
@@ -794,8 +794,8 @@ export declare const connectRoutes: readonly [{
794
794
  payout: "payout";
795
795
  transfer: "transfer";
796
796
  charge: "charge";
797
- dispute: "dispute";
798
797
  refund: "refund";
798
+ dispute: "dispute";
799
799
  adjustment: "adjustment";
800
800
  other: "other";
801
801
  payment: "payment";
@@ -1111,8 +1111,8 @@ export declare const connectRoutes: readonly [{
1111
1111
  payout: "payout";
1112
1112
  transfer: "transfer";
1113
1113
  charge: "charge";
1114
- dispute: "dispute";
1115
1114
  refund: "refund";
1115
+ dispute: "dispute";
1116
1116
  adjustment: "adjustment";
1117
1117
  other: "other";
1118
1118
  payment: "payment";
@@ -58,8 +58,8 @@ export declare const payoutReconciliationReportSchema: z.ZodObject<{
58
58
  payout: "payout";
59
59
  transfer: "transfer";
60
60
  charge: "charge";
61
- dispute: "dispute";
62
61
  refund: "refund";
62
+ dispute: "dispute";
63
63
  adjustment: "adjustment";
64
64
  other: "other";
65
65
  payment: "payment";
@@ -468,8 +468,8 @@ export declare const payoutRoutes: readonly [{
468
468
  payout: "payout";
469
469
  transfer: "transfer";
470
470
  charge: "charge";
471
- dispute: "dispute";
472
471
  refund: "refund";
472
+ dispute: "dispute";
473
473
  adjustment: "adjustment";
474
474
  other: "other";
475
475
  payment: "payment";
@@ -639,6 +639,7 @@ export declare const eventsRoutes: readonly [{
639
639
  disabled_reason: import("zod").ZodNullable<import("zod").ZodEnum<{
640
640
  disabled_by_merchant: "disabled_by_merchant";
641
641
  delivery_failures: "delivery_failures";
642
+ url_refused: "url_refused";
642
643
  }>>;
643
644
  api_version: import("zod").ZodString;
644
645
  metadata: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodString>;
@@ -782,6 +783,7 @@ export declare const eventsRoutes: readonly [{
782
783
  disabled_reason: import("zod").ZodNullable<import("zod").ZodEnum<{
783
784
  disabled_by_merchant: "disabled_by_merchant";
784
785
  delivery_failures: "delivery_failures";
786
+ url_refused: "url_refused";
785
787
  }>>;
786
788
  api_version: import("zod").ZodString;
787
789
  metadata: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodString>;
@@ -916,6 +918,7 @@ export declare const eventsRoutes: readonly [{
916
918
  disabled_reason: import("zod").ZodNullable<import("zod").ZodEnum<{
917
919
  disabled_by_merchant: "disabled_by_merchant";
918
920
  delivery_failures: "delivery_failures";
921
+ url_refused: "url_refused";
919
922
  }>>;
920
923
  api_version: import("zod").ZodString;
921
924
  metadata: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodString>;
@@ -1146,6 +1149,7 @@ export declare const eventsRoutes: readonly [{
1146
1149
  disabled_reason: import("zod").ZodNullable<import("zod").ZodEnum<{
1147
1150
  disabled_by_merchant: "disabled_by_merchant";
1148
1151
  delivery_failures: "delivery_failures";
1152
+ url_refused: "url_refused";
1149
1153
  }>>;
1150
1154
  api_version: import("zod").ZodString;
1151
1155
  metadata: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodString>;
@@ -1296,6 +1300,7 @@ export declare const eventsRoutes: readonly [{
1296
1300
  disabled_reason: import("zod").ZodNullable<import("zod").ZodEnum<{
1297
1301
  disabled_by_merchant: "disabled_by_merchant";
1298
1302
  delivery_failures: "delivery_failures";
1303
+ url_refused: "url_refused";
1299
1304
  }>>;
1300
1305
  api_version: import("zod").ZodString;
1301
1306
  metadata: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodString>;
@@ -110,6 +110,7 @@ export declare const webhookEndpointSchema: z.ZodObject<{
110
110
  disabled_reason: z.ZodNullable<z.ZodEnum<{
111
111
  disabled_by_merchant: "disabled_by_merchant";
112
112
  delivery_failures: "delivery_failures";
113
+ url_refused: "url_refused";
113
114
  }>>;
114
115
  api_version: z.ZodString;
115
116
  metadata: z.ZodRecord<z.ZodString, z.ZodString>;
@@ -231,6 +232,7 @@ export declare const webhookEndpointWithSecretSchema: z.ZodObject<{
231
232
  disabled_reason: z.ZodNullable<z.ZodEnum<{
232
233
  disabled_by_merchant: "disabled_by_merchant";
233
234
  delivery_failures: "delivery_failures";
235
+ url_refused: "url_refused";
234
236
  }>>;
235
237
  api_version: z.ZodString;
236
238
  metadata: z.ZodRecord<z.ZodString, z.ZodString>;
@@ -694,6 +696,7 @@ export declare const webhookEndpointRoutes: readonly [{
694
696
  disabled_reason: z.ZodNullable<z.ZodEnum<{
695
697
  disabled_by_merchant: "disabled_by_merchant";
696
698
  delivery_failures: "delivery_failures";
699
+ url_refused: "url_refused";
697
700
  }>>;
698
701
  api_version: z.ZodString;
699
702
  metadata: z.ZodRecord<z.ZodString, z.ZodString>;
@@ -837,6 +840,7 @@ export declare const webhookEndpointRoutes: readonly [{
837
840
  disabled_reason: z.ZodNullable<z.ZodEnum<{
838
841
  disabled_by_merchant: "disabled_by_merchant";
839
842
  delivery_failures: "delivery_failures";
843
+ url_refused: "url_refused";
840
844
  }>>;
841
845
  api_version: z.ZodString;
842
846
  metadata: z.ZodRecord<z.ZodString, z.ZodString>;
@@ -971,6 +975,7 @@ export declare const webhookEndpointRoutes: readonly [{
971
975
  disabled_reason: z.ZodNullable<z.ZodEnum<{
972
976
  disabled_by_merchant: "disabled_by_merchant";
973
977
  delivery_failures: "delivery_failures";
978
+ url_refused: "url_refused";
974
979
  }>>;
975
980
  api_version: z.ZodString;
976
981
  metadata: z.ZodRecord<z.ZodString, z.ZodString>;
@@ -1201,6 +1206,7 @@ export declare const webhookEndpointRoutes: readonly [{
1201
1206
  disabled_reason: z.ZodNullable<z.ZodEnum<{
1202
1207
  disabled_by_merchant: "disabled_by_merchant";
1203
1208
  delivery_failures: "delivery_failures";
1209
+ url_refused: "url_refused";
1204
1210
  }>>;
1205
1211
  api_version: z.ZodString;
1206
1212
  metadata: z.ZodRecord<z.ZodString, z.ZodString>;
@@ -1351,6 +1357,7 @@ export declare const webhookEndpointRoutes: readonly [{
1351
1357
  disabled_reason: z.ZodNullable<z.ZodEnum<{
1352
1358
  disabled_by_merchant: "disabled_by_merchant";
1353
1359
  delivery_failures: "delivery_failures";
1360
+ url_refused: "url_refused";
1354
1361
  }>>;
1355
1362
  api_version: z.ZodString;
1356
1363
  metadata: z.ZodRecord<z.ZodString, z.ZodString>;
@@ -819,4 +819,39 @@ export declare const disputeRoutes: readonly [{
819
819
  updated_at: z.ZodNumber;
820
820
  }, z.core.$strict>;
821
821
  readonly sdk: "disputes.close";
822
+ }, {
823
+ readonly operationId: "retrieveDisputeSettlement";
824
+ readonly method: "get";
825
+ readonly path: "/v1/disputes/{disputeId}/settlement";
826
+ readonly tag: "Disputes";
827
+ readonly summary: "Retrieve a dispute's settlement";
828
+ readonly description: "What the dispute WITHDREW from the settlement balance — `gross` the principal, `fee` the dispute fee, a negative `net` — in the settlement currency, read live from the provider. An inquiry moves no money: `unknown`, every figure `null`, never `0`. A reinstatement after a won dispute is not this figure.";
829
+ readonly auth: "service";
830
+ readonly scope: "payments:read";
831
+ readonly params: {
832
+ disputeId: string;
833
+ };
834
+ readonly query: z.ZodObject<{
835
+ expand: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>, z.ZodTransform<string[], string | string[]>>, z.ZodArray<z.ZodString>>>;
836
+ }, z.core.$strict>;
837
+ readonly response: z.ZodObject<{
838
+ object: z.ZodLiteral<"settlement">;
839
+ livemode: z.ZodBoolean;
840
+ payment_intent: z.ZodType<string | import("../..").Ref<"payment_intent">, string | import("../..").Ref<"payment_intent">, z.core.$ZodTypeInternals<string | import("../..").Ref<"payment_intent">, string | import("../..").Ref<"payment_intent">>>;
841
+ refund: z.ZodNullable<z.ZodType<string | import("../..").Ref<"refund">, string | import("../..").Ref<"refund">, z.core.$ZodTypeInternals<string | import("../..").Ref<"refund">, string | import("../..").Ref<"refund">>>>;
842
+ dispute: z.ZodNullable<z.ZodType<string | import("../..").Ref<"dispute">, string | import("../..").Ref<"dispute">, z.core.$ZodTypeInternals<string | import("../..").Ref<"dispute">, string | import("../..").Ref<"dispute">>>>;
843
+ status: z.ZodEnum<{
844
+ unknown: "unknown";
845
+ pending: "pending";
846
+ available: "available";
847
+ }>;
848
+ gross: z.ZodNullable<z.ZodString>;
849
+ fee: z.ZodNullable<z.ZodString>;
850
+ net: z.ZodNullable<z.ZodString>;
851
+ currency: z.ZodNullable<z.ZodString>;
852
+ available_on: z.ZodNullable<z.ZodNumber>;
853
+ exchange_rate: z.ZodNullable<z.ZodNumber>;
854
+ }, z.core.$strict>;
855
+ readonly sdk: "disputes.settlement";
856
+ readonly expandable: "settlement";
822
857
  }];
@@ -2306,6 +2306,8 @@ export declare const paymentsRoutes: readonly [{
2306
2306
  object: import("zod").ZodLiteral<"settlement">;
2307
2307
  livemode: import("zod").ZodBoolean;
2308
2308
  payment_intent: import("zod").ZodType<string | import("../..").Ref<"payment_intent">, string | import("../..").Ref<"payment_intent">, import("zod/v4/core").$ZodTypeInternals<string | import("../..").Ref<"payment_intent">, string | import("../..").Ref<"payment_intent">>>;
2309
+ refund: import("zod").ZodNullable<import("zod").ZodType<string | import("../..").Ref<"refund">, string | import("../..").Ref<"refund">, import("zod/v4/core").$ZodTypeInternals<string | import("../..").Ref<"refund">, string | import("../..").Ref<"refund">>>>;
2310
+ dispute: import("zod").ZodNullable<import("zod").ZodType<string | import("../..").Ref<"dispute">, string | import("../..").Ref<"dispute">, import("zod/v4/core").$ZodTypeInternals<string | import("../..").Ref<"dispute">, string | import("../..").Ref<"dispute">>>>;
2309
2311
  status: import("zod").ZodEnum<{
2310
2312
  unknown: "unknown";
2311
2313
  pending: "pending";
@@ -2320,6 +2322,41 @@ export declare const paymentsRoutes: readonly [{
2320
2322
  }, import("zod/v4/core").$strict>;
2321
2323
  readonly sdk: "refunds.settlement";
2322
2324
  readonly expandable: "settlement";
2325
+ }, {
2326
+ readonly operationId: "retrieveRefundSettlement";
2327
+ readonly method: "get";
2328
+ readonly path: "/v1/refunds/{id}/settlement";
2329
+ readonly tag: "Refunds";
2330
+ readonly summary: "Retrieve a refund's settlement";
2331
+ readonly description: "What the refund took off the settlement balance — `gross`, `fee`, a negative `net` — in the settlement currency, read live from the provider. A missing figure is `null` with a `status`, never `0`; a refund that failed or was canceled is `unknown`.";
2332
+ readonly auth: "service";
2333
+ readonly scope: "payments:read";
2334
+ readonly params: {
2335
+ id: string;
2336
+ };
2337
+ readonly query: import("zod").ZodObject<{
2338
+ expand: import("zod").ZodOptional<import("zod").ZodPipe<import("zod").ZodPipe<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodArray<import("zod").ZodString>]>, import("zod").ZodTransform<string[], string | string[]>>, import("zod").ZodArray<import("zod").ZodString>>>;
2339
+ }, import("zod/v4/core").$strict>;
2340
+ readonly response: import("zod").ZodObject<{
2341
+ object: import("zod").ZodLiteral<"settlement">;
2342
+ livemode: import("zod").ZodBoolean;
2343
+ payment_intent: import("zod").ZodType<string | import("../..").Ref<"payment_intent">, string | import("../..").Ref<"payment_intent">, import("zod/v4/core").$ZodTypeInternals<string | import("../..").Ref<"payment_intent">, string | import("../..").Ref<"payment_intent">>>;
2344
+ refund: import("zod").ZodNullable<import("zod").ZodType<string | import("../..").Ref<"refund">, string | import("../..").Ref<"refund">, import("zod/v4/core").$ZodTypeInternals<string | import("../..").Ref<"refund">, string | import("../..").Ref<"refund">>>>;
2345
+ dispute: import("zod").ZodNullable<import("zod").ZodType<string | import("../..").Ref<"dispute">, string | import("../..").Ref<"dispute">, import("zod/v4/core").$ZodTypeInternals<string | import("../..").Ref<"dispute">, string | import("../..").Ref<"dispute">>>>;
2346
+ status: import("zod").ZodEnum<{
2347
+ unknown: "unknown";
2348
+ pending: "pending";
2349
+ available: "available";
2350
+ }>;
2351
+ gross: import("zod").ZodNullable<import("zod").ZodString>;
2352
+ fee: import("zod").ZodNullable<import("zod").ZodString>;
2353
+ net: import("zod").ZodNullable<import("zod").ZodString>;
2354
+ currency: import("zod").ZodNullable<import("zod").ZodString>;
2355
+ available_on: import("zod").ZodNullable<import("zod").ZodNumber>;
2356
+ exchange_rate: import("zod").ZodNullable<import("zod").ZodNumber>;
2357
+ }, import("zod/v4/core").$strict>;
2358
+ readonly sdk: "refunds.refundSettlement";
2359
+ readonly expandable: "settlement";
2323
2360
  }, {
2324
2361
  readonly operationId: "searchRefunds";
2325
2362
  readonly method: "get";
@@ -2958,6 +2995,41 @@ export declare const paymentsRoutes: readonly [{
2958
2995
  updated_at: import("zod").ZodNumber;
2959
2996
  }, import("zod/v4/core").$strict>;
2960
2997
  readonly sdk: "disputes.close";
2998
+ }, {
2999
+ readonly operationId: "retrieveDisputeSettlement";
3000
+ readonly method: "get";
3001
+ readonly path: "/v1/disputes/{disputeId}/settlement";
3002
+ readonly tag: "Disputes";
3003
+ readonly summary: "Retrieve a dispute's settlement";
3004
+ readonly description: "What the dispute WITHDREW from the settlement balance — `gross` the principal, `fee` the dispute fee, a negative `net` — in the settlement currency, read live from the provider. An inquiry moves no money: `unknown`, every figure `null`, never `0`. A reinstatement after a won dispute is not this figure.";
3005
+ readonly auth: "service";
3006
+ readonly scope: "payments:read";
3007
+ readonly params: {
3008
+ disputeId: string;
3009
+ };
3010
+ readonly query: import("zod").ZodObject<{
3011
+ expand: import("zod").ZodOptional<import("zod").ZodPipe<import("zod").ZodPipe<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodArray<import("zod").ZodString>]>, import("zod").ZodTransform<string[], string | string[]>>, import("zod").ZodArray<import("zod").ZodString>>>;
3012
+ }, import("zod/v4/core").$strict>;
3013
+ readonly response: import("zod").ZodObject<{
3014
+ object: import("zod").ZodLiteral<"settlement">;
3015
+ livemode: import("zod").ZodBoolean;
3016
+ payment_intent: import("zod").ZodType<string | import("../..").Ref<"payment_intent">, string | import("../..").Ref<"payment_intent">, import("zod/v4/core").$ZodTypeInternals<string | import("../..").Ref<"payment_intent">, string | import("../..").Ref<"payment_intent">>>;
3017
+ refund: import("zod").ZodNullable<import("zod").ZodType<string | import("../..").Ref<"refund">, string | import("../..").Ref<"refund">, import("zod/v4/core").$ZodTypeInternals<string | import("../..").Ref<"refund">, string | import("../..").Ref<"refund">>>>;
3018
+ dispute: import("zod").ZodNullable<import("zod").ZodType<string | import("../..").Ref<"dispute">, string | import("../..").Ref<"dispute">, import("zod/v4/core").$ZodTypeInternals<string | import("../..").Ref<"dispute">, string | import("../..").Ref<"dispute">>>>;
3019
+ status: import("zod").ZodEnum<{
3020
+ unknown: "unknown";
3021
+ pending: "pending";
3022
+ available: "available";
3023
+ }>;
3024
+ gross: import("zod").ZodNullable<import("zod").ZodString>;
3025
+ fee: import("zod").ZodNullable<import("zod").ZodString>;
3026
+ net: import("zod").ZodNullable<import("zod").ZodString>;
3027
+ currency: import("zod").ZodNullable<import("zod").ZodString>;
3028
+ available_on: import("zod").ZodNullable<import("zod").ZodNumber>;
3029
+ exchange_rate: import("zod").ZodNullable<import("zod").ZodNumber>;
3030
+ }, import("zod/v4/core").$strict>;
3031
+ readonly sdk: "disputes.settlement";
3032
+ readonly expandable: "settlement";
2961
3033
  }, {
2962
3034
  readonly operationId: "createSetupIntent";
2963
3035
  readonly method: "post";
@@ -1,7 +1,8 @@
1
1
  import { z } from 'zod';
2
2
  import { type Expand } from '../../common/objects';
3
3
  /**
4
- * Refunds (`re_…`) and a payment's settlement figures. The provider's own
4
+ * Refunds (`re_…`) and the settlement figures of a payment, a refund or a
5
+ * dispute. The provider's own
5
6
  * refund id never appears: a merchant integrates against Peable and never
6
7
  * learns which acquirer sat behind it (ADR 0001 D3).
7
8
  */
@@ -49,15 +50,28 @@ export declare const refundSchema: z.ZodObject<{
49
50
  }, z.core.$strict>;
50
51
  export type Refund = Expand<z.output<typeof refundSchema>>;
51
52
  /**
52
- * What a payment actually came to, as the PROVIDER reports it. Every figure is
53
- * nullable and that is the contract: "the fee was zero" and "the fee is not
54
- * known yet" are different facts, and `status` says which produced the nulls.
55
- * It reports what the provider took; it attributes that cost to nobody.
53
+ * One movement of the settlement balance, as the PROVIDER reports it: what a
54
+ * payment brought in (`GET /v1/payment_intents/{intentId}/settlement`), what a
55
+ * refund took out (`GET /v1/refunds/{id}/settlement`) or what a dispute
56
+ * withdrew (`GET /v1/disputes/{disputeId}/settlement`). `refund` and `dispute`
57
+ * say which: both `null` for a payment's.
58
+ *
59
+ * Every figure is nullable and that is the contract: "the fee was zero" and
60
+ * "the fee is not known yet" are different facts, and `status` says which
61
+ * produced the nulls. It reports what the provider took; it attributes that
62
+ * cost to nobody.
63
+ *
64
+ * The signs: `gross` is the MAGNITUDE of the movement, `fee` the provider's fee
65
+ * on it (positive when charged, negative when returned), `net` its SIGNED
66
+ * effect on the balance — so `net = gross − fee` for a payment and
67
+ * `net = −gross − fee` for a refund or a dispute.
56
68
  */
57
69
  export declare const settlementSchema: z.ZodObject<{
58
70
  object: z.ZodLiteral<"settlement">;
59
71
  livemode: z.ZodBoolean;
60
72
  payment_intent: z.ZodType<string | import("../..").Ref<"payment_intent">, string | import("../..").Ref<"payment_intent">, z.core.$ZodTypeInternals<string | import("../..").Ref<"payment_intent">, string | import("../..").Ref<"payment_intent">>>;
73
+ refund: z.ZodNullable<z.ZodType<string | import("../..").Ref<"refund">, string | import("../..").Ref<"refund">, z.core.$ZodTypeInternals<string | import("../..").Ref<"refund">, string | import("../..").Ref<"refund">>>>;
74
+ dispute: z.ZodNullable<z.ZodType<string | import("../..").Ref<"dispute">, string | import("../..").Ref<"dispute">, z.core.$ZodTypeInternals<string | import("../..").Ref<"dispute">, string | import("../..").Ref<"dispute">>>>;
61
75
  status: z.ZodEnum<{
62
76
  unknown: "unknown";
63
77
  pending: "pending";
@@ -601,6 +615,8 @@ export declare const refundRoutes: readonly [{
601
615
  object: z.ZodLiteral<"settlement">;
602
616
  livemode: z.ZodBoolean;
603
617
  payment_intent: z.ZodType<string | import("../..").Ref<"payment_intent">, string | import("../..").Ref<"payment_intent">, z.core.$ZodTypeInternals<string | import("../..").Ref<"payment_intent">, string | import("../..").Ref<"payment_intent">>>;
618
+ refund: z.ZodNullable<z.ZodType<string | import("../..").Ref<"refund">, string | import("../..").Ref<"refund">, z.core.$ZodTypeInternals<string | import("../..").Ref<"refund">, string | import("../..").Ref<"refund">>>>;
619
+ dispute: z.ZodNullable<z.ZodType<string | import("../..").Ref<"dispute">, string | import("../..").Ref<"dispute">, z.core.$ZodTypeInternals<string | import("../..").Ref<"dispute">, string | import("../..").Ref<"dispute">>>>;
604
620
  status: z.ZodEnum<{
605
621
  unknown: "unknown";
606
622
  pending: "pending";
@@ -615,6 +631,41 @@ export declare const refundRoutes: readonly [{
615
631
  }, z.core.$strict>;
616
632
  readonly sdk: "refunds.settlement";
617
633
  readonly expandable: "settlement";
634
+ }, {
635
+ readonly operationId: "retrieveRefundSettlement";
636
+ readonly method: "get";
637
+ readonly path: "/v1/refunds/{id}/settlement";
638
+ readonly tag: "Refunds";
639
+ readonly summary: "Retrieve a refund's settlement";
640
+ readonly description: "What the refund took off the settlement balance — `gross`, `fee`, a negative `net` — in the settlement currency, read live from the provider. A missing figure is `null` with a `status`, never `0`; a refund that failed or was canceled is `unknown`.";
641
+ readonly auth: "service";
642
+ readonly scope: "payments:read";
643
+ readonly params: {
644
+ id: string;
645
+ };
646
+ readonly query: z.ZodObject<{
647
+ expand: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>, z.ZodTransform<string[], string | string[]>>, z.ZodArray<z.ZodString>>>;
648
+ }, z.core.$strict>;
649
+ readonly response: z.ZodObject<{
650
+ object: z.ZodLiteral<"settlement">;
651
+ livemode: z.ZodBoolean;
652
+ payment_intent: z.ZodType<string | import("../..").Ref<"payment_intent">, string | import("../..").Ref<"payment_intent">, z.core.$ZodTypeInternals<string | import("../..").Ref<"payment_intent">, string | import("../..").Ref<"payment_intent">>>;
653
+ refund: z.ZodNullable<z.ZodType<string | import("../..").Ref<"refund">, string | import("../..").Ref<"refund">, z.core.$ZodTypeInternals<string | import("../..").Ref<"refund">, string | import("../..").Ref<"refund">>>>;
654
+ dispute: z.ZodNullable<z.ZodType<string | import("../..").Ref<"dispute">, string | import("../..").Ref<"dispute">, z.core.$ZodTypeInternals<string | import("../..").Ref<"dispute">, string | import("../..").Ref<"dispute">>>>;
655
+ status: z.ZodEnum<{
656
+ unknown: "unknown";
657
+ pending: "pending";
658
+ available: "available";
659
+ }>;
660
+ gross: z.ZodNullable<z.ZodString>;
661
+ fee: z.ZodNullable<z.ZodString>;
662
+ net: z.ZodNullable<z.ZodString>;
663
+ currency: z.ZodNullable<z.ZodString>;
664
+ available_on: z.ZodNullable<z.ZodNumber>;
665
+ exchange_rate: z.ZodNullable<z.ZodNumber>;
666
+ }, z.core.$strict>;
667
+ readonly sdk: "refunds.refundSettlement";
668
+ readonly expandable: "settlement";
618
669
  }, {
619
670
  readonly operationId: "searchRefunds";
620
671
  readonly method: "get";
@@ -146,8 +146,12 @@ export type WebhookEndpointStatus = (typeof WEBHOOK_ENDPOINT_STATUSES)[number];
146
146
  * - `delivery_failures` — every delivery to it failed for three days
147
147
  * straight, so Peable stopped sending. Re-enabling it (`disabled: false`)
148
148
  * starts the clock again.
149
+ * - `url_refused` — its stored `url` breaks the rules a URL is
150
+ * registered under (https in live mode, ports 80/443, no private, loopback
151
+ * or reserved address), judged again before every delivery, so Peable never
152
+ * sent to it. It is re-enabled only together with a `url` that passes.
149
153
  */
150
- export declare const WEBHOOK_ENDPOINT_DISABLED_REASONS: readonly ["disabled_by_merchant", "delivery_failures"];
154
+ export declare const WEBHOOK_ENDPOINT_DISABLED_REASONS: readonly ["disabled_by_merchant", "delivery_failures", "url_refused"];
151
155
  export type WebhookEndpointDisabledReason = (typeof WEBHOOK_ENDPOINT_DISABLED_REASONS)[number];
152
156
  /** At most this many endpoints per merchant (per mode). */
153
157
  export declare const WEBHOOK_ENDPOINTS_MAX_PER_MERCHANT = 16;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@peable.to/contracts",
3
- "version": "3.0.0",
3
+ "version": "3.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",