backend-manager 5.9.4 → 5.9.6

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.
Files changed (251) hide show
  1. package/CLAUDE.md +6 -0
  2. package/package.json +8 -1
  3. package/src/cli/commands/install.js +4 -3
  4. package/src/cli/commands/setup-tests/backend-manager.js +2 -1
  5. package/src/cli/commands/setup-tests/firebase-admin.js +2 -1
  6. package/src/cli/commands/setup-tests/firebase-functions.js +2 -1
  7. package/src/cli/utils/safe-install.js +13 -0
  8. package/src/manager/routes/payments/cancel/post.js +22 -2
  9. package/src/test/fixtures/firebase-project/.temp/newsletter/run-2026-06-11T03-28-07/metadata.json +14 -0
  10. package/src/test/fixtures/firebase-project/.temp/newsletter/run-2026-06-11T03-28-07/newsletter.html +486 -0
  11. package/src/test/fixtures/firebase-project/.temp/newsletter/run-2026-06-11T03-28-07/newsletter.md +41 -0
  12. package/src/test/fixtures/firebase-project/.temp/newsletter/run-2026-06-11T03-28-07/newsletter.mjml +97 -0
  13. package/{test/email/fixtures/clean.json → src/test/fixtures/firebase-project/.temp/newsletter/run-2026-06-11T03-28-07/structure.json} +16 -4
  14. package/src/test/fixtures/firebase-project/.temp/newsletter/run-2026-06-11T03-28-07/summary.md +1 -0
  15. package/src/test/fixtures/firebase-project/.temp/newsletter/run-2026-06-18T01-00-28/metadata.json +14 -0
  16. package/src/test/fixtures/firebase-project/.temp/newsletter/run-2026-06-18T01-00-28/newsletter.html +486 -0
  17. package/src/test/fixtures/firebase-project/.temp/newsletter/run-2026-06-18T01-00-28/newsletter.md +41 -0
  18. package/src/test/fixtures/firebase-project/.temp/newsletter/run-2026-06-18T01-00-28/newsletter.mjml +97 -0
  19. package/src/test/fixtures/firebase-project/.temp/newsletter/run-2026-06-18T01-00-28/structure.json +42 -0
  20. package/src/test/fixtures/firebase-project/.temp/newsletter/run-2026-06-18T01-00-28/summary.md +1 -0
  21. package/src/test/fixtures/firebase-project/.temp/newsletter/run-2026-06-18T01-01-34/metadata.json +14 -0
  22. package/src/test/fixtures/firebase-project/.temp/newsletter/run-2026-06-18T01-01-34/newsletter.html +486 -0
  23. package/src/test/fixtures/firebase-project/.temp/newsletter/run-2026-06-18T01-01-34/newsletter.md +41 -0
  24. package/src/test/fixtures/firebase-project/.temp/newsletter/run-2026-06-18T01-01-34/newsletter.mjml +97 -0
  25. package/src/test/fixtures/firebase-project/.temp/newsletter/run-2026-06-18T01-01-34/structure.json +42 -0
  26. package/src/test/fixtures/firebase-project/.temp/newsletter/run-2026-06-18T01-01-34/summary.md +1 -0
  27. package/src/test/fixtures/firebase-project/.temp/test-mode.json +6 -0
  28. package/src/test/fixtures/firebase-project/database-debug.log +12 -0
  29. package/src/test/fixtures/firebase-project/firestore-debug.log +136 -0
  30. package/src/test/fixtures/firebase-project/pubsub-debug.log +17 -0
  31. package/src/test/test-accounts.js +9 -0
  32. package/.codeclimate.yml +0 -32
  33. package/.nvmrc +0 -1
  34. package/CHANGELOG.md +0 -1432
  35. package/PROGRESS.md +0 -86
  36. package/TODO-2.md +0 -121
  37. package/TODO-CHARGEBLAST.md +0 -32
  38. package/TODO-WEBHOOK-KEY-LEGACY-REMOVAL.md +0 -15
  39. package/TODO-WEBHOOK-KEY-UPGRADE.md +0 -138
  40. package/TODO-email-auth.md +0 -14
  41. package/TODO.md +0 -187
  42. package/plans/mcp2.md +0 -247
  43. package/scripts/test-helper-providers.js +0 -162
  44. package/scripts/update-disposable-domains.js +0 -44
  45. package/templates/_.env +0 -42
  46. package/templates/_.gitignore +0 -60
  47. package/templates/backend-manager-config.json +0 -249
  48. package/templates/database.rules.json +0 -83
  49. package/templates/firebase.json +0 -66
  50. package/templates/firestore.indexes.json +0 -4
  51. package/templates/firestore.rules +0 -112
  52. package/templates/public/404.html +0 -26
  53. package/templates/public/index.html +0 -24
  54. package/templates/remoteconfig.template.json +0 -1
  55. package/templates/storage-lifecycle-config-1-day.json +0 -9
  56. package/templates/storage-lifecycle-config-30-days.json +0 -9
  57. package/templates/storage.rules +0 -8
  58. package/test/_init/accounts-validation.js +0 -58
  59. package/test/_legacy/ai/index.js +0 -231
  60. package/test/_legacy/ai/test.jpg +0 -0
  61. package/test/_legacy/ai/test.pdf +0 -0
  62. package/test/_legacy/index.js +0 -31
  63. package/test/_legacy/payment-resolver/chargebee/orders/refunded.json +0 -0
  64. package/test/_legacy/payment-resolver/chargebee/orders/unpaid.json +0 -98
  65. package/test/_legacy/payment-resolver/chargebee/subscriptions/active.json +0 -578
  66. package/test/_legacy/payment-resolver/chargebee/subscriptions/trial-in-trial.json +0 -38
  67. package/test/_legacy/payment-resolver/chargebee/subscriptions/trial-skipped-to-active.json +0 -135
  68. package/test/_legacy/payment-resolver/chargebee/subscriptions/trial-to-active-to-cancelled.json +0 -42
  69. package/test/_legacy/payment-resolver/chargebee/subscriptions/trial-to-active.json +0 -44
  70. package/test/_legacy/payment-resolver/chargebee/subscriptions/trial-to-cancelled.json +0 -39
  71. package/test/_legacy/payment-resolver/chargebee/subscriptions/trial-to-refund.json +0 -143
  72. package/test/_legacy/payment-resolver/chargebee/subscriptions/trial-to-suspended.json +0 -48
  73. package/test/_legacy/payment-resolver/coinbase/orders/regular.json +0 -204
  74. package/test/_legacy/payment-resolver/coinbase/subscriptions/cancelled.json +0 -204
  75. package/test/_legacy/payment-resolver/coinbase/subscriptions/paid-2.json +0 -125
  76. package/test/_legacy/payment-resolver/index.js +0 -1558
  77. package/test/_legacy/payment-resolver/paypal/orders/refunded.json +0 -0
  78. package/test/_legacy/payment-resolver/paypal/orders/regular.json +0 -120
  79. package/test/_legacy/payment-resolver/paypal/subscriptions/active-refund-previous-stmnt.json +0 -323
  80. package/test/_legacy/payment-resolver/paypal/subscriptions/active.json +0 -192
  81. package/test/_legacy/payment-resolver/paypal/subscriptions/trial-in-trial.json +0 -125
  82. package/test/_legacy/payment-resolver/paypal/subscriptions/trial-payment-not-complete.json +0 -76
  83. package/test/_legacy/payment-resolver/paypal/subscriptions/trial-payment-overdue-2.json +0 -114
  84. package/test/_legacy/payment-resolver/paypal/subscriptions/trial-payment-overdue.json +0 -114
  85. package/test/_legacy/payment-resolver/paypal/subscriptions/trial-to-active-to-cancelled.json +0 -111
  86. package/test/_legacy/payment-resolver/paypal/subscriptions/trial-to-active.json +0 -132
  87. package/test/_legacy/payment-resolver/paypal/subscriptions/trial-to-cancelled.json +0 -107
  88. package/test/_legacy/payment-resolver/paypal/subscriptions/trial-to-expired.json +0 -91
  89. package/test/_legacy/payment-resolver/paypal/subscriptions/trial-to-refund.json +0 -147
  90. package/test/_legacy/payment-resolver/paypal/subscriptions/trial-to-suspended.json +0 -120
  91. package/test/_legacy/payment-resolver/stripe/orders/refunded.json +0 -0
  92. package/test/_legacy/payment-resolver/stripe/orders/regular.json +0 -91
  93. package/test/_legacy/payment-resolver/stripe/subscriptions/active.json +0 -421
  94. package/test/_legacy/payment-resolver/stripe/subscriptions/trial-in-trial.json +0 -349
  95. package/test/_legacy/payment-resolver/stripe/subscriptions/trial-to-active-failed-authorization.json +0 -430
  96. package/test/_legacy/payment-resolver/stripe/subscriptions/trial-to-active.json +0 -319
  97. package/test/_legacy/payment-resolver/stripe/subscriptions/trial-to-cancelled.json +0 -319
  98. package/test/_legacy/payment-resolver/stripe/subscriptions/trial-to-refund.json +0 -414
  99. package/test/_legacy/payment-resolver/stripe/subscriptions/trial-to-suspended.json +0 -319
  100. package/test/_legacy/payment-resolver/stripe/subscriptions/unsure.json +0 -339
  101. package/test/_legacy/test-new +0 -1178
  102. package/test/_legacy/test.md +0 -89
  103. package/test/_legacy/usage.js +0 -175
  104. package/test/_legacy/user.js +0 -31
  105. package/test/ai/tools-live.js +0 -170
  106. package/test/boot/emulator-boots.js +0 -37
  107. package/test/content/blog-generate.js +0 -160
  108. package/test/email/campaign-send.js +0 -45
  109. package/test/email/consent-lifecycle.js +0 -257
  110. package/test/email/feedback-and-plain-send.js +0 -52
  111. package/test/email/fixtures/editorial.json +0 -30
  112. package/test/email/fixtures/field-report.json +0 -53
  113. package/test/email/marketing-lifecycle.js +0 -132
  114. package/test/email/newsletter-generate.js +0 -819
  115. package/test/email/newsletter-templates.js +0 -491
  116. package/test/email/templates.js +0 -207
  117. package/test/email/transactional-send.js +0 -34
  118. package/test/email/transactional.js +0 -560
  119. package/test/email/validation.js +0 -710
  120. package/test/events/auth-delete-race.js +0 -201
  121. package/test/events/payments/journey-payments-cancel-endpoint.js +0 -100
  122. package/test/events/payments/journey-payments-cancel.js +0 -182
  123. package/test/events/payments/journey-payments-discount.js +0 -89
  124. package/test/events/payments/journey-payments-failure.js +0 -146
  125. package/test/events/payments/journey-payments-legacy-product.js +0 -149
  126. package/test/events/payments/journey-payments-one-time-failure.js +0 -111
  127. package/test/events/payments/journey-payments-one-time.js +0 -136
  128. package/test/events/payments/journey-payments-plan-change.js +0 -144
  129. package/test/events/payments/journey-payments-refund-webhook.js +0 -180
  130. package/test/events/payments/journey-payments-suspend.js +0 -181
  131. package/test/events/payments/journey-payments-trial-cancel.js +0 -130
  132. package/test/events/payments/journey-payments-trial.js +0 -171
  133. package/test/events/payments/journey-payments-uid-resolution.js +0 -132
  134. package/test/events/payments/journey-payments-upgrade.js +0 -135
  135. package/test/fixtures/chargebee/invoice-one-time.json +0 -27
  136. package/test/fixtures/chargebee/subscription-active.json +0 -44
  137. package/test/fixtures/chargebee/subscription-cancelled.json +0 -42
  138. package/test/fixtures/chargebee/subscription-in-trial.json +0 -41
  139. package/test/fixtures/chargebee/subscription-legacy-plan.json +0 -41
  140. package/test/fixtures/chargebee/subscription-non-renewing.json +0 -41
  141. package/test/fixtures/chargebee/subscription-paused.json +0 -42
  142. package/test/fixtures/chargebee/webhook-payment-failed.json +0 -51
  143. package/test/fixtures/chargebee/webhook-subscription-created.json +0 -47
  144. package/test/fixtures/paypal/order-approved.json +0 -62
  145. package/test/fixtures/paypal/order-completed.json +0 -110
  146. package/test/fixtures/paypal/subscription-active.json +0 -76
  147. package/test/fixtures/paypal/subscription-cancelled.json +0 -50
  148. package/test/fixtures/paypal/subscription-suspended.json +0 -65
  149. package/test/fixtures/stripe/checkout-session-completed.json +0 -130
  150. package/test/fixtures/stripe/invoice-payment-failed.json +0 -148
  151. package/test/fixtures/stripe/invoice-subscription-payment-failed.json +0 -28
  152. package/test/fixtures/stripe/subscription-active.json +0 -161
  153. package/test/fixtures/stripe/subscription-canceled.json +0 -161
  154. package/test/fixtures/stripe/subscription-trialing.json +0 -161
  155. package/test/functions/admin/database-read.js +0 -134
  156. package/test/functions/admin/database-write.js +0 -159
  157. package/test/functions/admin/edit-post.js +0 -366
  158. package/test/functions/admin/firestore-query.js +0 -207
  159. package/test/functions/admin/firestore-read.js +0 -129
  160. package/test/functions/admin/firestore-write.js +0 -105
  161. package/test/functions/admin/get-stats.js +0 -115
  162. package/test/functions/admin/send-email.js +0 -119
  163. package/test/functions/admin/send-notification.js +0 -208
  164. package/test/functions/admin/write-repo-content.js +0 -223
  165. package/test/functions/general/add-marketing-contact.js +0 -335
  166. package/test/functions/general/fetch-post.js +0 -54
  167. package/test/functions/general/generate-uuid.js +0 -114
  168. package/test/functions/test/authenticate.js +0 -64
  169. package/test/functions/user/create-custom-token.js +0 -73
  170. package/test/functions/user/delete.js +0 -135
  171. package/test/functions/user/get-active-sessions.js +0 -111
  172. package/test/functions/user/get-subscription-info.js +0 -99
  173. package/test/functions/user/regenerate-api-keys.js +0 -156
  174. package/test/functions/user/resolve.js +0 -52
  175. package/test/functions/user/sign-out-all-sessions.js +0 -94
  176. package/test/functions/user/sign-up.js +0 -252
  177. package/test/functions/user/submit-feedback.js +0 -104
  178. package/test/functions/user/validate-settings.js +0 -82
  179. package/test/helpers/ai-request-payload.js +0 -300
  180. package/test/helpers/ai-test-provider.js +0 -202
  181. package/test/helpers/ai-tools-format.js +0 -383
  182. package/test/helpers/content/blog-auto-publisher.js +0 -484
  183. package/test/helpers/content/feed-parser.js +0 -528
  184. package/test/helpers/content/ghostii-blocks.js +0 -134
  185. package/test/helpers/content/ghostii-feed-integration.js +0 -404
  186. package/test/helpers/content/ghostii-write-article.js +0 -243
  187. package/test/helpers/environment.js +0 -230
  188. package/test/helpers/infer-contact.js +0 -113
  189. package/test/helpers/merge-line-files.js +0 -271
  190. package/test/helpers/payment/chargebee/parse-webhook.js +0 -413
  191. package/test/helpers/payment/chargebee/to-unified-one-time.js +0 -147
  192. package/test/helpers/payment/chargebee/to-unified-subscription.js +0 -648
  193. package/test/helpers/payment/paypal/parse-webhook.js +0 -539
  194. package/test/helpers/payment/paypal/to-unified-one-time.js +0 -382
  195. package/test/helpers/payment/paypal/to-unified-subscription.js +0 -820
  196. package/test/helpers/payment/stripe/parse-webhook.js +0 -447
  197. package/test/helpers/payment/stripe/to-unified-one-time.js +0 -306
  198. package/test/helpers/payment/stripe/to-unified-subscription.js +0 -708
  199. package/test/helpers/sanitize.js +0 -222
  200. package/test/helpers/slugify.js +0 -394
  201. package/test/helpers/storage.js +0 -194
  202. package/test/helpers/user.js +0 -755
  203. package/test/helpers/webhook-forward.js +0 -418
  204. package/test/mcp/discovery.js +0 -53
  205. package/test/mcp/oauth.js +0 -161
  206. package/test/mcp/protocol.js +0 -268
  207. package/test/mcp/roles.js +0 -188
  208. package/test/mcp/utils.js +0 -245
  209. package/test/routes/admin/create-post.js +0 -364
  210. package/test/routes/admin/database.js +0 -131
  211. package/test/routes/admin/deduplicate-image-alts.js +0 -190
  212. package/test/routes/admin/email.js +0 -114
  213. package/test/routes/admin/firestore-query.js +0 -204
  214. package/test/routes/admin/firestore.js +0 -127
  215. package/test/routes/admin/infer-contact.js +0 -218
  216. package/test/routes/admin/notification.js +0 -198
  217. package/test/routes/admin/post-resize-image.js +0 -184
  218. package/test/routes/admin/post.js +0 -368
  219. package/test/routes/admin/repo-content.js +0 -223
  220. package/test/routes/admin/stats.js +0 -112
  221. package/test/routes/content/post.js +0 -54
  222. package/test/routes/general/uuid.js +0 -115
  223. package/test/routes/marketing/campaign.js +0 -125
  224. package/test/routes/marketing/contact.js +0 -370
  225. package/test/routes/marketing/email-preferences.js +0 -292
  226. package/test/routes/marketing/push-send.js +0 -32
  227. package/test/routes/marketing/webhook-forward.js +0 -61
  228. package/test/routes/marketing/webhook.js +0 -639
  229. package/test/routes/payments/cancel.js +0 -140
  230. package/test/routes/payments/discount.js +0 -80
  231. package/test/routes/payments/dispute-alert.js +0 -320
  232. package/test/routes/payments/intent.js +0 -336
  233. package/test/routes/payments/portal.js +0 -92
  234. package/test/routes/payments/refund.js +0 -179
  235. package/test/routes/payments/trial-eligibility.js +0 -71
  236. package/test/routes/payments/webhook.js +0 -107
  237. package/test/routes/test/authenticate.js +0 -59
  238. package/test/routes/test/schema.js +0 -554
  239. package/test/routes/test/usage.js +0 -342
  240. package/test/routes/user/api-keys.js +0 -156
  241. package/test/routes/user/delete.js +0 -136
  242. package/test/routes/user/feedback.js +0 -104
  243. package/test/routes/user/sessions.js +0 -199
  244. package/test/routes/user/settings-validate.js +0 -82
  245. package/test/routes/user/signup.js +0 -542
  246. package/test/routes/user/subscription.js +0 -99
  247. package/test/routes/user/token.js +0 -73
  248. package/test/routes/user/user.js +0 -157
  249. package/test/rules/notifications.js +0 -410
  250. package/test/rules/payments-carts.js +0 -371
  251. package/test/rules/user.js +0 -396
