@stridge/openapi 0.2.0 → 0.3.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.
@@ -25,13 +25,9 @@
25
25
  "name": "UDA",
26
26
  "description": "Universal Deposit Addresses — allocate cross-chain deposit addresses, fetch indicative quotes, and track settlements.\n"
27
27
  },
28
- {
29
- "name": "Vault",
30
- "description": "Non-custodial vault accounts that hold tenant funds for payouts. Inspect a vault's addresses, per-asset balances, and total USD value.\n"
31
- },
32
28
  {
33
29
  "name": "Payout",
34
- "description": "Send funds from a vault to an external address. Payouts are idempotent by reference, tracked through a lifecycle, and have native gas funded automatically.\n"
30
+ "description": "Non-custodial vaults and the payouts they fund. Inspect a vault's addresses, per-asset balances, and total value, then send funds from a vault to an external address — payouts are idempotent by reference, tracked through a lifecycle, and have native gas funded automatically.\n"
35
31
  },
36
32
  {
37
33
  "name": "Gas Stations",
@@ -1336,13 +1332,15 @@
1336
1332
  },
1337
1333
  "eip155_id": {
1338
1334
  "type": "integer",
1335
+ "description": "Chain-specific numeric id: the EIP-155 chain id for EVM networks, or the analogous numeric chain id Stridge uses for non-EVM (TVM, SVM) networks. Always present.\n",
1339
1336
  "example": 1
1340
1337
  },
1341
1338
  "chain_type": {
1342
1339
  "type": "string",
1343
1340
  "enum": [
1344
1341
  "EVM",
1345
- "TVM"
1342
+ "TVM",
1343
+ "SVM"
1346
1344
  ],
1347
1345
  "example": "EVM"
1348
1346
  },
