@whop/cli 0.23.0 → 0.23.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -2774,7 +2774,7 @@ __export(Formatter_exports, {
2774
2774
  format: () => format2
2775
2775
  });
2776
2776
 
2777
- // ../../node_modules/.pnpm/@toon-format+toon@2.3.0/node_modules/@toon-format/toon/dist/index.mjs
2777
+ // ../../node_modules/.pnpm/@toon-format+toon@2.3.1/node_modules/@toon-format/toon/dist/index.mjs
2778
2778
  var NULL_LITERAL = "null";
2779
2779
  var DELIMITERS = {
2780
2780
  comma: ",",
@@ -2788,6 +2788,18 @@ function escapeString(value) {
2788
2788
  function isBooleanOrNullLiteral(token) {
2789
2789
  return token === "true" || token === "false" || token === "null";
2790
2790
  }
2791
+ function setOwnProperty(target, key, value) {
2792
+ if (key === "__proto__") {
2793
+ Object.defineProperty(target, key, {
2794
+ value,
2795
+ enumerable: true,
2796
+ writable: true,
2797
+ configurable: true
2798
+ });
2799
+ return;
2800
+ }
2801
+ target[key] = value;
2802
+ }
2791
2803
  function normalizeValue(value) {
2792
2804
  if (value === null) return null;
2793
2805
  if (typeof value === "object" && value !== null && "toJSON" in value && typeof value.toJSON === "function") {
@@ -2810,7 +2822,7 @@ function normalizeValue(value) {
2810
2822
  if (value instanceof Map) return Object.fromEntries(Array.from(value, ([k, v]) => [String(k), normalizeValue(v)]));
2811
2823
  if (isPlainObject(value)) {
2812
2824
  const encodedValues = {};
2813
- for (const key in value) if (Object.hasOwn(value, key)) encodedValues[key] = normalizeValue(value[key]);
2825
+ for (const key in value) if (Object.hasOwn(value, key)) setOwnProperty(encodedValues, key, normalizeValue(value[key]));
2814
2826
  return encodedValues;
2815
2827
  }
2816
2828
  return null;
@@ -3052,7 +3064,7 @@ function isTabularArray(rows, header) {
3052
3064
  for (const row of rows) {
3053
3065
  if (Object.keys(row).length !== header.length) return false;
3054
3066
  for (const key of header) {
3055
- if (!(key in row)) return false;
3067
+ if (!Object.hasOwn(row, key)) return false;
3056
3068
  if (!isJsonPrimitive(row[key])) return false;
3057
3069
  }
3058
3070
  }
@@ -3134,7 +3146,7 @@ function transformObject(obj, replacer, path9) {
3134
3146
  const childPath = [...path9, key];
3135
3147
  const replacedValue = replacer(key, value, childPath);
3136
3148
  if (replacedValue === void 0) continue;
3137
- result[key] = transformChildren(normalizeValue(replacedValue), replacer, childPath);
3149
+ setOwnProperty(result, key, transformChildren(normalizeValue(replacedValue), replacer, childPath));
3138
3150
  }
3139
3151
  return result;
3140
3152
  }
@@ -14192,6 +14204,11 @@ var native_spec_default = {
14192
14204
  name: "Verifications",
14193
14205
  "x-whop-summary": "Legal identity required before payouts and card issuing."
14194
14206
  },
14207
+ {
14208
+ description: "A financing application requests review of a merchant account for payment financing. It is not an application for a loan or business capital.\n\nCreate, list, and retrieve applications for your account and its direct sub-accounts. Creating an application returns an existing open application when one is already collecting information or awaiting review.\n",
14209
+ name: "Financing Applications",
14210
+ "x-whop-summary": "Merchant applications to accept financing payments."
14211
+ },
14195
14212
  {
14196
14213
  description: "An Export is an asynchronous CSV of one resource for one account \u2014 members, payments, disputes, ads, and the other tables the Whop dashboard can export. Generating a full table takes longer than a request, so an export is created in `pending`, moves through `processing`, and lands on `completed` with a download link. Each resource requires that resource's own export scope.\n\nUse the Exports API to start an export, poll it until `download_url` is set, and list the exports already requested for an account. Finished CSVs are retained for 30 days, after which the file is deleted and the export moves to `expired`.\n",
14197
14214
  name: "Exports",
@@ -14446,6 +14463,7 @@ var native_spec_default = {
14446
14463
  "Webhooks",
14447
14464
  "Stats",
14448
14465
  "Verifications",
14466
+ "Financing Applications",
14449
14467
  "Exports"
14450
14468
  ]
14451
14469
  },
@@ -16217,6 +16235,686 @@ var native_spec_default = {
16217
16235
  }
16218
16236
  }
16219
16237
  },
16238
+ "/accounts/{account_id}/financing_applications": {
16239
+ get: {
16240
+ description: "Lists payment-financing applications for the account in the URL. Account credentials can access their own account and direct sub-accounts, excluding deeper descendants. User credentials require the read permission on each account. Filters only narrow this visibility.",
16241
+ operationId: "list",
16242
+ parameters: [
16243
+ {
16244
+ $ref: "#/components/parameters/ApiVersionDate"
16245
+ },
16246
+ {
16247
+ description: "Merchant account ID, prefixed biz_.",
16248
+ in: "path",
16249
+ name: "account_id",
16250
+ required: true,
16251
+ schema: {
16252
+ type: "string"
16253
+ }
16254
+ },
16255
+ {
16256
+ description: "Only applications in this review state.",
16257
+ in: "query",
16258
+ name: "status",
16259
+ required: false,
16260
+ schema: {
16261
+ enum: [
16262
+ "requires_collection",
16263
+ "awaiting_review",
16264
+ "completed",
16265
+ "approved",
16266
+ "denied"
16267
+ ],
16268
+ type: "string"
16269
+ }
16270
+ },
16271
+ {
16272
+ description: "Applications created at or before this ISO 8601 timestamp.",
16273
+ in: "query",
16274
+ name: "created_before",
16275
+ required: false,
16276
+ schema: {
16277
+ type: "string"
16278
+ }
16279
+ },
16280
+ {
16281
+ description: "Applications created at or after this ISO 8601 timestamp.",
16282
+ in: "query",
16283
+ name: "created_after",
16284
+ required: false,
16285
+ schema: {
16286
+ type: "string"
16287
+ }
16288
+ },
16289
+ {
16290
+ description: "Field to sort by. Defaults to created_at.",
16291
+ in: "query",
16292
+ name: "order",
16293
+ required: false,
16294
+ schema: {
16295
+ enum: ["created_at", "updated_at"],
16296
+ type: "string"
16297
+ }
16298
+ },
16299
+ {
16300
+ description: "Sort direction. Defaults to desc.",
16301
+ in: "query",
16302
+ name: "direction",
16303
+ required: false,
16304
+ schema: {
16305
+ enum: ["asc", "desc"],
16306
+ type: "string"
16307
+ }
16308
+ },
16309
+ {
16310
+ description: "Number of results to return from the start of the range.",
16311
+ in: "query",
16312
+ name: "first",
16313
+ required: false,
16314
+ schema: {
16315
+ default: 20,
16316
+ maximum: 100,
16317
+ type: "integer"
16318
+ }
16319
+ },
16320
+ {
16321
+ description: "Return results after this cursor. Use `page_info.end_cursor` from the previous response to fetch the next page.",
16322
+ in: "query",
16323
+ name: "after",
16324
+ required: false,
16325
+ schema: {
16326
+ type: "string"
16327
+ }
16328
+ },
16329
+ {
16330
+ description: "Number of results to return from the end of the range.",
16331
+ in: "query",
16332
+ name: "last",
16333
+ required: false,
16334
+ schema: {
16335
+ maximum: 100,
16336
+ type: "integer"
16337
+ }
16338
+ },
16339
+ {
16340
+ description: "Return results before this cursor. Use `page_info.start_cursor` from the previous response to fetch the previous page.",
16341
+ in: "query",
16342
+ name: "before",
16343
+ required: false,
16344
+ schema: {
16345
+ type: "string"
16346
+ }
16347
+ }
16348
+ ],
16349
+ responses: {
16350
+ "200": {
16351
+ content: {
16352
+ "application/json": {
16353
+ schema: {
16354
+ properties: {
16355
+ data: {
16356
+ items: {
16357
+ $ref: "#/components/schemas/FinancingApplication"
16358
+ },
16359
+ type: "array"
16360
+ },
16361
+ page_info: {
16362
+ properties: {
16363
+ end_cursor: {
16364
+ example: null,
16365
+ type: ["string", "null"]
16366
+ },
16367
+ has_next_page: {
16368
+ example: false,
16369
+ type: "boolean"
16370
+ },
16371
+ has_previous_page: {
16372
+ example: false,
16373
+ type: "boolean"
16374
+ },
16375
+ start_cursor: {
16376
+ example: null,
16377
+ type: ["string", "null"]
16378
+ }
16379
+ },
16380
+ required: [
16381
+ "start_cursor",
16382
+ "end_cursor",
16383
+ "has_next_page",
16384
+ "has_previous_page"
16385
+ ],
16386
+ type: "object"
16387
+ }
16388
+ },
16389
+ required: ["data", "page_info"],
16390
+ type: "object"
16391
+ }
16392
+ }
16393
+ },
16394
+ description: "Applications returned"
16395
+ },
16396
+ "400": {
16397
+ $ref: "#/components/responses/InvalidParameters",
16398
+ description: "Invalid filter"
16399
+ },
16400
+ "401": {
16401
+ $ref: "#/components/responses/Unauthorized",
16402
+ description: "Authentication required"
16403
+ },
16404
+ "403": {
16405
+ $ref: "#/components/responses/Forbidden",
16406
+ description: "Read permission required"
16407
+ }
16408
+ },
16409
+ security: [
16410
+ {
16411
+ accountApiKeyOrAccountTokenOrOauthTokenAuth: [
16412
+ "payout:account:read"
16413
+ ]
16414
+ }
16415
+ ],
16416
+ summary: "List Financing Applications",
16417
+ tags: ["Financing Applications"],
16418
+ "x-whop-credentials": [
16419
+ "account_api_key",
16420
+ "account_token",
16421
+ "oauth_token"
16422
+ ]
16423
+ },
16424
+ post: {
16425
+ description: "Creates an application for merchant payment-financing approval. Requires an existing ledger account. Returns an existing application collecting information or awaiting review; applications awaiting review take precedence. Restricted industries cannot apply. Closed applications allow reapplication. This does not submit the application for review. Supports Idempotency-Key replay; open applications are also reused across different keys.",
16426
+ operationId: "create",
16427
+ parameters: [
16428
+ {
16429
+ $ref: "#/components/parameters/ApiVersionDate"
16430
+ },
16431
+ {
16432
+ description: "Merchant account ID, prefixed biz_.",
16433
+ in: "path",
16434
+ name: "account_id",
16435
+ required: true,
16436
+ schema: {
16437
+ type: "string"
16438
+ }
16439
+ },
16440
+ {
16441
+ description: "A unique key for safely retrying the same request for up to 24 hours.",
16442
+ in: "header",
16443
+ name: "Idempotency-Key",
16444
+ required: false,
16445
+ schema: {
16446
+ maxLength: 255,
16447
+ type: "string"
16448
+ }
16449
+ }
16450
+ ],
16451
+ requestBody: {
16452
+ content: {
16453
+ "application/json": {
16454
+ schema: {
16455
+ properties: {},
16456
+ type: "object"
16457
+ }
16458
+ }
16459
+ },
16460
+ required: true
16461
+ },
16462
+ responses: {
16463
+ "200": {
16464
+ content: {
16465
+ "application/json": {
16466
+ schema: {
16467
+ $ref: "#/components/schemas/FinancingApplication"
16468
+ }
16469
+ }
16470
+ },
16471
+ description: "Open application reused"
16472
+ },
16473
+ "201": {
16474
+ content: {
16475
+ "application/json": {
16476
+ schema: {
16477
+ $ref: "#/components/schemas/FinancingApplication"
16478
+ }
16479
+ }
16480
+ },
16481
+ description: "Application created"
16482
+ },
16483
+ "400": {
16484
+ $ref: "#/components/responses/InvalidParameters",
16485
+ description: "Restricted industry"
16486
+ },
16487
+ "401": {
16488
+ $ref: "#/components/responses/Unauthorized",
16489
+ description: "Authentication required"
16490
+ },
16491
+ "403": {
16492
+ $ref: "#/components/responses/Forbidden",
16493
+ description: "Update permission required"
16494
+ },
16495
+ "404": {
16496
+ $ref: "#/components/responses/NotFound",
16497
+ description: "Account not found"
16498
+ },
16499
+ "409": {
16500
+ $ref: "#/components/responses/Conflict"
16501
+ }
16502
+ },
16503
+ security: [
16504
+ {
16505
+ accountApiKeyOrAccountTokenOrOauthTokenAuth: [
16506
+ "payout:account:update"
16507
+ ]
16508
+ }
16509
+ ],
16510
+ summary: "Create Financing Application",
16511
+ tags: ["Financing Applications"],
16512
+ "x-whop-credentials": [
16513
+ "account_api_key",
16514
+ "account_token",
16515
+ "oauth_token"
16516
+ ]
16517
+ }
16518
+ },
16519
+ "/accounts/{account_id}/financing_applications/{id}": {
16520
+ get: {
16521
+ description: "Retrieves a payment-financing application's review state, requirements, saved answers, documents, current terms, and public review feedback. Requires read access to its owning account. Internal review notes and risk metrics are not exposed.",
16522
+ operationId: "get",
16523
+ responses: {
16524
+ "200": {
16525
+ content: {
16526
+ "application/json": {
16527
+ schema: {
16528
+ $ref: "#/components/schemas/FinancingApplication"
16529
+ }
16530
+ }
16531
+ },
16532
+ description: "Application returned"
16533
+ },
16534
+ "401": {
16535
+ $ref: "#/components/responses/Unauthorized",
16536
+ description: "Authentication required"
16537
+ },
16538
+ "403": {
16539
+ $ref: "#/components/responses/Forbidden",
16540
+ description: "Read permission required"
16541
+ },
16542
+ "404": {
16543
+ $ref: "#/components/responses/NotFound",
16544
+ description: "Application not found"
16545
+ }
16546
+ },
16547
+ security: [
16548
+ {
16549
+ accountApiKeyOrAccountTokenOrOauthTokenAuth: [
16550
+ "payout:account:read"
16551
+ ]
16552
+ }
16553
+ ],
16554
+ summary: "Retrieve Financing Application",
16555
+ tags: ["Financing Applications"],
16556
+ "x-whop-credentials": [
16557
+ "account_api_key",
16558
+ "account_token",
16559
+ "oauth_token"
16560
+ ],
16561
+ parameters: [
16562
+ {
16563
+ $ref: "#/components/parameters/ApiVersionDate"
16564
+ },
16565
+ {
16566
+ description: "Merchant account ID, prefixed biz_.",
16567
+ in: "path",
16568
+ name: "account_id",
16569
+ required: true,
16570
+ schema: {
16571
+ type: "string"
16572
+ }
16573
+ },
16574
+ {
16575
+ description: "Financing application ID, prefixed inrq_.",
16576
+ in: "path",
16577
+ name: "id",
16578
+ required: true,
16579
+ schema: {
16580
+ type: "string"
16581
+ }
16582
+ }
16583
+ ]
16584
+ },
16585
+ patch: {
16586
+ description: "Saves merchant answers while the application requires_collection. The entire batch is atomic. Omitted requirements and answer fields are unchanged; empty arrays clear values or documents, and null money clears a price. Only merchant requirement IDs returned by this application are accepted. Upload documents through the Files API first: new files must belong to the caller, be ready and private, and satisfy the requirement's formats and 20 MB limit. file_ids replaces the requirement's attachments. This does not submit the application.",
16587
+ operationId: "update",
16588
+ parameters: [
16589
+ {
16590
+ $ref: "#/components/parameters/ApiVersionDate"
16591
+ },
16592
+ {
16593
+ description: "Merchant account ID, prefixed biz_.",
16594
+ in: "path",
16595
+ name: "account_id",
16596
+ required: true,
16597
+ schema: {
16598
+ type: "string"
16599
+ }
16600
+ },
16601
+ {
16602
+ description: "Financing application ID, prefixed inrq_.",
16603
+ in: "path",
16604
+ name: "id",
16605
+ required: true,
16606
+ schema: {
16607
+ type: "string"
16608
+ }
16609
+ }
16610
+ ],
16611
+ requestBody: {
16612
+ content: {
16613
+ "application/json": {
16614
+ schema: {
16615
+ properties: {
16616
+ answers: {
16617
+ items: {
16618
+ additionalProperties: false,
16619
+ properties: {
16620
+ file_ids: {
16621
+ description: "Complete replacement set of uploaded file IDs for this requirement. Empty removes all files.",
16622
+ items: {
16623
+ type: "string"
16624
+ },
16625
+ maxItems: 20,
16626
+ type: "array",
16627
+ uniqueItems: true
16628
+ },
16629
+ money: {
16630
+ additionalProperties: false,
16631
+ properties: {
16632
+ amount: {
16633
+ description: "Positive exact decimal amount in major units, such as 1234.56. At most 12 whole digits and the currency's fractional precision.",
16634
+ type: "string"
16635
+ },
16636
+ currency: {
16637
+ description: "Currency of the maximum product price.",
16638
+ enum: [
16639
+ "usd",
16640
+ "sgd",
16641
+ "inr",
16642
+ "aud",
16643
+ "brl",
16644
+ "cad",
16645
+ "dkk",
16646
+ "eur",
16647
+ "nok",
16648
+ "gbp",
16649
+ "sek",
16650
+ "chf",
16651
+ "hkd",
16652
+ "huf",
16653
+ "jpy",
16654
+ "mxn",
16655
+ "myr",
16656
+ "pln",
16657
+ "czk",
16658
+ "nzd",
16659
+ "aed",
16660
+ "cop",
16661
+ "ron",
16662
+ "thb",
16663
+ "bgn",
16664
+ "idr",
16665
+ "dop",
16666
+ "php",
16667
+ "try",
16668
+ "krw",
16669
+ "twd",
16670
+ "vnd",
16671
+ "pkr",
16672
+ "clp",
16673
+ "uyu",
16674
+ "ars",
16675
+ "zar",
16676
+ "dzd",
16677
+ "tnd",
16678
+ "mad",
16679
+ "kes",
16680
+ "kwd",
16681
+ "jod",
16682
+ "all",
16683
+ "xcd",
16684
+ "amd",
16685
+ "bsd",
16686
+ "bhd",
16687
+ "bob",
16688
+ "bam",
16689
+ "khr",
16690
+ "crc",
16691
+ "xof",
16692
+ "egp",
16693
+ "etb",
16694
+ "gmd",
16695
+ "ghs",
16696
+ "gtq",
16697
+ "gyd",
16698
+ "ils",
16699
+ "jmd",
16700
+ "mop",
16701
+ "mga",
16702
+ "mur",
16703
+ "mdl",
16704
+ "mnt",
16705
+ "nad",
16706
+ "ngn",
16707
+ "mkd",
16708
+ "omr",
16709
+ "pyg",
16710
+ "pen",
16711
+ "qar",
16712
+ "rwf",
16713
+ "sar",
16714
+ "rsd",
16715
+ "lkr",
16716
+ "tzs",
16717
+ "ttd",
16718
+ "uzs",
16719
+ "rub",
16720
+ "cny",
16721
+ "kzt",
16722
+ "awg"
16723
+ ],
16724
+ example: "usd",
16725
+ type: "string"
16726
+ }
16727
+ },
16728
+ required: ["amount", "currency"],
16729
+ type: ["object", "null"]
16730
+ },
16731
+ requirement_id: {
16732
+ description: "ID of a merchant requirement returned on this application.",
16733
+ example: "inrqi_xxxxxxxxxxxxxx",
16734
+ type: "string"
16735
+ },
16736
+ values: {
16737
+ description: "Text answers. Use money instead for max_product_price.",
16738
+ items: {
16739
+ example: "https://example.com/updated",
16740
+ type: "string"
16741
+ },
16742
+ type: "array"
16743
+ }
16744
+ },
16745
+ required: ["requirement_id"],
16746
+ type: "object"
16747
+ },
16748
+ maxItems: 50,
16749
+ minItems: 1,
16750
+ type: "array"
16751
+ }
16752
+ },
16753
+ required: ["answers"],
16754
+ type: "object"
16755
+ }
16756
+ }
16757
+ },
16758
+ required: true
16759
+ },
16760
+ responses: {
16761
+ "200": {
16762
+ content: {
16763
+ "application/json": {
16764
+ schema: {
16765
+ $ref: "#/components/schemas/FinancingApplication"
16766
+ }
16767
+ }
16768
+ },
16769
+ description: "Answers saved"
16770
+ },
16771
+ "400": {
16772
+ $ref: "#/components/responses/InvalidParameters",
16773
+ description: "Invalid answers or application state"
16774
+ },
16775
+ "401": {
16776
+ $ref: "#/components/responses/Unauthorized",
16777
+ description: "Authentication required"
16778
+ },
16779
+ "403": {
16780
+ $ref: "#/components/responses/Forbidden",
16781
+ description: "Update permission required"
16782
+ },
16783
+ "404": {
16784
+ $ref: "#/components/responses/NotFound",
16785
+ description: "Application not found"
16786
+ }
16787
+ },
16788
+ security: [
16789
+ {
16790
+ accountApiKeyOrAccountTokenOrOauthTokenAuth: [
16791
+ "payout:account:update"
16792
+ ]
16793
+ }
16794
+ ],
16795
+ summary: "Update Financing Application",
16796
+ tags: ["Financing Applications"],
16797
+ "x-whop-credentials": [
16798
+ "account_api_key",
16799
+ "account_token",
16800
+ "oauth_token"
16801
+ ]
16802
+ }
16803
+ },
16804
+ "/accounts/{account_id}/financing_applications/{id}/submit": {
16805
+ post: {
16806
+ description: "Submits a complete application for financing review. Present the application's terms.content, policies, and disclosure to the merchant and collect affirmative acceptance before calling this endpoint. Pass the terms.version that was presented; stale versions are rejected. The server records acceptance, submitting actor, and submission time before entering awaiting_review. Only requires_collection applications may submit, including after a reviewer requests more information. Resubmissions require acceptance again. Use Idempotency-Key for retries; submitting an application already in review without replay returns an error. Approval does not itself enable financing payment methods.",
16807
+ operationId: "submit",
16808
+ parameters: [
16809
+ {
16810
+ $ref: "#/components/parameters/ApiVersionDate"
16811
+ },
16812
+ {
16813
+ description: "Merchant account ID, prefixed biz_.",
16814
+ in: "path",
16815
+ name: "account_id",
16816
+ required: true,
16817
+ schema: {
16818
+ type: "string"
16819
+ }
16820
+ },
16821
+ {
16822
+ description: "Financing application ID, prefixed inrq_.",
16823
+ in: "path",
16824
+ name: "id",
16825
+ required: true,
16826
+ schema: {
16827
+ type: "string"
16828
+ }
16829
+ },
16830
+ {
16831
+ description: "A unique key for safely retrying the same request for up to 24 hours.",
16832
+ in: "header",
16833
+ name: "Idempotency-Key",
16834
+ required: false,
16835
+ schema: {
16836
+ maxLength: 255,
16837
+ type: "string"
16838
+ }
16839
+ }
16840
+ ],
16841
+ requestBody: {
16842
+ content: {
16843
+ "application/json": {
16844
+ schema: {
16845
+ properties: {
16846
+ merchant_acceptance: {
16847
+ properties: {
16848
+ accepted: {
16849
+ description: "Affirmation that the merchant accepted the presented terms.",
16850
+ enum: [true],
16851
+ example: true,
16852
+ type: "boolean"
16853
+ },
16854
+ terms_version: {
16855
+ description: "Exact terms.version returned by the application and presented to the merchant.",
16856
+ example: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
16857
+ type: "string"
16858
+ }
16859
+ },
16860
+ required: ["accepted", "terms_version"],
16861
+ type: "object"
16862
+ }
16863
+ },
16864
+ required: ["merchant_acceptance"],
16865
+ type: "object"
16866
+ }
16867
+ }
16868
+ },
16869
+ required: true
16870
+ },
16871
+ responses: {
16872
+ "200": {
16873
+ content: {
16874
+ "application/json": {
16875
+ schema: {
16876
+ $ref: "#/components/schemas/FinancingApplication"
16877
+ }
16878
+ }
16879
+ },
16880
+ description: "Application submitted"
16881
+ },
16882
+ "400": {
16883
+ $ref: "#/components/responses/InvalidParameters",
16884
+ description: "Invalid answers, acceptance, or application state"
16885
+ },
16886
+ "401": {
16887
+ $ref: "#/components/responses/Unauthorized",
16888
+ description: "Authentication required"
16889
+ },
16890
+ "403": {
16891
+ $ref: "#/components/responses/Forbidden",
16892
+ description: "Update permission required"
16893
+ },
16894
+ "404": {
16895
+ $ref: "#/components/responses/NotFound",
16896
+ description: "Application not found"
16897
+ },
16898
+ "409": {
16899
+ $ref: "#/components/responses/Conflict"
16900
+ }
16901
+ },
16902
+ security: [
16903
+ {
16904
+ accountApiKeyOrAccountTokenOrOauthTokenAuth: [
16905
+ "payout:account:update"
16906
+ ]
16907
+ }
16908
+ ],
16909
+ summary: "Submit Financing Application",
16910
+ tags: ["Financing Applications"],
16911
+ "x-whop-credentials": [
16912
+ "account_api_key",
16913
+ "account_token",
16914
+ "oauth_token"
16915
+ ]
16916
+ }
16917
+ },
16220
16918
  "/accounts/{account_id}/preferences": {
16221
16919
  get: {
16222
16920
  description: "Retrieves the account's preferences: a singleton settings document keyed by preference name.",
@@ -16758,7 +17456,7 @@ var native_spec_default = {
16758
17456
  type: "boolean"
16759
17457
  },
16760
17458
  economic_intelligence_duration_key: {
16761
- description: "Turns on Economic Intelligence for the duration with this `key` in `economic_intelligence_offers`, at that duration's fee. It can't be changed or turned off until `economic_intelligence_ends_at`, and it can only be turned on once the account is off the Economic Intelligence waitlist. Requires the `company:update` scope on your API key.",
17459
+ description: "Turns on Economic Intelligence for the duration with this `key` in `economic_intelligence_offers`, at that duration's fee. It can't be changed or turned off until `economic_intelligence_ends_at`. Requires the `company:update` scope on your API key.",
16762
17460
  enum: ["7_days", "1_day", "1_hour"],
16763
17461
  example: "7_days",
16764
17462
  type: "string"
@@ -22461,6 +23159,7 @@ var native_spec_default = {
22461
23159
  "book_now",
22462
23160
  "call_now",
22463
23161
  "contact_us",
23162
+ "donate_now",
22464
23163
  "download",
22465
23164
  "get_directions",
22466
23165
  "get_offer",
@@ -22474,10 +23173,12 @@ var native_spec_default = {
22474
23173
  "request_time",
22475
23174
  "see_details",
22476
23175
  "see_menu",
23176
+ "see_more",
22477
23177
  "send_updates",
22478
23178
  "shop_now",
22479
23179
  "sign_up",
22480
23180
  "subscribe",
23181
+ "visit_site",
22481
23182
  "watch_more"
22482
23183
  ],
22483
23184
  example: "message_page",
@@ -23111,6 +23812,7 @@ var native_spec_default = {
23111
23812
  "book_now",
23112
23813
  "call_now",
23113
23814
  "contact_us",
23815
+ "donate_now",
23114
23816
  "download",
23115
23817
  "get_directions",
23116
23818
  "get_offer",
@@ -23124,10 +23826,12 @@ var native_spec_default = {
23124
23826
  "request_time",
23125
23827
  "see_details",
23126
23828
  "see_menu",
23829
+ "see_more",
23127
23830
  "send_updates",
23128
23831
  "shop_now",
23129
23832
  "sign_up",
23130
23833
  "subscribe",
23834
+ "visit_site",
23131
23835
  "watch_more"
23132
23836
  ],
23133
23837
  example: "learn_more",
@@ -67944,6 +68648,7 @@ var native_spec_default = {
67944
68648
  economic_intelligence: false,
67945
68649
  email: "marcus@shinetime.example",
67946
68650
  eula: null,
68651
+ financing: null,
67947
68652
  home_preferences: [],
67948
68653
  id: "biz_xxxxxxxxxxxxxx",
67949
68654
  industry_group: null,
@@ -68263,6 +68968,7 @@ var native_spec_default = {
68263
68968
  economic_intelligence: false,
68264
68969
  email: "marcus@shinetime.example",
68265
68970
  eula: null,
68971
+ financing: null,
68266
68972
  home_preferences: [],
68267
68973
  id: "biz_xxxxxxxxxxxxxx",
68268
68974
  industry_group: null,
@@ -68582,6 +69288,7 @@ var native_spec_default = {
68582
69288
  economic_intelligence: false,
68583
69289
  email: "marcus@shinetime.example",
68584
69290
  eula: null,
69291
+ financing: null,
68585
69292
  home_preferences: [],
68586
69293
  id: "biz_xxxxxxxxxxxxxx",
68587
69294
  industry_group: null,
@@ -68968,6 +69675,9 @@ var native_spec_default = {
68968
69675
  "event_rsvp",
68969
69676
  "see_details",
68970
69677
  "view_instagram_profile",
69678
+ "donate_now",
69679
+ "see_more",
69680
+ "visit_site",
68971
69681
  null
68972
69682
  ],
68973
69683
  example: "learn_more",
@@ -82281,6 +82991,17 @@ var native_spec_default = {
82281
82991
  }
82282
82992
  ]
82283
82993
  },
82994
+ financing: {
82995
+ description: "The account's most recent financing application. Computed only on `retrieve` and `me` for callers with `company:balance:read` scope; `null` otherwise, or when the account has never applied for financing.",
82996
+ oneOf: [
82997
+ {
82998
+ $ref: "#/components/schemas/AccountFinancing"
82999
+ },
83000
+ {
83001
+ type: "null"
83002
+ }
83003
+ ]
83004
+ },
82284
83005
  home_preferences: {
82285
83006
  items: {
82286
83007
  description: "Public account home page preferences.",
@@ -82685,6 +83406,7 @@ var native_spec_default = {
82685
83406
  "capabilities",
82686
83407
  "payment_controls",
82687
83408
  "cards",
83409
+ "financing",
82688
83410
  "required_actions",
82689
83411
  "recommended_actions",
82690
83412
  "tax_remitted_by",
@@ -85989,6 +86711,29 @@ var native_spec_default = {
85989
86711
  ],
85990
86712
  type: "object"
85991
86713
  },
86714
+ AccountFinancing: {
86715
+ properties: {
86716
+ application_id: {
86717
+ description: "The ID of the account's most recent financing application, starting with inrq_. Retrieve it for requirements and review feedback.",
86718
+ example: "inrq_xxxxxxxxxxxxxx",
86719
+ type: "string"
86720
+ },
86721
+ status: {
86722
+ description: "The most recent financing application's review state: `requires_collection` (waiting on the merchant, including after a request for more information), `awaiting_review`, `approved`, `denied`, or `completed`. Whether financing payment methods are enabled is `capabilities.accept_bnpl_payments`.",
86723
+ enum: [
86724
+ "requires_collection",
86725
+ "awaiting_review",
86726
+ "completed",
86727
+ "approved",
86728
+ "denied"
86729
+ ],
86730
+ example: "awaiting_review",
86731
+ type: "string"
86732
+ }
86733
+ },
86734
+ required: ["application_id", "status"],
86735
+ type: "object"
86736
+ },
85992
86737
  AccountParent: {
85993
86738
  properties: {
85994
86739
  fees: {
@@ -86865,6 +87610,9 @@ var native_spec_default = {
86865
87610
  "event_rsvp",
86866
87611
  "see_details",
86867
87612
  "view_instagram_profile",
87613
+ "donate_now",
87614
+ "see_more",
87615
+ "visit_site",
86868
87616
  null
86869
87617
  ],
86870
87618
  example: "learn_more",
@@ -94388,6 +95136,217 @@ var native_spec_default = {
94388
95136
  required: ["part_number", "url"],
94389
95137
  type: "object"
94390
95138
  },
95139
+ FinancingApplication: {
95140
+ properties: {
95141
+ account_id: {
95142
+ description: "The ID of the merchant account applying for payment financing, starting with biz_.",
95143
+ example: "biz_xxxxxxxxxxxxxx",
95144
+ type: "string"
95145
+ },
95146
+ created_at: {
95147
+ description: "When the application was created, as an ISO 8601 timestamp.",
95148
+ example: "2026-01-01T12:00:00.000Z",
95149
+ type: "string"
95150
+ },
95151
+ feedback: {
95152
+ description: "Public review feedback when more information is requested or the application is denied. Internal notes are never included.",
95153
+ example: null,
95154
+ type: ["string", "null"]
95155
+ },
95156
+ id: {
95157
+ description: "The financing application ID, starting with inrq_.",
95158
+ example: "inrq_xxxxxxxxxxxxxx",
95159
+ type: "string"
95160
+ },
95161
+ requirements: {
95162
+ items: {
95163
+ $ref: "#/components/schemas/FinancingRequirement",
95164
+ description: "Merchant requirements and saved answers. Present on individual application responses, omitted from lists. Acceptance is collected separately on submit."
95165
+ },
95166
+ type: "array"
95167
+ },
95168
+ status: {
95169
+ description: "The application's review state. Approval does not by itself indicate that financing payment methods are enabled on the account.",
95170
+ enum: [
95171
+ "requires_collection",
95172
+ "awaiting_review",
95173
+ "completed",
95174
+ "approved",
95175
+ "denied"
95176
+ ],
95177
+ example: "requires_collection",
95178
+ type: "string"
95179
+ },
95180
+ terms: {
95181
+ $ref: "#/components/schemas/FinancingTerms",
95182
+ description: "Current terms to present before submitting. Present on individual application responses."
95183
+ },
95184
+ updated_at: {
95185
+ description: "When the application was last updated, as an ISO 8601 timestamp.",
95186
+ example: "2026-01-01T12:00:00.000Z",
95187
+ type: "string"
95188
+ }
95189
+ },
95190
+ required: ["id", "account_id", "status", "created_at", "updated_at"],
95191
+ type: "object"
95192
+ },
95193
+ FinancingRequirement: {
95194
+ properties: {
95195
+ accepted_file_formats: {
95196
+ items: {
95197
+ description: "Accepted document formats, such as pdf or jpeg.",
95198
+ type: "string"
95199
+ },
95200
+ type: "array"
95201
+ },
95202
+ field: {
95203
+ description: "The information requested, such as business_description or processing_statements.",
95204
+ example: "business_description",
95205
+ type: "string"
95206
+ },
95207
+ file_collection_type: {
95208
+ description: "Whether the requirement accepts no file, one file, or multiple files.",
95209
+ enum: ["none", "single", "multi"],
95210
+ example: "none",
95211
+ type: "string"
95212
+ },
95213
+ files: {
95214
+ items: {
95215
+ $ref: "#/components/schemas/File",
95216
+ description: "Files attached to this requirement, including expiring download URLs."
95217
+ },
95218
+ type: "array"
95219
+ },
95220
+ id: {
95221
+ description: "Requirement ID to use when updating this application's answers.",
95222
+ example: "inrqi_xxxxxxxxxxxxxx",
95223
+ type: "string"
95224
+ },
95225
+ max_file_size: {
95226
+ description: "Maximum size in bytes for each uploaded document.",
95227
+ example: 20971520,
95228
+ type: "integer"
95229
+ },
95230
+ minimum_length: {
95231
+ description: "Minimum characters per text answer, when specified.",
95232
+ example: 100,
95233
+ type: ["integer", "null"]
95234
+ },
95235
+ money: {
95236
+ description: "Saved maximum product price in its original currency. Null when unanswered or the saved legacy answer is invalid.",
95237
+ oneOf: [
95238
+ {
95239
+ $ref: "#/components/schemas/Money"
95240
+ },
95241
+ {
95242
+ type: "null"
95243
+ }
95244
+ ]
95245
+ },
95246
+ options: {
95247
+ items: {
95248
+ description: "Allowed dropdown values. Empty when the answer is not an enumeration.",
95249
+ type: "string"
95250
+ },
95251
+ type: "array"
95252
+ },
95253
+ required: {
95254
+ description: "Whether this requirement must be completed before submission.",
95255
+ example: true,
95256
+ type: "boolean"
95257
+ },
95258
+ text_collection_type: {
95259
+ description: "Whether the requirement accepts no text, one value, or multiple values.",
95260
+ enum: ["none", "single", "multi"],
95261
+ example: "single",
95262
+ type: "string"
95263
+ },
95264
+ text_format: {
95265
+ description: "Expected text format. max_product_price uses money instead of values.",
95266
+ enum: [
95267
+ "plain",
95268
+ "url",
95269
+ "email",
95270
+ "phone",
95271
+ "number",
95272
+ "checkbox",
95273
+ "dropdown"
95274
+ ],
95275
+ example: "plain",
95276
+ type: "string"
95277
+ },
95278
+ values: {
95279
+ items: {
95280
+ description: "Saved text answers. Empty for money requirements; read money instead.",
95281
+ example: "https://example.com/shop",
95282
+ type: "string"
95283
+ },
95284
+ type: "array"
95285
+ }
95286
+ },
95287
+ required: [
95288
+ "id",
95289
+ "field",
95290
+ "required",
95291
+ "text_collection_type",
95292
+ "file_collection_type",
95293
+ "text_format",
95294
+ "values",
95295
+ "money",
95296
+ "files",
95297
+ "minimum_length",
95298
+ "options",
95299
+ "accepted_file_formats",
95300
+ "max_file_size"
95301
+ ],
95302
+ type: "object"
95303
+ },
95304
+ FinancingTerms: {
95305
+ properties: {
95306
+ content: {
95307
+ description: "The exact plain-text contract snapshot covered by this version. Present this content, the policies, and the disclosure before collecting acceptance.",
95308
+ example: "https://whop.com/splitit-terms/\xA0\n\nWe are a retailer of goods or services that you are seeking to purchase (\u201Cus\u201C, \u201Cour\u201D, \u201Cwe\u201D or \u201CMerchant\u201D). This Retail Installment Contract Terms & Conditions (\u201CAgreement\u201D) is between us and you, the cardholder, who is making the purchase (\u201CBuyer\u201D, \u201Cyou\u201C, \u201Cyour\u201D).\n\nThese terms are in addition to our normal terms of business, including our Return Policy. By choosing to make this purchase using installments, you agree to be bound by this agreement. These additional terms for payment by installment apply when you select the option of paying for your purchase by installments, using a payment card issued by a credit card issuer (\u201CIssuer\u201D). In order to process card payments by installment, we are using a third party technology service provided by Splitit USA Inc. (\u201CSplitit\u201D or \u201CService Provider\u201D), but you have not entered into an agreement with Splitit.\n\nHow it Works. By selecting the \u201CSplitit\u201D payment option at the checkout page, you authorize us to put a hold on your payment card for the Total Sale Price (as defined below under xxxxxxxxxxxxxx), however we will only charge the eligible card provided to us over time in the number of payments and amounts that you selected at checkout (we call these payments \u201Cxxxxxxxxxxxx\u201C). The date and amount of each Installment is shown at checkout before you complete your purchase and a complete record is emailed to you immediately after you complete your purchase. We will charge the initial payment to your card when your order is completed (or later, if shipment is later, in accordance with the payment schedule). Each subsequent Installment is charged monthly, on the dates shown in the payment schedule presented to you at checkout, until the entire amount due under this Agreement is paid. As further described under the xxxxxxxxxxxxxx section, your credit card is eligible if there is available credit (or balance, in the case of a debit card) to support an xxxxxxxxxxxxx for the Total Sale Price and you are authorized to use the payment card to make the transaction. If we are not able to renew an authorization for the amount you owe by your next Installment due date we may charge your card for the Total Sale Price, less the amount of any xxxxxxxxxxxx you have already paid.\n\nNeither we nor Splitit impose any interest or additional charges on you for selecting this payment option. However, we are required by law to warn you that you may have to pay other taxes or costs that are not imposed by us (such as internet charges, fees and interest imposed by the Issuer, or charges imposed by customs in your country). IN PARTICULAR, PLEASE NOTE, AS INSTALLMENT PAYMENTS ARE BEING CHARGED TO YOUR CARD, YOU MAY BE CHARGED INTEREST AND FEES OR OTHER CHARGES IMPOSED BY YOUR CARD ISSUER UNDER THEIR AGREEMENT WITH YOU. THIS COULD INCLUDE LATE PAYMENT FEES, OVERDRAFT FEES, PERIODIC INTEREST, OR OVER-THE-LIMIT FEES. YOU ARE SOLELY RESPONSIBLE FOR THESE FEES.\n\nxxxxxxxxxxxxxx. If you provide a credit card to make payments, we may obtain an authorization against your credit card for up to the total amount of your purchase (\u201CTotal Sale Price\u201D). An \u201Cauthorization\u201D means that the available credit on your credit card will be reduced by an amount, up to the Total Sale Price, in order to ensure you have sufficient available credit to make future payments. You will likely not be able to use that amount of your credit line while the authorization remains in place, subject to rules imposed by your Issuer. Even if your Issuer does not restrict the available credit, you must ensure that you have enough available credit to cover the full outstanding amount owed under this Agreement for your purchase at all times.\n\nTo ensure we retain a valid authorization against your credit card, we may need to renew the authorization periodically using the credit card details provided at the time of purchase (or a subsequent credit card you provide). The amount of any new authorization or any reauthorization will equal the current outstanding value of your installment plan. It may take up to 5 days for the amount of the authorization to be reduced after you make a payment. We will notify you by email approximately 24 hours before the authorization is renewed.\n\nIf any authorization we seek to make against your credit card fails, we will contact you by email (using the email address you provided at checkout) to let you know. We may also contact you via SMS to the extent you have authorized us to do so. We will also keep attempting to get approval for the authorization by submitting a request to your payment card periodically for up to 7 days. You can provide us with a different eligible credit card to use for authorizations and xxxxxxxxxxxx via the consumer portal, using the unique link we email to you when you enter into this Agreement (\u201CPortal\u201C). By providing a new credit card, you authorize us to obtain authorizations for the remaining amounts owed under this Agreement, as set forth in this Agreement, and you further authorize us to charge this updated credit card for outstanding xxxxxxxxxxxx owed, when due under this Agreement. You also authorize us to charge or refund your credit card as necessary to correct any errors. If we are not able to renew an authorization for the amount you owe under this Agreement by your next Installment due date, and you do not make an Installment payment by the due date (subject to any applicable grace period) or successfully authorize those amounts on another eligible card, we may charge your credit card for the Total Sale Price, less the amount of any xxxxxxxxxxxx you have already paid.\n\nTHIS AGREEMENT INCLUDES AN ARBITRATION AGREEMENT. IT WILL HAVE A SUBSTANTIAL EFFECT ON YOUR RIGHTS IN THE EVENT OF A DISPUTE UNLESS YOU: (1) OPT OUT WITHIN 30 DAYS OF SIGNING THIS AGREEMENT; OR (2) ARE PROTECTED BY THE MILITARY LENDING ACT. YOU WILL NOT HAVE THE RIGHT TO A JURY TRIAL OR THE RIGHT TO PARTICIPATE IN A CLASS ACTION IN COURT OR IN ARBITRATION.\n\nRight to Stop Payment; Changing your Payment Method: You have a right to stop payment on your selected credit or debit card by writing to our Service Provider by email at support@splitit.com, or by providing a new eligible card in the Portal. You must tell our Service Provider in time for us to receive your request at least 3 business days before your next Installment due date. If you call, we may require you to confirm your request in writing within 14 days after your call. If your credit or debit card is replaced, cancelled, no longer valid, or you wish to use a different card, you must log on to the Portal and provide an eligible card at least 3 business days before your next Installment due date. We may not be able to process your request if we do not receive it in time. If you do not have sufficient available credit or available funds on the new card to process the authorization, we may not accept the card.\n\nIt is your responsibility to ensure that, until the last Installment is paid, the card you present for payment at the time of purchase, or anytime thereafter, remains valid, is not cancelled, and has sufficient available balance or available credit to pay all xxxxxxxxxxxx and to accept authorizations that may be made under this Agreement.\n\nPAYMENT AUTHORIZATION: BY ACCEPTING THIS AGREEMENT, YOU AUTHORIZE US OR OUR SERVICE PROVIDER TO (1) AUTHORIZE YOUR SELECTED CARD FOR UP TO THE TOTAL SALE PRICE AS DESCRIBED ABOVE; (2) CHARGE YOUR SELECTED CARD FOR THE AMOUNT OF YOUR FIRST INSTALLMENT ON OR AFTER THE DATE OF THIS AGREEMENT; (3) CHARGE YOUR SELECTED CARD IN THE AMOUNT OF EACH INSTALLMENT ON EACH INSTALLMENT DUE DATE AS DESCRIBED IN YOUR TRUTH IN LENDING DISCLOSURES AND PAYMENT SCHEDULE; (4) CHARGE YOUR SELECTED CARD FOR THE TOTAL SALE PRICE LESS ANY INSTALLMENTS YOU HAVE ALREADY PAID (A) IN AN EVENT OF DEFAULT (SUBJECT TO ANY NOTICE AND CURE RIGHTS YOU MAY HAVE BY LAW) OR (B) IF YOU CANCEL THIS AGREEMENT AFTER THE TIME PERMITTED BY THIS AGREEMENT; AND (5) CHARGE YOUR SELECTED CARD AS NECESSARY TO CORRECT ANY ERRORS. THIS PAYMENT AUTHORIZATION WILL REMAIN IN FULL FORCE AND EFFECT UNTIL ALL INSTALLMENTS ARE PAID IN FULL OR WE RECEIVE NOTICE THAT YOU REVOKE THIS AUTHORIZATION.\n\nHandling Card Payments and xxxxxxxxxxxxx. We use a third-party technology platform provided by Splitit to keep a record of payments you owe us and we use their platform to process authorizations and payments at the times we have agreed and to send notifications to you. You will see some of the emails say they are \u201Cpowered by Splitit\u201D. This should help you identify what payments we are contacting you about.\n\nReturns. You may return the goods to us as set forth in our Return Policy.\n\nxxxxxxxxxxxx. You have the right to cancel this Agreement to pay for your purchase using xxxxxxxxxxxx at any time, but once you cancel this Agreement, the Total Sale Price less any amounts already paid will become due in full. To request a cancellation, please contact our Service Provider by email at support@splitit.com.\xA0\n\nDefault. Subject to applicable law, which may require that we notify and/or give you a right to cure your default, we may declare you in default under this Agreement for any of the following reasons: (1) you fail to pay any Installment by the due date, and after any applicable grace period; (2) you violate any promise you make to us in this Agreement which significantly impairs your ability to pay or our ability to collect the amounts due under this Agreement; (3) you file for protection under the United States Bankruptcy Code, or become subject to a proceeding which seeks relief from debt; (4) you have made a false or misleading statement about an important matter in connection with this Agreement; (5) you revoke your consent to electronic communications; or (6) you die or become legally incompetent.\n\nxxxxxxxxxxxx of Default. If you are in default of this Agreement, we can require you to pay the remaining amount you owe us under this Agreement immediately, subject to any right you may have to notice of default and to cure such default. We may seek payment of this amount by charging your credit or debit card pursuant to any authorization you provided us under this Agreement. If we refer this Agreement to an attorney who is not our salaried employee for collection, we may require you to pay our reasonable attorneys\u2019 fees and expenses, to the extent permitted by applicable law.\n\nAssignment. You are hereby notified and agree that we may transfer, sell, or assign this Agreement, the xxxxxxxxxxxx, or any associated rights, to a third party, including Splitit or one of its affiliates, without any further notification to you. If we do so, this Agreement will remain in effect and will be binding on and will inure to the benefit of our assign(s). You may not transfer your rights under this Agreement and any attempt to do so will be void.\n\nGoverning law; xxxxxxxxxxxx. This Agreement (and our dealing prior to this Agreement being made) shall be governed by federal law, and to the extent not pre-empted, the laws of the state in which you purchased the goods and services; provided that you are entitled to the benefit of any mandatory consumer protection rules of the country of your primary residence. If any provision of this Agreement or portion thereof is held to be unenforceable, this determination will not affect the remainder of this Agreement.\n\nIndemnity and Limitation of Liability. You agree to indemnify, defend, and hold us, our service providers, and our respective agents, officers, directors, employees and assigns (collectively, the \u201CIndemnified Parties\u201D) harmless from and against any liability, including reasonable attorneys\u2019 fees, related to this Agreement. THE INDEMNIFIED PARTIES WILL NOT BE LIABLE FOR INDIRECT, SPECIAL, OR CONSEQUENTIAL DAMAGES REGARDLESS OF THE FORM OF ACTION AND EVEN IF WE HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. IF WE FAIL TO STOP PAYMENT ON AN ITEM, OR PAY AN ITEM BEARING AN UNAUTHORIZED SIGNATURE, FORGED SIGNATURE, OR FORGED ENDORSEMENT OR ALTERATION, OUR LIABILITY, IF ANY, WILL BE LIMITED TO THE FACE AMOUNT OF THE ITEM. The foregoing limitation of liability will not apply where expressly prohibited by the laws governing this Agreement. This Limitation of Liability section will survive termination of this Agreement.\n\nArbitration Agreement. We are always interested in resolving disputes, claims, or controversies (\u201CClaim\u201D) amicably and efficiently, and most customer concerns can be resolved quickly and to the customer\u2019s satisfaction by contacting us by email through our Service Provider at support@splitit.com or by mail at Splitit USA, Inc., 211 Perimeter Center Pkwy NW, Suite 240, Atlanta, GA 30346. If such efforts prove unsuccessful, you and we agree that all disputes shall be resolved by binding arbitration on an individual basis. A party who intends to seek arbitration must first send to the other, by certified mail, a written Notice of Dispute (\u201CNotice\u201D). The Notice must (a) describe the nature and basis of the Claim and (b) set forth the specific relief sought. If you do not resolve the Claim with us or the Indemnified Party within 60 calendar days after the Notice is received, you, we or the Indemnified Party, as applicable, may commence an arbitration proceeding, as set forth in this section. Arbitration will be conducted by a neutral arbitrator in accordance with the AAA rules and procedures, including the AAA\u2019s Consumer Arbitration Rules (collectively, the \u201CAAA Rules\u201D), as modified by this Arbitration Agreement. The arbitrator must also follow the provisions of this Agreement as a court would. IF ANY PARTY COMMENCES ARBITRATION WITH RESPECT TO A CLAIM, NEITHER YOU, WE, OR THE INDEMNIFIED PARTY WILL HAVE THE RIGHT TO LITIGATE THAT CLAIM IN COURT OR HAVE A JURY TRIAL ON THAT CLAIM, OR TO ENGAGE IN PRE-ARBITRATION DISCOVERY, EXCEPT AS PROVIDED FOR IN THE APPLICABLE AAA RULES. FURTHER, YOU WILL NOT HAVE THE RIGHT TO PARTICIPATE AS A REPRESENTATIVE OR MEMBER OF ANY CLASS OF CLAIMANTS PERTAINING TO THAT CLAIM, AND YOU WILL HAVE ONLY THOSE RIGHTS THAT ARE AVAILABLE IN AN INDIVIDUAL ARBITRATION. THE ARBITRATOR\u2019S DECISION SHALL BE FINAL AND BINDING ON ALL PARTIES, EXCEPT AS PROVIDED IN THE FEDERAL ARBITRATION ACT (the \u201CFAA\u201D). xxxxxxxxxxxxxxx the foregoing, you and we retain the right to pursue in small claims court (or an equivalent state court) any dispute that is within that court\u2019s jurisdiction, so long as the disputes remain in such court and advance only an individual claim for relief. If either you or we fail to submit to binding arbitration of an arbitrable dispute following lawful demand, the party so failing shall bear all costs and expenses incurred by the other in compelling arbitration.\n\nRIGHT TO OPT OUT: If you do not want this Arbitration Agreement to apply, you must notify us within 30 calendar days after you sign the Agreement. You must send the notice in writing to our Service Provider at support@splitit.com. You must provide your name, address and state that you \u201Copt out\u201D of the Arbitration Agreement. Opting out will not affect the other provisions of this Agreement. If you opt out, it will apply only to this Agreement and not any other agreement you may have with us.\n\nTHIS ARBITRATION AGREEMENT DOES NOT APPLY TO YOU IF, AS OF THE DATE OF THIS AGREEMENT, YOU ARE A COVERED BORROWER UNDER THE FEDERAL MILITARY LENDING ACT. IF YOU WOULD LIKE MORE INFORMATION ABOUT WHETHER YOU ARE COVERED BY THE MILITARY LENDING ACT, IN WHICH CASE THIS ARBITRATION PROVISION DOES NOT APPLY TO YOU, PLEASE CONTACT OUR SERVICE PROVIDER AT SUPPORT@SPLITIT.COM\n\nProhibition of Class and xxxxxxxxxxxxxx Actions and Non-xxxxxxxxxxxxxx Relief. YOU AGREE THAT YOU MAY BRING CLAIMS AGAINST US OR INDEMNIFIED PARTY ONLY ON AN INDIVIDUAL BASIS AND NOT AS A PLAINTIFF OR CLASS MEMBER IN ANY PURPORTED CLASS OR REPRESENTATIVE ACTION OR PROCEEDING. UNLESS BOTH YOU AND THE INDEMNIFIED PARTY AGREE OTHERWISE, THE ARBITRATOR MAY NOT CONSOLIDATE OR JOIN MORE THAN ONE PERSON\u2019S OR PARTY\u2019S CLAIMS AND MAY NOT OTHERWISE PRESIDE OVER ANY FORM OF A CONSOLIDATED, REPRESENTATIVE, OR CLASS PROCEEDING. ALSO, THE ARBITRATOR MAY AWARD RELIEF (INCLUDING MONETARY, INJUNCTIVE, AND DECLARATORY RELIEF) ONLY IN FAVOR OF THE INDIVIDUAL PARTY SEEKING RELIEF AND ONLY TO THE EXTENT NECESSARY TO PROVIDE RELIEF NECESSITATED BY THAT PARTY\u2019S INDIVIDUAL CLAIM(S), EXCEPT THAT YOU MAY PURSUE A CLAIM FOR AND THE ARBITRATOR MAY AWARD PUBLIC INJUNCTIVE RELIEF UNDER APPLICABLE LAW TO THE EXTENT REQUIRED FOR THE ENFORCEABILITY OF THIS PROVISION.\n\nNOTICE: ANY HOLDER OF THIS CONSUMER CREDIT CONTRACT IS SUBJECT TO ALL CLAIMS AND DEFENSES WHICH THE DEBTOR COULD ASSERT AGAINST THE SELLER OF GOODS OR SERVICES OBTAINED PURSUANT HERETO OR WITH THE PROCEEDS HEREOF. RECOVERY HEREUNDER BY THE DEBTOR SHALL NOT EXCEED AMOUNTS PAID BY THE DEBTOR HEREUNDER.\n\nUsing your information. You will find a copy of our privacy policy on our website that you can review in connection with your purchase. As Splitit handles our payment requests and instructions for us, they will handle your data and we will pass information between us. You may obtain a copy of Splitit\u2019s Privacy Policy by visiting their website at http://splitit.localsite/legals/splitit-privacy-policy/english/.\n\nWe may share information about our transactions and interactions with you with Splitit and other affiliated companies. We may also share information about our transactions and interactions with unaffiliated third parties in connection with providing this service to you including fraud detection services.\n\nHowever, the law may permit you to instruct us not to share this information with certain third parties. If you do not want us to share this information, you must notify us in writing or by email through our Service Provider at: support@splitit.com. If you email us a notification, you must include your name, address, and the last four digits of your card number used in this transaction so that such a request can be honored. Do not include your full card details in this email.\n\nxxxxxxxxxxxxxx. After completing your purchase, you will see some communications from us saying they are \u201Cpowered by Splitit\u201D. Splitit will send you an email following the completion of your purchase with details of how you can access information on your payments in a secure, password protected Portal. You are responsible for obtaining and maintaining all telecommunications, mobile, broadband, computer, hardware, software, equipment and services needed to access information about this Agreement or your payment method; view, save and/or print your account documents online; receive any messages or documents you have consented to receive electronically pursuant to the Electronic xxxxxxxxxxxxxx Disclosures and Consent, which is incorporated herein by reference; and for paying all related charges. Some of the communications between you and us or any of our affiliates, agents, assigns and service providers, may be monitored and recorded. By completing this transaction, you consent to this monitoring and recording and you further agree that we and our service providers may from time to time make calls and/or send text messages to you at any telephone number associated with your account, including wireless telephone numbers that could result in charges to you. The manner in which these calls or text messages are made to you may include, but is not limited to, the use of pre-recorded/artificial voice messages and/or automatic telephone dialing system. Your consent may be revoked at any time and by any reasonable means. You further agree that we or our service providers may send e-mails to you at any e-mail address you provide us or use other electronic means of communication to the extent permitted by law. We are not required to act on any instruction or message from you provided by fax, SMS/text, telephone voice mail, message service or answering machine. Whenever this Agreement or applicable law requires or allows you to give us written notice, we will not consider SMS/text or fax to be written notice. You must notify us promptly of any changes to your e-mail address, phone number, mailing address, or other contact information by using the Platform or by emailing our Service Provider at support@splitit.com.\n\nWho to contact about this Agreement. xxxxxxxxxxxx, you may require additional assistance in connection with this Agreement (for example, replacing payment method, number of outstanding xxxxxxxxxxxx, etc.). You may obtain information about your Agreement, including your remaining xxxxxxxxxxxx and your selected payment method through the Portal. You may also contact us through our Service Provider at support@splitit.com for support and information about this Agreement. If you have any questions about the goods and services you purchased under this Agreement, please contact our customer services department through the information provided on our website. We clarify that we hired Splitit to provide certain services and you do not have any agreement with them. Splitit cannot agree to any alternative arrangements other than to allow you to use a different card for the payment of any unpaid Instalments. In addition, Splitit does not have information regarding your relationship with the Issuer and accordingly cannot handle questions related to that arrangement.\n\nState-Specific Disclosures. If you are a resident of any of the following states or jurisdictions, the following provisions for your state will apply, and will supersede any conflicting provisions set forth in this Agreement:\n\nDistrict of Columbia: We certify that the information contained in the Agreement complies with the District of Columbia Municipal Regulations, Title 16, Chapter 1, if applicable.\n\nFlorida: Florida documentary stamp tax required by law has been paid or will be paid directly by us to the Department of Revenue.\n\nHawaii: This contract is covered by Hawaii\u2019s credit sale law, and you have the rights of a buyer under that law. You also may have rights under other state and federal laws.\n\nMaryland: This Agreement will be governed by the laws of the State of Maryland. This Agreement shall be subject to the Credit Grantor Closed End Credit Provisions (Subtitle 10) of the Commercial Law Article of the Maryland Code.\n\nArizona, Delaware, Maine, Minnesota, Nebraska, Ohio, Oklahoma, and Wyoming. No provisions in this Agreement providing for the payment of attorneys\u2019 fees, court costs or collection costs by you shall apply.\n\nNew Hampshire: If you prevail in any action involving this Agreement, we will pay your reasonable attorney\u2019s fees. If you successfully assert a partial defense or set-off, recoupment or counter-claim, the court may limit the fees we can recover.\n\nNew Jersey: (1) The section headings of the Agreement are a table of contents and not contract terms. (2) You agree to pay reasonable attorney\u2019s fees incurred by us in collecting any amount due and payable under this Agreement, in an amount not to exceed 20% of the first $500 owed and 10% of any amount owed in excess of $500, at the time this Agreement is referred to an attorney for collection who is not our salaried employee. (3) Provisions of this Agreement that refer to acts or practices that apply as permitted by, or except as prohibited by, applicable law are applicable to New Jersey residents only to the extent that such acts or practices are permitted by New Jersey or Federal law.\n\nOhio: Ohio laws against discrimination require that all creditors make credit equally available to all creditworthy customers and that credit reporting agencies maintain separate credit histories on each individual upon request. The Ohio Civil Rights Commission administers compliance with this law.\n\nxxxxxxxxxxxx: You agree that reasonable attorney\u2019s fees and costs will be awarded to the prevailing party in any action on this Agreement, regardless of whether the action is instituted by us or you.\n\nVirginia: The service charge does not exceed 0% per annum, computed monthly.\n\nWisconsin: No provision of a marital property agreement, a unilateral statement under Wis. Stat. Ann. \xA7766.59 or a court decree under \xA7786.70 adversely affects our interest unless we, prior to the time the credit is granted, are furnished a copy of the agreement, statement or decree or have actual knowledge of the adverse provision when the obligation to us is incurred.\n\nENTIRE AGREEMENT. Oral agreements or oral commitments to loan money, extend credit, or to forbear from enforcing repayment of a debt may not be enforceable under applicable law. To protect you (as the buyer) and us (as the seller) from misunderstanding or disappointment, you and we acknowledge and agree that this written Agreement is a final expression of the agreement between you and us, and this Agreement may not be contradicted by evidence of prior, contemporaneous, or subsequent oral agreements of the parties. The terms of this Agreement may not be changed except in a writing signed by you and us. No change shall release any party from liability unless otherwise expressly stated in writing.\n\nIMPORTANT: You acknowledge that you had a reasonable opportunity to examine these xxxxxxxxxxxx Terms and Conditions; and that a legible and complete copy was delivered to you. Please notify us within thirty (30) days of the day you accept this Agreement if a complete copy is not delivered to you.\n\nNOTICE TO SHOPPER: (1) DO NOT APPROVE THIS AGREEMENT BEFORE YOU READ IT. (2) DO NOT APPROVE THIS AGREEMENT IF IT CONTAINS ANY BLANK SPACES. (3) YOU ARE ENTITLED TO AN EXACT COPY OF ANY AGREEMENT YOU SIGN. KEEP IT TO PROTECT YOUR LEGAL RIGHTS. (4) YOU HAVE THE RIGHT AT ANY TIME TO PAY IN ADVANCE THE REMAINING INSTALLMENTS DUE UNDER THIS AGREEMENT WITHOUT PENALTY.\n",
95309
+ type: "string"
95310
+ },
95311
+ disclosure: {
95312
+ description: "Affirmative acceptance statement to present to the merchant.",
95313
+ example: "I have read and agree to Splitit Retail Installment Contract Terms and Conditions.",
95314
+ type: "string"
95315
+ },
95316
+ fees_url: {
95317
+ description: "Additional financing fee information.",
95318
+ example: "https://docs.whop.com/fees",
95319
+ type: "string"
95320
+ },
95321
+ policies: {
95322
+ items: {
95323
+ description: "Financing policies to present alongside the contract before collecting acceptance.",
95324
+ example: "All Resolution Center cases for financed transactions will be automatically refunded.",
95325
+ type: "string"
95326
+ },
95327
+ type: "array"
95328
+ },
95329
+ url: {
95330
+ description: "Source URL for the Splitit contract snapshot.",
95331
+ example: "https://whop.com/splitit-terms/",
95332
+ type: "string"
95333
+ },
95334
+ version: {
95335
+ description: "Content fingerprint to pass as merchant_acceptance.terms_version when submitting.",
95336
+ example: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
95337
+ type: "string"
95338
+ }
95339
+ },
95340
+ required: [
95341
+ "version",
95342
+ "url",
95343
+ "fees_url",
95344
+ "disclosure",
95345
+ "policies",
95346
+ "content"
95347
+ ],
95348
+ type: "object"
95349
+ },
94391
95350
  FriendlyReceiptStatus: {
94392
95351
  description: "The friendly status of a payment. This is a derived status that provides a human-readable summary of the payment state, combining the underlying status and substatus fields.",
94393
95352
  enum: [
@@ -98103,6 +99062,7 @@ var native_spec_default = {
98103
99062
  "crypto",
98104
99063
  "balance",
98105
99064
  "in_app_purchase",
99065
+ "card_present",
98106
99066
  "saved"
98107
99067
  ],
98108
99068
  example: "saved",
@@ -98287,6 +99247,7 @@ var native_spec_default = {
98287
99247
  "ca_bank_transfer",
98288
99248
  "capchase_pay",
98289
99249
  "card",
99250
+ "card_present",
98290
99251
  "card_installments_three",
98291
99252
  "card_installments_six",
98292
99253
  "card_installments_twelve",
@@ -105768,6 +106729,12 @@ var native_spec_default = {
105768
106729
  scheme: "bearer",
105769
106730
  type: "http"
105770
106731
  },
106732
+ accountApiKeyOrAccountTokenOrOauthTokenAuth: {
106733
+ bearerFormat: "auth-scheme",
106734
+ description: "An Account API key, an account access token, or a user OAuth token. Prepend the key or token with `Bearer`, for example `Bearer ***************************`. See [Auth & API keys](/developer/guides/auth-scoping) for how to get each one.",
106735
+ scheme: "bearer",
106736
+ type: "http"
106737
+ },
105771
106738
  accountApiKeyOrAccountUserTokenAuth: {
105772
106739
  bearerFormat: "auth-scheme",
105773
106740
  description: "An Account API key or an account-scoped user token. Prepend the key or token with `Bearer`, for example `Bearer ***************************`. See [Auth & API keys](/developer/guides/auth-scoping) for how to get each one.",
@@ -105792,12 +106759,6 @@ var native_spec_default = {
105792
106759
  scheme: "bearer",
105793
106760
  type: "http"
105794
106761
  },
105795
- accountApiKeyOrAccountTokenOrOauthTokenAuth: {
105796
- bearerFormat: "auth-scheme",
105797
- description: "An Account API key, an account access token, or a user OAuth token. Prepend the key or token with `Bearer`, for example `Bearer ***************************`. See [Auth & API keys](/developer/guides/auth-scoping) for how to get each one.",
105798
- scheme: "bearer",
105799
- type: "http"
105800
- },
105801
106762
  accountApiKeyOrAppApiKeyOrAccountTokenOrOauthTokenAuth: {
105802
106763
  bearerFormat: "auth-scheme",
105803
106764
  description: "An Account API key, an App API key, an account access token, or a user OAuth token. Prepend the key or token with `Bearer`, for example `Bearer ***************************`. See [Auth & API keys](/developer/guides/auth-scoping) for how to get each one.",
@@ -108862,7 +109823,7 @@ async function announceActionUrl(url, {
108862
109823
  // package.json
108863
109824
  var package_default = {
108864
109825
  name: "@whop/cli",
108865
- version: "0.23.0",
109826
+ version: "0.23.1",
108866
109827
  description: "The Whop CLI \u2014 build and manage Whop apps from your terminal. Human and agent friendly.",
108867
109828
  keywords: [
108868
109829
  "agent",
@@ -111009,6 +111970,12 @@ var groups_default = [
111009
111970
  description: "Legal identity required before payouts and card issuing.",
111010
111971
  group: "Core Resources"
111011
111972
  },
111973
+ {
111974
+ name: "financing-applications",
111975
+ tag: "Financing Applications",
111976
+ description: "Merchant applications to accept financing payments.",
111977
+ group: "Core Resources"
111978
+ },
111012
111979
  {
111013
111980
  name: "exports",
111014
111981
  tag: "Exports",