@@ -1,414 +0,0 @@
1
- {
2
- "id": "sub_1NWA2ZHGybgi7uQGF7ODZNEZ",
3
- "object": "subscription",
4
- "application": null,
5
- "application_fee_percent": null,
6
- "automatic_tax": {
7
- "enabled": false
8
- },
9
- "billing_cycle_anchor": 1689910203,
10
- "billing_thresholds": null,
11
- "cancel_at": null,
12
- "cancel_at_period_end": false,
13
- "canceled_at": 1691092317,
14
- "cancellation_details": {
15
- "comment": null,
16
- "feedback": null,
17
- "reason": "cancellation_requested"
18
- },
19
- "collection_method": "charge_automatically",
20
- "created": 1689910203,
21
- "currency": "usd",
22
- "current_period_end": 1721532603,
23
- "current_period_start": 1689910203,
24
- "customer": "cus_OIlZAlx2zhep1X",
25
- "days_until_due": null,
26
- "default_payment_method": "pm_1NWA2RHGybgi7uQG6hK7SNm3",
27
- "default_source": null,
28
- "default_tax_rates": [],
29
- "description": null,
30
- "discount": null,
31
- "ended_at": 1691092317,
32
- "items": {
33
- "object": "list",
34
- "data": [{
35
- "id": "si_OIlZASfIRqRhQj",
36
- "object": "subscription_item",
37
- "billing_thresholds": null,
38
- "created": 1689910203,
39
- "metadata": {},
40
- "plan": {
41
- "id": "price_1MisrnHGybgi7uQGn0XOVjRo",
42
- "object": "plan",
43
- "active": true,
44
- "aggregate_usage": null,
45
- "amount": 7200,
46
- "amount_decimal": "7200",
47
- "billing_scheme": "per_unit",
48
- "created": 1678166115,
49
- "currency": "usd",
50
- "interval": "year",
51
- "interval_count": 1,
52
- "livemode": true,
53
- "metadata": {},
54
- "nickname": null,
55
- "product": "prod_NTqYLkXCOhAwa5",
56
- "tiers_mode": null,
57
- "transform_usage": null,
58
- "trial_period_days": null,
59
- "usage_type": "licensed"
60
- },
61
- "price": {
62
- "id": "price_1MisrnHGybgi7uQGn0XOVjRo",
63
- "object": "price",
64
- "active": true,
65
- "billing_scheme": "per_unit",
66
- "created": 1678166115,
67
- "currency": "usd",
68
- "custom_unit_amount": null,
69
- "livemode": true,
70
- "lookup_key": null,
71
- "metadata": {},
72
- "nickname": null,
73
- "product": "prod_NTqYLkXCOhAwa5",
74
- "recurring": {
75
- "aggregate_usage": null,
76
- "interval": "year",
77
- "interval_count": 1,
78
- "trial_period_days": null,
79
- "usage_type": "licensed"
80
- },
81
- "tax_behavior": "unspecified",
82
- "tiers_mode": null,
83
- "transform_quantity": null,
84
- "type": "recurring",
85
- "unit_amount": 7200,
86
- "unit_amount_decimal": "7200"
87
- },
88
- "quantity": 1,
89
- "subscription": "sub_1NWA2ZHGybgi7uQGF7ODZNEZ",
90
- "tax_rates": []
91
- }],
92
- "has_more": false,
93
- "total_count": 1,
94
- "url": "/v1/subscription_items?subscription=sub_1NWA2ZHGybgi7uQGF7ODZNEZ"
95
- },
96
- "latest_invoice": {
97
- "id": "in_1NWA2ZHGybgi7uQGpYYSVwe8",
98
- "object": "invoice",
99
- "account_country": "US",
100
- "account_name": "ITW Creative Works",
101
- "account_tax_ids": null,
102
- "amount_due": 7200,
103
- "amount_paid": 7200,
104
- "amount_remaining": 0,
105
- "amount_shipping": 0,
106
- "application": null,
107
- "application_fee_amount": null,
108
- "attempt_count": 1,
109
- "attempted": true,
110
- "auto_advance": false,
111
- "automatic_tax": {
112
- "enabled": false,
113
- "status": null
114
- },
115
- "billing_reason": "subscription_create",
116
- "charge": {
117
- "id": "ch_3NWA2ZHGybgi7uQG1cLkaDFF",
118
- "object": "charge",
119
- "amount": 7200,
120
- "amount_captured": 7200,
121
- "amount_refunded": 7200,
122
- "application": null,
123
- "application_fee": null,
124
- "application_fee_amount": null,
125
- "balance_transaction": "txn_3NWA2ZHGybgi7uQG1hwF9WUx",
126
- "billing_details": {
127
- "address": {
128
- "city": "colorado springs",
129
- "country": "US",
130
- "line1": "10082 luneth dr",
131
- "line2": null,
132
- "postal_code": "80925",
133
- "state": "CO"
134
- },
135
- "email": "savv0621@icloud.com",
136
- "name": "savannah collazo",
137
- "phone": null
138
- },
139
- "calculated_statement_descriptor": "STUDYMONKEY.AI",
140
- "captured": true,
141
- "created": 1689910204,
142
- "currency": "usd",
143
- "customer": "cus_OIlZAlx2zhep1X",
144
- "description": "Subscription creation",
145
- "destination": null,
146
- "dispute": null,
147
- "disputed": false,
148
- "failure_balance_transaction": null,
149
- "failure_code": null,
150
- "failure_message": null,
151
- "fraud_details": {},
152
- "invoice": "in_1NWA2ZHGybgi7uQGpYYSVwe8",
153
- "livemode": true,
154
- "metadata": {},
155
- "on_behalf_of": null,
156
- "order": null,
157
- "outcome": {
158
- "network_status": "approved_by_network",
159
- "reason": null,
160
- "risk_level": "normal",
161
- "seller_message": "Payment complete.",
162
- "type": "authorized"
163
- },
164
- "paid": true,
165
- "payment_intent": "pi_3NWA2ZHGybgi7uQG1poDpA3m",
166
- "payment_method": "pm_1NWA2RHGybgi7uQG6hK7SNm3",
167
- "payment_method_details": {
168
- "card": {
169
- "brand": "visa",
170
- "checks": {
171
- "address_line1_check": "pass",
172
- "address_postal_code_check": "pass",
173
- "cvc_check": "pass"
174
- },
175
- "country": "US",
176
- "exp_month": 11,
177
- "exp_year": 2027,
178
- "fingerprint": "HiIxZZzi5PcpbA0l",
179
- "funding": "debit",
180
- "installments": null,
181
- "last4": "2775",
182
- "mandate": null,
183
- "network": "visa",
184
- "network_token": {
185
- "used": false
186
- },
187
- "three_d_secure": null,
188
- "wallet": null
189
- },
190
- "type": "card"
191
- },
192
- "receipt_email": null,
193
- "receipt_number": null,
194
- "receipt_url": "https://pay.stripe.com/receipts/invoices/CAcQARoXChVhY2N0XzFNaXJuOEhHeWJnaTd1UUco_ra0pgYyBjOpQ7D2oDosFsqN79KElmNKApxxAiOcp7W-J6ujvq88fcsLmuQnX8cMJHrEX4qIbhPfedA?s=ap",
195
- "refunded": true,
196
- "review": null,
197
- "shipping": null,
198
- "source": null,
199
- "source_transfer": null,
200
- "statement_descriptor": null,
201
- "statement_descriptor_suffix": null,
202
- "status": "succeeded",
203
- "transfer_data": null,
204
- "transfer_group": null
205
- },
206
- "collection_method": "charge_automatically",
207
- "created": 1689910203,
208
- "currency": "usd",
209
- "custom_fields": null,
210
- "customer": "cus_OIlZAlx2zhep1X",
211
- "customer_address": null,
212
- "customer_email": "savv0621@icloud.com",
213
- "customer_name": null,
214
- "customer_phone": null,
215
- "customer_shipping": null,
216
- "customer_tax_exempt": "none",
217
- "customer_tax_ids": [],
218
- "default_payment_method": null,
219
- "default_source": null,
220
- "default_tax_rates": [],
221
- "description": null,
222
- "discount": null,
223
- "discounts": [],
224
- "due_date": null,
225
- "effective_at": 1689910203,
226
- "ending_balance": 0,
227
- "footer": null,
228
- "from_invoice": null,
229
- "hosted_invoice_url": "https://invoice.stripe.com/i/acct_1Mirn8HGybgi7uQG/live_YWNjdF8xTWlybjhIR3liZ2k3dVFHLF9PSWxaajRqQ25HWGF5T2g5SVdITE1XMnozOGRuQlBRLDgxNzA0MzE40200SOlzrhUP?s=ap",
230
- "invoice_pdf": "https://pay.stripe.com/invoice/acct_1Mirn8HGybgi7uQG/live_YWNjdF8xTWlybjhIR3liZ2k3dVFHLF9PSWxaajRqQ25HWGF5T2g5SVdITE1XMnozOGRuQlBRLDgxNzA0MzE40200SOlzrhUP/pdf?s=ap",
231
- "last_finalization_error": null,
232
- "latest_revision": null,
233
- "lines": {
234
- "object": "list",
235
- "data": [{
236
- "id": "il_1NWA2ZHGybgi7uQGU8Kf8wSF",
237
- "object": "line_item",
238
- "amount": 7200,
239
- "amount_excluding_tax": 7200,
240
- "currency": "usd",
241
- "description": "1 × StudyMonkey Homework Helper (Annually) (at $72.00 / year)",
242
- "discount_amounts": [],
243
- "discountable": true,
244
- "discounts": [],
245
- "livemode": true,
246
- "metadata": {
247
- "clientOrderId": "1689910093102-0191"
248
- },
249
- "period": {
250
- "end": 1721532603,
251
- "start": 1689910203
252
- },
253
- "plan": {
254
- "id": "price_1MisrnHGybgi7uQGn0XOVjRo",
255
- "object": "plan",
256
- "active": true,
257
- "aggregate_usage": null,
258
- "amount": 7200,
259
- "amount_decimal": "7200",
260
- "billing_scheme": "per_unit",
261
- "created": 1678166115,
262
- "currency": "usd",
263
- "interval": "year",
264
- "interval_count": 1,
265
- "livemode": true,
266
- "metadata": {},
267
- "nickname": null,
268
- "product": "prod_NTqYLkXCOhAwa5",
269
- "tiers_mode": null,
270
- "transform_usage": null,
271
- "trial_period_days": null,
272
- "usage_type": "licensed"
273
- },
274
- "price": {
275
- "id": "price_1MisrnHGybgi7uQGn0XOVjRo",
276
- "object": "price",
277
- "active": true,
278
- "billing_scheme": "per_unit",
279
- "created": 1678166115,
280
- "currency": "usd",
281
- "custom_unit_amount": null,
282
- "livemode": true,
283
- "lookup_key": null,
284
- "metadata": {},
285
- "nickname": null,
286
- "product": "prod_NTqYLkXCOhAwa5",
287
- "recurring": {
288
- "aggregate_usage": null,
289
- "interval": "year",
290
- "interval_count": 1,
291
- "trial_period_days": null,
292
- "usage_type": "licensed"
293
- },
294
- "tax_behavior": "unspecified",
295
- "tiers_mode": null,
296
- "transform_quantity": null,
297
- "type": "recurring",
298
- "unit_amount": 7200,
299
- "unit_amount_decimal": "7200"
300
- },
301
- "proration": false,
302
- "proration_details": {
303
- "credited_items": null
304
- },
305
- "quantity": 1,
306
- "subscription": "sub_1NWA2ZHGybgi7uQGF7ODZNEZ",
307
- "subscription_item": "si_OIlZASfIRqRhQj",
308
- "tax_amounts": [],
309
- "tax_rates": [],
310
- "type": "subscription",
311
- "unit_amount_excluding_tax": "7200"
312
- }],
313
- "has_more": false,
314
- "total_count": 1,
315
- "url": "/v1/invoices/in_1NWA2ZHGybgi7uQGpYYSVwe8/lines"
316
- },
317
- "livemode": true,
318
- "metadata": {},
319
- "next_payment_attempt": null,
320
- "number": "17D03AC7-0001",
321
- "on_behalf_of": null,
322
- "paid": true,
323
- "paid_out_of_band": false,
324
- "payment_intent": "pi_3NWA2ZHGybgi7uQG1poDpA3m",
325
- "payment_settings": {
326
- "default_mandate": null,
327
- "payment_method_options": null,
328
- "payment_method_types": null
329
- },
330
- "period_end": 1689910203,
331
- "period_start": 1689910203,
332
- "post_payment_credit_notes_amount": 0,
333
- "pre_payment_credit_notes_amount": 0,
334
- "quote": null,
335
- "receipt_number": null,
336
- "rendering_options": null,
337
- "shipping_cost": null,
338
- "shipping_details": null,
339
- "starting_balance": 0,
340
- "statement_descriptor": null,
341
- "status": "paid",
342
- "status_transitions": {
343
- "finalized_at": 1689910203,
344
- "marked_uncollectible_at": null,
345
- "paid_at": 1689910205,
346
- "voided_at": null
347
- },
348
- "subscription": "sub_1NWA2ZHGybgi7uQGF7ODZNEZ",
349
- "subscription_details": {
350
- "metadata": {
351
- "clientOrderId": "1689910093102-0191"
352
- }
353
- },
354
- "subtotal": 7200,
355
- "subtotal_excluding_tax": 7200,
356
- "tax": null,
357
- "test_clock": null,
358
- "total": 7200,
359
- "total_discount_amounts": [],
360
- "total_excluding_tax": 7200,
361
- "total_tax_amounts": [],
362
- "transfer_data": null,
363
- "webhooks_delivered_at": 1689910203
364
- },
365
- "livemode": true,
366
- "metadata": {
367
- "clientOrderId": "1689910093102-0191"
368
- },
369
- "next_pending_invoice_item_invoice": null,
370
- "on_behalf_of": null,
371
- "pause_collection": null,
372
- "payment_settings": {
373
- "payment_method_options": null,
374
- "payment_method_types": null,
375
- "save_default_payment_method": "off"
376
- },
377
- "pending_invoice_item_interval": null,
378
- "pending_setup_intent": null,
379
- "pending_update": null,
380
- "plan": {
381
- "id": "price_1MisrnHGybgi7uQGn0XOVjRo",
382
- "object": "plan",
383
- "active": true,
384
- "aggregate_usage": null,
385
- "amount": 7200,
386
- "amount_decimal": "7200",
387
- "billing_scheme": "per_unit",
388
- "created": 1678166115,
389
- "currency": "usd",
390
- "interval": "year",
391
- "interval_count": 1,
392
- "livemode": true,
393
- "metadata": {},
394
- "nickname": null,
395
- "product": "prod_NTqYLkXCOhAwa5",
396
- "tiers_mode": null,
397
- "transform_usage": null,
398
- "trial_period_days": null,
399
- "usage_type": "licensed"
400
- },
401
- "quantity": 1,
402
- "schedule": null,
403
- "start_date": 1689910203,
404
- "status": "canceled",
405
- "test_clock": null,
406
- "transfer_data": null,
407
- "trial_end": null,
408
- "trial_settings": {
409
- "end_behavior": {
410
- "missing_payment_method": "create_invoice"
411
- }
412
- },
413
- "trial_start": null
414
- }