@@ -2345,7 +2343,7 @@
2345
2343
  "get": {
2346
2344
  "operationId": "list-vaults",
2347
2345
  "tags": [
2348
- "Vault"
2346
+ "Payout"
2349
2347
  ],
2350
2348
  "summary": "List vaults",
2351
2349
  "description": "List all vault accounts for the authenticated tenant.",
@@ -2463,7 +2461,7 @@
2463
2461
  "get": {
2464
2462
  "operationId": "list-vault-addresses",
2465
2463
  "tags": [
2466
- "Vault"
2464
+ "Payout"
2467
2465
  ],
2468
2466
  "summary": "List vault addresses",
2469
2467
  "description": "Get all vault addresses for the authenticated tenant.",
@@ -2677,7 +2675,7 @@
2677
2675
  "get": {
2678
2676
  "operationId": "get-vault-address-by-network",
2679
2677
  "tags": [
2680
- "Vault"
2678
+ "Payout"
2681
2679
  ],
2682
2680
  "summary": "Get vault address by network",
2683
2681
  "description": "Get the vault address for a specific network.",
@@ -2892,7 +2890,7 @@
2892
2890
  "get": {
2893
2891
  "operationId": "get-vault-balances",
2894
2892
  "tags": [
2895
- "Vault"
2893
+ "Payout"
2896
2894
  ],
2897
2895
  "summary": "Get vault balances",
2898
2896
  "description": "Get balances for all vault addresses, with optional filtering by network and asset.",
@@ -3147,7 +3145,7 @@
3147
3145
  "get": {
3148
3146
  "operationId": "get-vault-total",
3149
3147
  "tags": [
3150
- "Vault"
3148
+ "Payout"
3151
3149
  ],
3152
3150
  "summary": "Get vault total value",
3153
3151
  "description": "Get the total USD value across all vault assets.",
@@ -3456,6 +3454,15 @@
3456
3454
  "type": "string",
3457
3455
  "example": "Payment for order #12345"
3458
3456
  },
3457
+ "type": {
3458
+ "type": "string",
3459
+ "enum": [
3460
+ "normal",
3461
+ "forceful"
3462
+ ],
3463
+ "description": "Payout strategy the payout was created with.",
3464
+ "example": "normal"
3465
+ },
3459
3466
  "status": {
3460
3467
  "type": "string",
3461
3468
  "enum": [
@@ -3490,7 +3497,7 @@
3490
3497
  "expired_at": {
3491
3498
  "type": "string",
3492
3499
  "format": "date-time",
3493
- "example": "2026-12-31T23:59:59Z"
3500
+ "example": "2026-01-01T01:00:00Z"
3494
3501
  }
3495
3502
  }
3496
3503
  }
@@ -3641,7 +3648,7 @@
3641
3648
  "Payout"
3642
3649
  ],
3643
3650
  "summary": "Create payout",
3644
- "description": "Create a payout from the tenant's vault wallet to an external address. Provide either `amount` (crypto) or `usd_amount` (converted to crypto at the current rate). Payouts are idempotent by `(vault_id, reference_id)` — resubmitting a `reference_id` returns `409` instead of paying twice.\n",
3651
+ "description": "Create a payout from the tenant's vault wallet to an external address. Provide either `amount` (crypto) or `usd_amount` (converted to crypto at the current rate). Payouts are idempotent by `(vault_id, reference_id)` — resubmitting a `reference_id` returns `409` instead of paying twice. Set `type` to `forceful` for a single fail-fast attempt — gas is still refilled when needed, but the refill and transfer are each tried once with no retry; the default `normal` refills and retries until `expired_at`.\n",
3645
3652
  "security": [
3646
3653
  {
3647
3654
  "ApiKeyAuth": []
@@ -3696,11 +3703,20 @@
3696
3703
  "description": "Free-form note stored on the payout.",
3697
3704
  "example": "Payment for order #12345"
3698
3705
  },
3706
+ "type": {
3707
+ "type": "string",
3708
+ "enum": [
3709
+ "normal",
3710
+ "forceful"
3711
+ ],
3712
+ "default": "normal",
3713
+ "description": "Payout strategy. `normal` (default) refills gas when needed and retries until `expired_at`. `forceful` still refills when needed but is single-attempt — the refill and the transfer are each tried once, with no retry and no `expired_at`; it fails immediately if either can't complete.\n"
3714
+ },
3699
3715
  "expired_at": {
3700
3716
  "type": "string",
3701
3717
  "format": "date-time",
3702
- "description": "Cutoff after which a non-confirmed payout expires.",
3703
- "example": "2026-12-31T23:59:59Z"
3718
+ "description": "Cutoff after which a non-confirmed payout expires. Defaults to 1 hour from creation; capped at 12 hours ahead. Ignored for `forceful` payouts.\n",
3719
+ "example": "2026-01-01T01:00:00Z"
3704
3720
  }
3705
3721
  },
3706
3722
  "required": [
@@ -3718,7 +3734,8 @@
3718
3734
  "reference_id": "order-12345",
3719
3735
  "amount": "100.50",
3720
3736
  "remark": "Payment for order #12345",
3721
- "expired_at": "2026-12-31T23:59:59Z"
3737
+ "type": "normal",
3738
+ "expired_at": "2026-01-01T01:00:00Z"
3722
3739
  }
3723
3740
  }
3724
3741
  }
@@ -3778,6 +3795,15 @@
3778
3795
  "type": "string",
3779
3796
  "example": "Payment for order #12345"
3780
3797
  },
3798
+ "type": {
3799
+ "type": "string",
3800
+ "enum": [
3801
+ "normal",
3802
+ "forceful"
3803
+ ],
3804
+ "description": "Payout strategy the payout was created with.",
3805
+ "example": "normal"
3806
+ },
3781
3807
  "status": {
3782
3808
  "type": "string",
3783
3809
  "enum": [
@@ -3812,7 +3838,7 @@
3812
3838
  "expired_at": {
3813
3839
  "type": "string",
3814
3840
  "format": "date-time",
3815
- "example": "2026-12-31T23:59:59Z"
3841
+ "example": "2026-01-01T01:00:00Z"
3816
3842
  }
3817
3843
  }
3818
3844
  }
@@ -4095,6 +4121,15 @@
4095
4121
  "type": "string",
4096
4122
  "example": "Payment for order #12345"
4097
4123
  },
4124
+ "type": {
4125
+ "type": "string",
4126
+ "enum": [
4127
+ "normal",
4128
+ "forceful"
4129
+ ],
4130
+ "description": "Payout strategy the payout was created with.",
4131
+ "example": "normal"
4132
+ },
4098
4133
  "status": {
4099
4134
  "type": "string",
4100
4135
  "enum": [
@@ -4129,7 +4164,7 @@
4129
4164
  "expired_at": {
4130
4165
  "type": "string",
4131
4166
  "format": "date-time",
4132
- "example": "2026-12-31T23:59:59Z"
4167
+ "example": "2026-01-01T01:00:00Z"
4133
4168
  }
4134
4169
  }
4135
4170
  }
@@ -4353,6 +4388,15 @@
4353
4388
  "type": "string",
4354
4389
  "example": "Payment for order #12345"
4355
4390
  },
4391
+ "type": {
4392
+ "type": "string",
4393
+ "enum": [
4394
+ "normal",
4395
+ "forceful"
4396
+ ],
4397
+ "description": "Payout strategy the payout was created with.",
4398
+ "example": "normal"
4399
+ },
4356
4400
  "status": {
4357
4401
  "type": "string",
4358
4402
  "enum": [
@@ -4387,7 +4431,7 @@
4387
4431
  "expired_at": {
4388
4432
  "type": "string",
4389
4433
  "format": "date-time",
4390
- "example": "2026-12-31T23:59:59Z"
4434
+ "example": "2026-01-01T01:00:00Z"
4391
4435
  }
4392
4436
  }
4393
4437
  }
@@ -7488,13 +7532,15 @@
7488
7532
  },
7489
7533
  "eip155_id": {
7490
7534
  "type": "integer",
7535
+ "description": "Chain-specific numeric id: the EIP-155 chain id for EVM networks, or the analogous numeric chain id Stridge uses for non-EVM (TVM, SVM) networks. Always present.\n",
7491
7536
  "example": 1
7492
7537
  },
7493
7538
  "chain_type": {
7494
7539
  "type": "string",
7495
7540
  "enum": [
7496
7541
  "EVM",
7497
- "TVM"
7542
+ "TVM",
7543
+ "SVM"
7498
7544
  ],
7499
7545
  "example": "EVM"
7500
7546
  },
@@ -7587,13 +7633,15 @@
7587
7633
  },
7588
7634
  "eip155_id": {
7589
7635
  "type": "integer",
7636
+ "description": "Chain-specific numeric id: the EIP-155 chain id for EVM networks, or the analogous numeric chain id Stridge uses for non-EVM (TVM, SVM) networks. Always present.\n",
7590
7637
  "example": 1
7591
7638
  },
7592
7639
  "chain_type": {
7593
7640
  "type": "string",
7594
7641
  "enum": [
7595
7642
  "EVM",
7596
- "TVM"
7643
+ "TVM",
7644
+ "SVM"
7597
7645
  ],
7598
7646
  "example": "EVM"
7599
7647
  },
@@ -8034,11 +8082,20 @@
8034
8082
  "description": "Free-form note stored on the payout.",
8035
8083
  "example": "Payment for order #12345"
8036
8084
  },
8085
+ "type": {
8086
+ "type": "string",
8087
+ "enum": [
8088
+ "normal",
8089
+ "forceful"
8090
+ ],
8091
+ "default": "normal",
8092
+ "description": "Payout strategy. `normal` (default) refills gas when needed and retries until `expired_at`. `forceful` still refills when needed but is single-attempt — the refill and the transfer are each tried once, with no retry and no `expired_at`; it fails immediately if either can't complete.\n"
8093
+ },
8037
8094
  "expired_at": {
8038
8095
  "type": "string",
8039
8096
  "format": "date-time",
8040
- "description": "Cutoff after which a non-confirmed payout expires.",
8041
- "example": "2026-12-31T23:59:59Z"
8097
+ "description": "Cutoff after which a non-confirmed payout expires. Defaults to 1 hour from creation; capped at 12 hours ahead. Ignored for `forceful` payouts.\n",
8098
+ "example": "2026-01-01T01:00:00Z"
8042
8099
  }
8043
8100
  },
8044
8101
  "required": [
@@ -8056,7 +8113,8 @@
8056
8113
  "reference_id": "order-12345",
8057
8114
  "amount": "100.50",
8058
8115
  "remark": "Payment for order #12345",
8059
- "expired_at": "2026-12-31T23:59:59Z"
8116
+ "type": "normal",
8117
+ "expired_at": "2026-01-01T01:00:00Z"
8060
8118
  }
8061
8119
  },
8062
8120
  "Payout": {
@@ -8105,6 +8163,15 @@
8105
8163
  "type": "string",
8106
8164
  "example": "Payment for order #12345"
8107
8165
  },
8166
+ "type": {
8167
+ "type": "string",
8168
+ "enum": [
8169
+ "normal",
8170
+ "forceful"
8171
+ ],
8172
+ "description": "Payout strategy the payout was created with.",
8173
+ "example": "normal"
8174
+ },
8108
8175
  "status": {
8109
8176
  "type": "string",
8110
8177
  "enum": [
@@ -8139,7 +8206,7 @@
8139
8206
  "expired_at": {
8140
8207
  "type": "string",
8141
8208
  "format": "date-time",
8142
- "example": "2026-12-31T23:59:59Z"
8209
+ "example": "2026-01-01T01:00:00Z"
8143
8210
  }
8144
8211
  }
8145
8212
  },
@@ -8192,6 +8259,15 @@
8192
8259
  "type": "string",
8193
8260
  "example": "Payment for order #12345"
8194
8261
  },
8262
+ "type": {
8263
+ "type": "string",
8264
+ "enum": [
8265
+ "normal",
8266
+ "forceful"
8267
+ ],
8268
+ "description": "Payout strategy the payout was created with.",
8269
+ "example": "normal"
8270
+ },
8195
8271
  "status": {
8196
8272
  "type": "string",
8197
8273
  "enum": [
@@ -8226,7 +8302,7 @@
8226
8302
  "expired_at": {
8227
8303
  "type": "string",
8228
8304
  "format": "date-time",
8229
- "example": "2026-12-31T23:59:59Z"
8305
+ "example": "2026-01-01T01:00:00Z"
8230
8306
  }
8231
8307
  }
8232
8308
  }
@@ -8283,6 +8359,15 @@
8283
8359
  "type": "string",
8284
8360
  "example": "Payment for order #12345"
8285
8361
  },
8362
+ "type": {
8363
+ "type": "string",
8364
+ "enum": [
8365
+ "normal",
8366
+ "forceful"
8367
+ ],
8368
+ "description": "Payout strategy the payout was created with.",
8369
+ "example": "normal"
8370
+ },
8286
8371
  "status": {
8287
8372
  "type": "string",
8288
8373
  "enum": [
@@ -8317,7 +8402,7 @@
8317
8402
  "expired_at": {
8318
8403
  "type": "string",
8319
8404
  "format": "date-time",
8320
- "example": "2026-12-31T23:59:59Z"
8405
+ "example": "2026-01-01T01:00:00Z"
8321
8406
  }
8322
8407
  }
8323
8408
  }
package/dist/openapi.json CHANGED
@@ -25,13 +25,9 @@
25
25
  "name": "UDA",
26
26
  "description": "Universal Deposit Addresses — allocate cross-chain deposit addresses, fetch indicative quotes, and track settlements.\n"
27
27
  },
28
- {
29
- "name": "Vault",
30
- "description": "Non-custodial vault accounts that hold tenant funds for payouts. Inspect a vault's addresses, per-asset balances, and total USD value.\n"
31
- },
32
28
  {
33
29
  "name": "Payout",
34
- "description": "Send funds from a vault to an external address. Payouts are idempotent by reference, tracked through a lifecycle, and have native gas funded automatically.\n"
30
+ "description": "Non-custodial vaults and the payouts they fund. Inspect a vault's addresses, per-asset balances, and total value, then send funds from a vault to an external address — payouts are idempotent by reference, tracked through a lifecycle, and have native gas funded automatically.\n"
35
31
  },
36
32
  {
37
33
  "name": "Gas Stations",
@@ -457,7 +453,7 @@
457
453
  "get": {
458
454
  "operationId": "list-vaults",
459
455
  "tags": [
460
- "Vault"
456
+ "Payout"
461
457
  ],
462
458
  "summary": "List vaults",
463
459
  "description": "List all vault accounts for the authenticated tenant.",
@@ -490,7 +486,7 @@
490
486
  "get": {
491
487
  "operationId": "list-vault-addresses",
492
488
  "tags": [
493
- "Vault"
489
+ "Payout"
494
490
  ],
495
491
  "summary": "List vault addresses",
496
492
  "description": "Get all vault addresses for the authenticated tenant.",
@@ -534,7 +530,7 @@
534
530
  "get": {
535
531
  "operationId": "get-vault-address-by-network",
536
532
  "tags": [
537
- "Vault"
533
+ "Payout"
538
534
  ],
539
535
  "summary": "Get vault address by network",
540
536
  "description": "Get the vault address for a specific network.",
@@ -587,7 +583,7 @@
587
583
  "get": {
588
584
  "operationId": "get-vault-balances",
589
585
  "tags": [
590
- "Vault"
586
+ "Payout"
591
587
  ],
592
588
  "summary": "Get vault balances",
593
589
  "description": "Get balances for all vault addresses, with optional filtering by network and asset.",
@@ -647,7 +643,7 @@
647
643
  "get": {
648
644
  "operationId": "get-vault-total",
649
645
  "tags": [
650
- "Vault"
646
+ "Payout"
651
647
  ],
652
648
  "summary": "Get vault total value",
653
649
  "description": "Get the total USD value across all vault assets.",
@@ -760,7 +756,7 @@
760
756
  "Payout"
761
757
  ],
762
758
  "summary": "Create payout",
763
- "description": "Create a payout from the tenant's vault wallet to an external address. Provide either `amount` (crypto) or `usd_amount` (converted to crypto at the current rate). Payouts are idempotent by `(vault_id, reference_id)` — resubmitting a `reference_id` returns `409` instead of paying twice.\n",
759
+ "description": "Create a payout from the tenant's vault wallet to an external address. Provide either `amount` (crypto) or `usd_amount` (converted to crypto at the current rate). Payouts are idempotent by `(vault_id, reference_id)` — resubmitting a `reference_id` returns `409` instead of paying twice. Set `type` to `forceful` for a single fail-fast attempt — gas is still refilled when needed, but the refill and transfer are each tried once with no retry; the default `normal` refills and retries until `expired_at`.\n",
764
760
  "security": [
765
761
  {
766
762
  "ApiKeyAuth": []
@@ -2071,13 +2067,15 @@
2071
2067
  },
2072
2068
  "eip155_id": {
2073
2069
  "type": "integer",
2070
+ "description": "Chain-specific numeric id: the EIP-155 chain id for EVM networks, or the analogous numeric chain id Stridge uses for non-EVM (TVM, SVM) networks. Always present.\n",
2074
2071
  "example": 1
2075
2072
  },
2076
2073
  "chain_type": {
2077
2074
  "type": "string",
2078
2075
  "enum": [
2079
2076
  "EVM",
2080
- "TVM"
2077
+ "TVM",
2078
+ "SVM"
2081
2079
  ],
2082
2080
  "example": "EVM"
2083
2081
  },
@@ -2342,11 +2340,20 @@
2342
2340
  "description": "Free-form note stored on the payout.",
2343
2341
  "example": "Payment for order #12345"
2344
2342
  },
2343
+ "type": {
2344
+ "type": "string",
2345
+ "enum": [
2346
+ "normal",
2347
+ "forceful"
2348
+ ],
2349
+ "default": "normal",
2350
+ "description": "Payout strategy. `normal` (default) refills gas when needed and retries until `expired_at`. `forceful` still refills when needed but is single-attempt — the refill and the transfer are each tried once, with no retry and no `expired_at`; it fails immediately if either can't complete.\n"
2351
+ },
2345
2352
  "expired_at": {
2346
2353
  "type": "string",
2347
2354
  "format": "date-time",
2348
- "description": "Cutoff after which a non-confirmed payout expires.",
2349
- "example": "2026-12-31T23:59:59Z"
2355
+ "description": "Cutoff after which a non-confirmed payout expires. Defaults to 1 hour from creation; capped at 12 hours ahead. Ignored for `forceful` payouts.\n",
2356
+ "example": "2026-01-01T01:00:00Z"
2350
2357
  }
2351
2358
  },
2352
2359
  "required": [
@@ -2364,7 +2371,8 @@
2364
2371
  "reference_id": "order-12345",
2365
2372
  "amount": "100.50",
2366
2373
  "remark": "Payment for order #12345",
2367
- "expired_at": "2026-12-31T23:59:59Z"
2374
+ "type": "normal",
2375
+ "expired_at": "2026-01-01T01:00:00Z"
2368
2376
  }
2369
2377
  },
2370
2378
  "Payout": {
@@ -2413,6 +2421,15 @@
2413
2421
  "type": "string",
2414
2422
  "example": "Payment for order #12345"
2415
2423
  },
2424
+ "type": {
2425
+ "type": "string",
2426
+ "enum": [
2427
+ "normal",
2428
+ "forceful"
2429
+ ],
2430
+ "description": "Payout strategy the payout was created with.",
2431
+ "example": "normal"
2432
+ },
2416
2433
  "status": {
2417
2434
  "type": "string",
2418
2435
  "enum": [
@@ -2447,7 +2464,7 @@
2447
2464
  "expired_at": {
2448
2465
  "type": "string",
2449
2466
  "format": "date-time",
2450
- "example": "2026-12-31T23:59:59Z"
2467
+ "example": "2026-01-01T01:00:00Z"
2451
2468
  }
2452
2469
  }
2453
2470
  },
package/dist/types.d.ts CHANGED
@@ -243,7 +243,7 @@ export interface paths {
243
243
  put?: never;
244
244
  /**
245
245
  * Create payout
246
- * @description Create a payout from the tenant's vault wallet to an external address. Provide either `amount` (crypto) or `usd_amount` (converted to crypto at the current rate). Payouts are idempotent by `(vault_id, reference_id)` — resubmitting a `reference_id` returns `409` instead of paying twice.
246
+ * @description Create a payout from the tenant's vault wallet to an external address. Provide either `amount` (crypto) or `usd_amount` (converted to crypto at the current rate). Payouts are idempotent by `(vault_id, reference_id)` — resubmitting a `reference_id` returns `409` instead of paying twice. Set `type` to `forceful` for a single fail-fast attempt — gas is still refilled when needed, but the refill and transfer are each tried once with no retry; the default `normal` refills and retries until `expired_at`.
247
247
  */
248
248
  post: operations["create-payout"];
249
249
  delete?: never;
@@ -1330,13 +1330,16 @@ export interface components {
1330
1330
  network_name?: string;
1331
1331
  /** @example ETH */
1332
1332
  network_symbol?: string;
1333
- /** @example 1 */
1333
+ /**
1334
+ * @description Chain-specific numeric id: the EIP-155 chain id for EVM networks, or the analogous numeric chain id Stridge uses for non-EVM (TVM, SVM) networks. Always present.
1335
+ * @example 1
1336
+ */
1334
1337
  eip155_id?: number;
1335
1338
  /**
1336
1339
  * @example EVM
1337
1340
  * @enum {string}
1338
1341
  */
1339
- chain_type?: "EVM" | "TVM";
1342
+ chain_type?: "EVM" | "TVM" | "SVM";
1340
1343
  native_currency?: {
1341
1344
  /** @example ETH */
1342
1345
  symbol?: string;
@@ -1376,13 +1379,16 @@ export interface components {
1376
1379
  network_name?: string;
1377
1380
  /** @example ETH */
1378
1381
  network_symbol?: string;
1379
- /** @example 1 */
1382
+ /**
1383
+ * @description Chain-specific numeric id: the EIP-155 chain id for EVM networks, or the analogous numeric chain id Stridge uses for non-EVM (TVM, SVM) networks. Always present.
1384
+ * @example 1
1385
+ */
1380
1386
  eip155_id?: number;
1381
1387
  /**
1382
1388
  * @example EVM
1383
1389
  * @enum {string}
1384
1390
  */
1385
- chain_type?: "EVM" | "TVM";
1391
+ chain_type?: "EVM" | "TVM" | "SVM";
1386
1392
  native_currency?: {
1387
1393
  /** @example ETH */
1388
1394
  symbol?: string;
@@ -1623,7 +1629,8 @@ export interface components {
1623
1629
  * "reference_id": "order-12345",
1624
1630
  * "amount": "100.50",
1625
1631
  * "remark": "Payment for order #12345",
1626
- * "expired_at": "2026-12-31T23:59:59Z"
1632
+ * "type": "normal",
1633
+ * "expired_at": "2026-01-01T01:00:00Z"
1627
1634
  * }
1628
1635
  */
1629
1636
  CreatePayoutRequest: {
@@ -1667,10 +1674,16 @@ export interface components {
1667
1674
  * @example Payment for order #12345
1668
1675
  */
1669
1676
  remark?: string;
1677
+ /**
1678
+ * @description Payout strategy. `normal` (default) refills gas when needed and retries until `expired_at`. `forceful` still refills when needed but is single-attempt — the refill and the transfer are each tried once, with no retry and no `expired_at`; it fails immediately if either can't complete.
1679
+ * @default normal
1680
+ * @enum {string}
1681
+ */
1682
+ type: "normal" | "forceful";
1670
1683
  /**
1671
1684
  * Format: date-time
1672
- * @description Cutoff after which a non-confirmed payout expires.
1673
- * @example 2026-12-31T23:59:59Z
1685
+ * @description Cutoff after which a non-confirmed payout expires. Defaults to 1 hour from creation; capped at 12 hours ahead. Ignored for `forceful` payouts.
1686
+ * @example 2026-01-01T01:00:00Z
1674
1687
  */
1675
1688
  expired_at?: string;
1676
1689
  };
@@ -1704,6 +1717,12 @@ export interface components {
1704
1717
  reference_id?: string;
1705
1718
  /** @example Payment for order #12345 */
1706
1719
  remark?: string;
1720
+ /**
1721
+ * @description Payout strategy the payout was created with.
1722
+ * @example normal
1723
+ * @enum {string}
1724
+ */
1725
+ type?: "normal" | "forceful";
1707
1726
  /**
1708
1727
  * @example confirmed
1709
1728
  * @enum {string}
@@ -1731,7 +1750,7 @@ export interface components {
1731
1750
  confirmed_at?: string;
1732
1751
  /**
1733
1752
  * Format: date-time
1734
- * @example 2026-12-31T23:59:59Z
1753
+ * @example 2026-01-01T01:00:00Z
1735
1754
  */
1736
1755
  expired_at?: string;
1737
1756
  };
@@ -1766,6 +1785,12 @@ export interface components {
1766
1785
  reference_id?: string;
1767
1786
  /** @example Payment for order #12345 */
1768
1787
  remark?: string;
1788
+ /**
1789
+ * @description Payout strategy the payout was created with.
1790
+ * @example normal
1791
+ * @enum {string}
1792
+ */
1793
+ type?: "normal" | "forceful";
1769
1794
  /**
1770
1795
  * @example confirmed
1771
1796
  * @enum {string}
@@ -1793,7 +1818,7 @@ export interface components {
1793
1818
  confirmed_at?: string;
1794
1819
  /**
1795
1820
  * Format: date-time
1796
- * @example 2026-12-31T23:59:59Z
1821
+ * @example 2026-01-01T01:00:00Z
1797
1822
  */
1798
1823
  expired_at?: string;
1799
1824
  };
@@ -1829,6 +1854,12 @@ export interface components {
1829
1854
  reference_id?: string;
1830
1855
  /** @example Payment for order #12345 */
1831
1856
  remark?: string;
1857
+ /**
1858
+ * @description Payout strategy the payout was created with.
1859
+ * @example normal
1860
+ * @enum {string}
1861
+ */
1862
+ type?: "normal" | "forceful";
1832
1863
  /**
1833
1864
  * @example confirmed
1834
1865
  * @enum {string}
@@ -1856,7 +1887,7 @@ export interface components {
1856
1887
  confirmed_at?: string;
1857
1888
  /**
1858
1889
  * Format: date-time
1859
- * @example 2026-12-31T23:59:59Z
1890
+ * @example 2026-01-01T01:00:00Z
1860
1891
  */
1861
1892
  expired_at?: string;
1862
1893
  }[];
@@ -2890,13 +2921,16 @@ export interface operations {
2890
2921
  network_name?: string;
2891
2922
  /** @example ETH */
2892
2923
  network_symbol?: string;
2893
- /** @example 1 */
2924
+ /**
2925
+ * @description Chain-specific numeric id: the EIP-155 chain id for EVM networks, or the analogous numeric chain id Stridge uses for non-EVM (TVM, SVM) networks. Always present.
2926
+ * @example 1
2927
+ */
2894
2928
  eip155_id?: number;
2895
2929
  /**
2896
2930
  * @example EVM
2897
2931
  * @enum {string}
2898
2932
  */
2899
- chain_type?: "EVM" | "TVM";
2933
+ chain_type?: "EVM" | "TVM" | "SVM";
2900
2934
  native_currency?: {
2901
2935
  /** @example ETH */
2902
2936
  symbol?: string;
@@ -4313,6 +4347,12 @@ export interface operations {
4313
4347
  reference_id?: string;
4314
4348
  /** @example Payment for order #12345 */
4315
4349
  remark?: string;
4350
+ /**
4351
+ * @description Payout strategy the payout was created with.
4352
+ * @example normal
4353
+ * @enum {string}
4354
+ */
4355
+ type?: "normal" | "forceful";
4316
4356
  /**
4317
4357
  * @example confirmed
4318
4358
  * @enum {string}
@@ -4340,7 +4380,7 @@ export interface operations {
4340
4380
  confirmed_at?: string;
4341
4381
  /**
4342
4382
  * Format: date-time
4343
- * @example 2026-12-31T23:59:59Z
4383
+ * @example 2026-01-01T01:00:00Z
4344
4384
  */
4345
4385
  expired_at?: string;
4346
4386
  }[];
@@ -4495,10 +4535,16 @@ export interface operations {
4495
4535
  * @example Payment for order #12345
4496
4536
  */
4497
4537
  remark?: string;
4538
+ /**
4539
+ * @description Payout strategy. `normal` (default) refills gas when needed and retries until `expired_at`. `forceful` still refills when needed but is single-attempt — the refill and the transfer are each tried once, with no retry and no `expired_at`; it fails immediately if either can't complete.
4540
+ * @default normal
4541
+ * @enum {string}
4542
+ */
4543
+ type?: "normal" | "forceful";
4498
4544
  /**
4499
4545
  * Format: date-time
4500
- * @description Cutoff after which a non-confirmed payout expires.
4501
- * @example 2026-12-31T23:59:59Z
4546
+ * @description Cutoff after which a non-confirmed payout expires. Defaults to 1 hour from creation; capped at 12 hours ahead. Ignored for `forceful` payouts.
4547
+ * @example 2026-01-01T01:00:00Z
4502
4548
  */
4503
4549
  expired_at?: string;
4504
4550
  };
@@ -4542,6 +4588,12 @@ export interface operations {
4542
4588
  reference_id?: string;
4543
4589
  /** @example Payment for order #12345 */
4544
4590
  remark?: string;
4591
+ /**
4592
+ * @description Payout strategy the payout was created with.
4593
+ * @example normal
4594
+ * @enum {string}
4595
+ */
4596
+ type?: "normal" | "forceful";
4545
4597
  /**
4546
4598
  * @example confirmed
4547
4599
  * @enum {string}
@@ -4569,7 +4621,7 @@ export interface operations {
4569
4621
  confirmed_at?: string;
4570
4622
  /**
4571
4623
  * Format: date-time
4572
- * @example 2026-12-31T23:59:59Z
4624
+ * @example 2026-01-01T01:00:00Z
4573
4625
  */
4574
4626
  expired_at?: string;
4575
4627
  };
@@ -4762,6 +4814,12 @@ export interface operations {
4762
4814
  reference_id?: string;
4763
4815
  /** @example Payment for order #12345 */
4764
4816
  remark?: string;
4817
+ /**
4818
+ * @description Payout strategy the payout was created with.
4819
+ * @example normal
4820
+ * @enum {string}
4821
+ */
4822
+ type?: "normal" | "forceful";
4765
4823
  /**
4766
4824
  * @example confirmed
4767
4825
  * @enum {string}
@@ -4789,7 +4847,7 @@ export interface operations {
4789
4847
  confirmed_at?: string;
4790
4848
  /**
4791
4849
  * Format: date-time
4792
- * @example 2026-12-31T23:59:59Z
4850
+ * @example 2026-01-01T01:00:00Z
4793
4851
  */
4794
4852
  expired_at?: string;
4795
4853
  }[];
@@ -4942,6 +5000,12 @@ export interface operations {
4942
5000
  reference_id?: string;
4943
5001
  /** @example Payment for order #12345 */
4944
5002
  remark?: string;
5003
+ /**
5004
+ * @description Payout strategy the payout was created with.
5005
+ * @example normal
5006
+ * @enum {string}
5007
+ */
5008
+ type?: "normal" | "forceful";
4945
5009
  /**
4946
5010
  * @example confirmed
4947
5011
  * @enum {string}
@@ -4969,7 +5033,7 @@ export interface operations {
4969
5033
  confirmed_at?: string;
4970
5034
  /**
4971
5035
  * Format: date-time
4972
- * @example 2026-12-31T23:59:59Z
5036
+ * @example 2026-01-01T01:00:00Z
4973
5037
  */
4974
5038
  expired_at?: string;
4975
5039
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stridge/openapi",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "Public OpenAPI 3.1 specification for the Stridge API (UDA), with generated TypeScript types.",
5
5
  "type": "module",
6
6
  "license": "UNLICENSED",