Compare commits

..

430 Commits

Author SHA1 Message Date
Ramya Rao
3e340c4153 Bump version to 11.7.0-beta.1 2024-05-30 12:46:31 -07:00
stripe-openapi[bot]
0229ed0e95
Merge pull request #1400 from stripe/latest-codegen-beta
Update generated code for beta
2024-05-30 12:43:27 -07:00
Stripe OpenAPI
1e5edb7386 Merge upstream and update generated code for v1055 2024-05-29 22:37:16 +00:00
Stripe OpenAPI
478d6888aa Merge upstream and update generated code for v1048 2024-05-24 17:57:24 +00:00
Stripe OpenAPI
349acd2adf Merge upstream and update generated code for v1048 2024-05-23 23:04:56 +00:00
Stripe OpenAPI
3871745743 Merge upstream and update generated code for v1021 2024-05-09 19:51:31 +00:00
Ramya Rao
59c82e3d4b Bump version to 11.5.0-beta.1 2024-05-09 12:45:39 -07:00
stripe-openapi[bot]
6a4d2d1570
Merge pull request #1395 from stripe/latest-codegen-beta
Update generated code for beta
2024-05-09 12:41:32 -07:00
Stripe OpenAPI
5669ab4d5c Merge upstream and update generated code for v1016 2024-05-08 22:04:51 +00:00
Stripe OpenAPI
78e3166e20 Merge upstream and update generated code for v1013 2024-05-07 17:28:36 +00:00
Stripe OpenAPI
318bed2067 Merge upstream and update generated code for v1011 2024-05-06 20:17:43 +00:00
Stripe OpenAPI
0c44569639 Merge upstream and update generated code for v1009 2024-05-03 17:46:17 +00:00
Helen Ye
65c85f45b3 Bump version to 11.4.0-beta.1 2024-05-02 15:23:28 -07:00
stripe-openapi[bot]
f858c6a959
Merge pull request #1386 from stripe/latest-codegen-beta
Update generated code for beta
2024-05-02 14:06:09 -07:00
Stripe OpenAPI
1fadafb39c Update generated code for v1005 2024-05-01 19:16:03 +00:00
Stripe OpenAPI
4ce9e74bf5 Merge upstream and update generated code for v1004 2024-05-01 15:56:21 +00:00
Stripe OpenAPI
b7d691bafd Update generated code for v1003 2024-04-30 21:48:46 +00:00
Stripe OpenAPI
ee9ea1595a Update generated code for v1002 2024-04-30 19:44:18 +00:00
Stripe OpenAPI
a802c007b2 Update generated code for v997 2024-04-26 16:57:43 +00:00
Stripe OpenAPI
d8701e8749 Update generated code for v989 2024-04-24 22:00:29 +00:00
Stripe OpenAPI
c83c27da74 Update generated code for v985 2024-04-24 13:03:40 +00:00
Stripe OpenAPI
fa02db50ab Update generated code for v979 2024-04-22 22:18:23 +00:00
Stripe OpenAPI
663d1460ef Merge upstream and update generated code for v972 2024-04-19 05:59:05 +00:00
Ramya Rao
9716565a2d Bump version to 11.3.0-beta.1 2024-04-18 14:44:20 -07:00
stripe-openapi[bot]
99c81c7074
Merge pull request #1383 from stripe/latest-codegen-beta
Update generated code for beta
2024-04-18 14:36:38 -07:00
Stripe OpenAPI
16c779cdea Merge upstream and update generated code for v962 2024-04-16 23:26:07 +00:00
Stripe OpenAPI
f832bff64a Merge upstream and update generated code for v962 2024-04-16 17:30:10 +00:00
Stripe OpenAPI
d9f19ec10f Update generated code for v961 2024-04-15 23:25:05 +00:00
Stripe OpenAPI
20ae76545b Update generated code for v961 2024-04-15 22:15:04 +00:00
Stripe OpenAPI
59863ea3aa Update generated code for v957 2024-04-15 18:04:44 +00:00
Ramya Rao
a49aa2d18c Bump version to 11.1.0-beta.1 2024-04-11 22:06:48 -07:00
Ramya Rao
61aba5d027 Generate code for v950 of the spec 2024-04-11 16:21:40 -07:00
Ramya Rao
3d2ad3d61c Merge remote-tracking branch 'origin/master' into beta 2024-04-11 16:19:35 -07:00
stripe-openapi[bot]
ab7d3a61d1
Merge pull request #1376 from stripe/latest-codegen-beta
Update generated code for beta
2024-04-11 23:16:02 +00:00
Ramya Rao
e5ec8c1ebf Merge remote-tracking branch 'origin/beta' into latest-codegen-beta 2024-04-11 16:15:02 -07:00
Helen Ye
8558e0ee2e Merge changes from stripe/stripe-ruby master 2024-04-11 14:50:19 -07:00
Stripe OpenAPI
8c3b51769f Update generated code for v941 2024-04-10 18:01:40 +00:00
Stripe OpenAPI
4c4485185c Merge upstream and update generated code for v940 2024-04-09 22:31:44 +00:00
Stripe OpenAPI
df7f3fad50 Merge upstream and update generated code for v939 2024-04-09 18:00:33 +00:00
Stripe OpenAPI
b9597e5eac Merge upstream and update generated code for v938 2024-04-09 17:27:59 +00:00
Stripe OpenAPI
83463f167e Merge upstream and update generated code for v935 2024-04-05 22:12:07 +00:00
Stripe OpenAPI
abcc296f24 Update generated code for v935 2024-04-05 19:51:48 +00:00
Ramya Rao
7eea258347 Bump version to 10.15.0-beta.1 2024-04-04 15:48:33 -07:00
stripe-openapi[bot]
b66f178666
Merge pull request #1373 from stripe/latest-codegen-beta
Update generated code for beta
2024-04-04 15:41:58 -07:00
Stripe OpenAPI
4ffefec536 Update generated code for v923 2024-04-02 21:05:51 +00:00
Stripe OpenAPI
7f957926c0 Update generated code for v919 2024-04-01 23:24:20 +00:00
Stripe OpenAPI
9f5e950493 Update generated code for v918 2024-03-29 17:38:06 +00:00
Stripe OpenAPI
c4f115226f Update generated code for v917 2024-03-29 17:33:06 +00:00
Stripe OpenAPI
c9c0acf980 Update generated code for v914 2024-03-28 23:38:31 +00:00
stripe-openapi[bot]
3822030694
Merge pull request #1370 from stripe/latest-codegen-beta
Update generated code for beta
2024-03-28 13:38:42 -07:00
Stripe OpenAPI
287b1fab65 Merge upstream and update generated code for v912 2024-03-28 19:19:54 +00:00
Stripe OpenAPI
6a0feb8f7d Update generated code for v905 2024-03-26 00:19:24 +00:00
Stripe OpenAPI
3f60df3581 Update generated code for v901 2024-03-22 19:59:14 +00:00
Stripe OpenAPI
c2f09bc395 Update generated code for v898 2024-03-21 23:31:40 +00:00
Stripe OpenAPI
626b576a34 Merge upstream and update generated code for v897 2024-03-21 22:25:29 +00:00
Ramya Rao
27987ef78e Bump version to 10.14.0-beta.1 2024-03-21 15:22:51 -07:00
stripe-openapi[bot]
4888991c70
Merge pull request #1363 from stripe/latest-codegen-beta
Update generated code for beta
2024-03-21 14:09:15 -07:00
Stripe OpenAPI
4f0f1ee5f9 Update generated code for v896 2024-03-21 20:50:59 +00:00
Stripe OpenAPI
f825a94c1c Update generated code for v892 2024-03-21 14:57:11 +00:00
Stripe OpenAPI
9bfea77b37 Update generated code for v890 2024-03-20 23:16:21 +00:00
Stripe OpenAPI
929b50a836 Update generated code for v889 2024-03-20 21:43:03 +00:00
Stripe OpenAPI
e14fff4431 Update generated code for v884 2024-03-20 17:52:47 +00:00
Stripe OpenAPI
bc3e460aae Update generated code for v879 2024-03-15 23:28:19 +00:00
Stripe OpenAPI
3ed806c90b Merge upstream and update generated code for v879 2024-03-15 19:13:29 +00:00
Ramya Rao
c4dd22825e Bump version to 10.13.0-beta.1 2024-03-14 15:58:30 -07:00
stripe-openapi[bot]
b594bd5c21
Merge pull request #1360 from stripe/latest-codegen-beta
Update generated code for beta
2024-03-14 15:53:41 -07:00
Stripe OpenAPI
7ddec7d6d8 Update generated code for v879 2024-03-14 22:14:21 +00:00
Stripe OpenAPI
f6a388be06 Merge upstream and update generated code for v878 2024-03-14 20:25:23 +00:00
Stripe OpenAPI
a8aac472ec Update generated code for v878 2024-03-14 18:34:26 +00:00
Stripe OpenAPI
0b3c0f3244 Update generated code for v875 2024-03-13 14:47:03 +00:00
Stripe OpenAPI
cece539ed7 Update generated code for v873 2024-03-12 17:24:55 +00:00
Stripe OpenAPI
22693301eb Merge upstream and update generated code for v872 2024-03-12 15:20:19 +00:00
Annie Li
c36c240108 Bump version to 10.12.0-beta.1 2024-02-29 18:07:32 -05:00
stripe-openapi[bot]
ec694bbd05
Merge pull request #1352 from stripe/latest-codegen-beta
Update generated code for beta
2024-02-29 15:02:14 -08:00
Stripe OpenAPI
56039702e9 Merge upstream and update generated code for v857 2024-02-29 23:01:19 +00:00
stripe-openapi[bot]
5edc3708fc
Merge pull request #1350 from stripe/latest-codegen-beta
Update generated code for beta
2024-02-29 14:56:10 -08:00
Stripe OpenAPI
0d0cead582 Merge upstream and update generated code for v857 2024-02-29 22:53:40 +00:00
Stripe OpenAPI
b7a9871e6a Merge upstream and update generated code for v857 2024-02-29 21:05:27 +00:00
Annie Li
e511e2fb8b Bump version to 10.12.0-beta.1 2024-02-29 15:47:54 -05:00
stripe-openapi[bot]
e37031ef1f
Merge pull request #1341 from stripe/latest-codegen-beta
Update generated code for beta
2024-02-29 20:32:45 +00:00
anniel-stripe
d699593ea5
Merge branch 'beta' into latest-codegen-beta 2024-02-29 12:31:53 -08:00
Stripe OpenAPI
4632b7c9da Merge upstream and update generated code for v854 2024-02-28 22:16:23 +00:00
helenye-stripe
418d79de1b
Add a helper to add a beta version (#1343)
* Add a helper to add a beta header

* Typo
2024-02-28 12:19:10 -08:00
Stripe OpenAPI
b1e351f235 Update generated code for v848 2024-02-27 13:02:49 +00:00
Stripe OpenAPI
2c260289f2 Update generated code for v841 2024-02-26 19:09:56 +00:00
Pavel Krymets
d249b5f78b Bump version to 10.11.0-beta.1 2024-02-22 15:45:31 -08:00
stripe-openapi[bot]
816f8ad435
Merge pull request #1335 from stripe/latest-codegen-beta
Update generated code for beta
2024-02-22 15:25:10 -08:00
Stripe OpenAPI
02a733676e Merge upstream and update generated code for v840 2024-02-22 22:28:45 +00:00
Stripe OpenAPI
0e96318130 Update generated code for v840 2024-02-22 17:44:00 +00:00
Stripe OpenAPI
2e0b17a3dc Merge upstream and update generated code for v840 2024-02-22 17:31:10 +00:00
Stripe OpenAPI
8c91e40f29 Merge upstream and update generated code for v838 2024-02-21 22:21:57 +00:00
Stripe OpenAPI
4617b3fbd1 Update generated code for v834 2024-02-20 21:15:37 +00:00
Stripe OpenAPI
da70f0cfc8 Update generated code for v833 2024-02-16 19:12:32 +00:00
Helen Ye
a00f541a93 Bump version to 10.10.0-beta.1 2024-02-16 10:03:53 -08:00
stripe-openapi[bot]
cbe61d7d38
Merge pull request #1332 from stripe/latest-codegen-beta
Update generated code for beta
2024-02-16 09:42:15 -08:00
Stripe OpenAPI
3fe63202e3 Update generated code for v831 2024-02-16 17:34:00 +00:00
Stripe OpenAPI
3921d9b812 Merge upstream and update generated code for v830 2024-02-16 00:39:50 +00:00
Stripe OpenAPI
b39af8a58b Update generated code for v829 2024-02-15 21:27:13 +00:00
Stripe OpenAPI
6e62bca84a Update generated code for v828 2024-02-14 23:59:57 +00:00
stripe-openapi[bot]
a7d998ab2d
Merge pull request #1328 from stripe/latest-codegen-beta
Update generated code for beta
2024-02-14 10:56:01 -08:00
Stripe OpenAPI
479d17b26a Merge upstream and update generated code for v827 2024-02-14 11:55:51 +00:00
Annie Li
1bcb4bc058 Bump version to 10.9.0-beta.1 2024-02-08 14:13:19 -08:00
stripe-openapi[bot]
b399f87064
Merge pull request #1321 from stripe/latest-codegen-beta
Update generated code for beta
2024-02-08 14:08:23 -08:00
Stripe OpenAPI
a1ce673f62 Merge upstream and update generated code for v810 2024-02-05 20:32:27 +00:00
Stripe OpenAPI
4ccbe90069 Merge upstream and update generated code for v809 2024-02-05 19:28:06 +00:00
Richard Marmorstein
5da74143e8 Bump version to 10.8.0-beta.1 2024-02-01 18:13:15 -08:00
stripe-openapi[bot]
41ba199775
Merge pull request #1318 from stripe/latest-codegen-beta
Update generated code for beta
2024-02-01 17:47:33 -08:00
Stripe OpenAPI
6897561e00 Merge upstream and update generated code for v808 2024-02-01 22:28:58 +00:00
Stripe OpenAPI
33e217ba15 Update generated code for v805 2024-01-31 23:11:17 +00:00
Stripe OpenAPI
dfa7994d04 Merge upstream and update generated code for v802 2024-01-30 23:04:23 +00:00
Pavel Krymets
34ff3ed2ca Bump version to 10.7.0-beta.3 2024-01-25 15:34:35 -08:00
stripe-openapi[bot]
fe66019c7d
Merge pull request #1313 from stripe/latest-codegen-beta
Update generated code for beta
2024-01-25 23:15:48 +00:00
pakrym-stripe
f84e1154b1
Merge branch 'beta' into latest-codegen-beta 2024-01-25 15:15:09 -08:00
Stripe OpenAPI
afa13a53b0 Merge upstream and update generated code for v794 2024-01-25 18:38:01 +00:00
Stripe OpenAPI
a1deb162d0 Update generated code for v773 2024-01-22 09:30:48 +00:00
Stripe OpenAPI
499d0605d0 Update generated code for v771 2024-01-19 23:33:30 +00:00
Stripe OpenAPI
1705995709 Merge upstream and update generated code for v769 2024-01-19 19:37:25 +00:00
Richard Marmorstein
452f8ca43d Bump version to 10.7.0-beta.2 2024-01-19 13:36:10 -06:00
Richard Marmorstein
4902b4c49d
Merge pull request #1307 from stripe/richardm-report-raw-request
Beta: report raw request usage
2024-01-19 11:34:13 -08:00
Richard Marmorstein
ad26ff3fca
Merge branch 'beta' into richardm-report-raw-request 2024-01-19 11:33:35 -08:00
Stripe OpenAPI
86ac5fd329 Update generated code for v769 2024-01-19 01:18:58 +00:00
Richard Marmorstein
ee9b5c7ead bugfix 2024-01-15 18:21:39 -06:00
Pavel Krymets
083c3a104e Bump version to 10.7.0-beta.1 2024-01-12 10:58:09 -08:00
stripe-openapi[bot]
354b6a92a3
Merge pull request #1309 from stripe/latest-codegen-beta
Update generated code for beta
2024-01-12 10:50:35 -08:00
Stripe OpenAPI
c48a5e30cf Merge upstream and update generated code for v756 2024-01-12 18:22:02 +00:00
Stripe OpenAPI
71b8f84574 Update generated code for v755 2024-01-12 00:29:20 +00:00
Stripe OpenAPI
d353c130bc Merge upstream and update generated code for v755 2024-01-11 17:59:57 +00:00
Stripe OpenAPI
8bda0900f3 Update generated code for v753 2024-01-10 21:56:29 +00:00
Richard Marmorstein
3cecb75d46 bump 2024-01-10 12:00:25 -06:00
Richard Marmorstein
18fef16be2 Report raw request usage 2024-01-10 11:59:05 -06:00
Richard Marmorstein
783bcb163f Bump version to 10.6.0-beta.1 2024-01-04 14:40:29 -06:00
stripe-openapi[bot]
3e5b22eeae
Merge pull request #1305 from stripe/latest-codegen-beta
Update generated code for beta
2024-01-04 12:24:57 -08:00
Stripe OpenAPI
452e0c4485 Merge upstream and update generated code for v742 2024-01-04 19:58:10 +00:00
Stripe OpenAPI
cb256e8e1c Update generated code for v742 2024-01-04 16:18:11 +00:00
Pavel Krymets
90aa83239b Bump version to 10.5.0-beta.1 2023-12-22 08:43:19 -08:00
stripe-openapi[bot]
ab5266188f
Merge pull request #1302 from stripe/latest-codegen-beta
Update generated code for beta
2023-12-22 08:20:26 -08:00
Stripe OpenAPI
e8f3b94a9d Merge upstream and update generated code for v737 2023-12-22 16:09:18 +00:00
Stripe OpenAPI
52e17ef8ea Update generated code for v734 2023-12-21 22:42:14 +00:00
Stripe OpenAPI
16227fe1e6 Update generated code for v734 2023-12-21 22:27:23 +00:00
Stripe OpenAPI
0e8df39594 Merge upstream and update generated code for v733 2023-12-21 21:26:13 +00:00
Stripe OpenAPI
98fbfb8012 Update generated code for v733 2023-12-21 19:42:52 +00:00
Stripe OpenAPI
8acad71c3f Update generated code for v726 2023-12-20 00:04:53 +00:00
Stripe OpenAPI
3b4f6e4bcb Update generated code for v724 2023-12-19 18:15:49 +00:00
Richard Marmorstein
e1017fb6ef Bump version to 10.4.0-beta.1 2023-12-14 18:13:25 -08:00
stripe-openapi[bot]
4933ab3111
Merge pull request #1301 from stripe/latest-codegen-beta
Update generated code for beta
2023-12-14 17:39:48 -08:00
Stripe OpenAPI
b06b78aa85 Merge upstream and update generated code for v715 2023-12-14 23:58:08 +00:00
stripe-openapi[bot]
fb0f82090c
Merge pull request #1300 from stripe/latest-codegen-beta
Update generated code for beta
2023-12-14 13:24:54 -08:00
Stripe OpenAPI
7c14c42072 Merge upstream and update generated code for v709 2023-12-12 00:26:26 +00:00
Richard Marmorstein
78032b72f5
Merge pull request #1299 from stripe/richardm-merge-master-into-beta
Merge master into beta
2023-12-06 14:33:02 -08:00
Richard Marmorstein
446f6ec55c bump 2023-12-06 12:49:21 -08:00
Richard Marmorstein
7567bd2cb7 Merge remote-tracking branch 'origin/master' into beta 2023-12-05 17:21:49 -08:00
Annie Li
002767748d Bump version to 10.3.0-beta.1 2023-11-30 10:53:02 -08:00
stripe-openapi[bot]
92bad8eeee
Merge pull request #1298 from stripe/latest-codegen-beta
Update generated code for beta
2023-11-30 10:46:53 -08:00
Stripe OpenAPI
3d3552e00d Merge upstream and update generated code for v691 2023-11-30 18:45:25 +00:00
anniel-stripe
5af00f12a2
Merge pull request #1296 from stripe/richardm-beta-merge-master
Merge master into beta
2023-11-29 11:26:50 -08:00
Richard Marmorstein
208ead7817 bump 2023-11-29 10:47:56 -08:00
Richard Marmorstein
cca659d7b3 regenerate 2023-11-29 10:45:26 -08:00
Richard Marmorstein
8c0015fb2c Merge remote-tracking branch 'origin/master' into beta 2023-11-29 10:39:26 -08:00
Richard Marmorstein
5ece384518 Bump version to 10.2.0-beta.1 2023-11-02 15:55:42 -07:00
stripe-openapi[bot]
d936ddcff1
Merge pull request #1287 from stripe/latest-codegen-beta
Update generated code for beta
2023-11-02 15:47:14 -07:00
Stripe OpenAPI
77d8304c54 Merge upstream and update generated code for v645 2023-11-02 22:39:43 +00:00
Stripe OpenAPI
6ba63d9a87 Update generated code for v643 2023-11-02 18:52:37 +00:00
Stripe OpenAPI
0d538ab0f1 Update generated code for v640 2023-11-02 10:42:15 +00:00
Stripe OpenAPI
6a5b89c99d Update generated code for v629 2023-10-30 19:24:42 +00:00
Annie Li
b036d14d27 Bump version to 10.1.0-beta.2 2023-10-26 12:49:50 -07:00
stripe-openapi[bot]
eeaa682877
Merge pull request #1285 from stripe/latest-codegen-beta
Update generated code for beta
2023-10-26 12:34:51 -07:00
Stripe OpenAPI
a9611340a4 Update generated code for v627 2023-10-26 18:34:03 +00:00
Stripe OpenAPI
fee677de9e Update generated code for v623 2023-10-25 19:40:28 +00:00
Stripe OpenAPI
08400e8df9 Update generated code for v620 2023-10-25 18:45:40 +00:00
Stripe OpenAPI
b62018ee93 Update generated code for v618 2023-10-24 18:08:33 +00:00
Pavel Krymets
d4e469fa3c Bump version to 10.1.0-beta.1 2023-10-17 08:56:01 -07:00
stripe-openapi[bot]
cfd9943c83
Merge pull request #1284 from stripe/latest-codegen-beta
Update generated code for beta
2023-10-17 08:24:40 -07:00
Stripe OpenAPI
6d82ac4b56 Merge upstream and update generated code for v603 2023-10-16 20:34:12 +00:00
Stripe OpenAPI
aeb1b59206 Merge upstream and update generated code for v603 2023-10-16 19:55:50 +00:00
stripe-openapi[bot]
a7f1c57f2c
Merge pull request #1282 from stripe/latest-codegen-beta
Update generated code for beta
2023-10-16 11:51:09 -07:00
Stripe OpenAPI
7be7413461 Update generated code for v601 2023-10-13 21:44:27 +00:00
Stripe OpenAPI
42f0c2c9d4 Update generated code for v599 2023-10-12 17:45:36 +00:00
Pavel Krymets
0055df9a63 Bump version to 9.5.0-beta.2 2023-10-12 09:32:08 -07:00
stripe-openapi[bot]
4638712b2b
Merge pull request #1280 from stripe/latest-codegen-beta
Update generated code for beta
2023-10-11 11:14:09 -07:00
Stripe OpenAPI
86f5a8ac5c Update generated code for v591 2023-10-09 17:53:17 +00:00
Stripe OpenAPI
5443a95598 Merge upstream and update generated code for v582 2023-10-05 22:59:57 +00:00
Annie Li
bc3cd13405 Bump version to 9.5.0-beta.1 2023-10-05 11:09:06 -07:00
stripe-openapi[bot]
02c47fd5f0
Merge pull request #1278 from stripe/latest-codegen-beta
Update generated code for beta
2023-10-05 10:42:19 -07:00
Stripe OpenAPI
9a92aa9c72 Merge upstream and update generated code for v582 2023-10-05 17:27:41 +00:00
Stripe OpenAPI
0030faf88f Update generated code for v582 2023-10-05 16:34:47 +00:00
Stripe OpenAPI
3285671c8f Update generated code for v580 2023-10-04 17:40:17 +00:00
Stripe OpenAPI
119802aaf2 Update generated code for v576 2023-10-03 20:41:26 +00:00
Stripe OpenAPI
d7a09671d1 Update generated code for v575 2023-10-02 21:28:34 +00:00
Stripe OpenAPI
05ee1f8fd4 Update generated code for v573 2023-10-02 15:36:11 +00:00
Stripe OpenAPI
72ce4e5f83 Update generated code for v570 2023-09-29 17:34:50 +00:00
Richard Marmorstein
7dbfa2b4c4 Bump version to 9.4.0-beta.3 2023-09-28 17:04:33 -07:00
stripe-openapi[bot]
0d02750915
Merge pull request #1276 from stripe/latest-codegen-beta
Update generated code for beta
2023-09-28 17:00:58 -07:00
Stripe OpenAPI
1e13984787 Merge upstream and update generated code for v569 2023-09-28 23:53:39 +00:00
Stripe OpenAPI
5a2cf963ec Update generated code for v562 2023-09-27 20:44:30 +00:00
Stripe OpenAPI
176f13b832 Update generated code for v557 2023-09-27 00:02:48 +00:00
Stripe OpenAPI
9f77cb9c05 Update generated code for v551 2023-09-25 12:00:59 +00:00
Stripe OpenAPI
12da6ae2a8 Update generated code for v548 2023-09-22 16:56:08 +00:00
Stripe OpenAPI
aed8e679c5 Merge upstream and update generated code for v546 2023-09-22 02:21:46 +00:00
Annie Li
a11a923b23 Bump version to 9.4.0-beta.2 2023-09-21 16:37:12 -07:00
stripe-openapi[bot]
ac980c4216
Merge pull request #1273 from stripe/latest-codegen-beta
Update generated code for beta
2023-09-21 15:59:17 -07:00
Stripe OpenAPI
7852b2faeb Update generated code for v540 2023-09-21 06:13:14 +00:00
Stripe OpenAPI
0a0374b0a1 Update generated code for v536 2023-09-19 23:52:46 +00:00
Stripe OpenAPI
2e533be04d Update generated code for v533 2023-09-15 22:25:24 +00:00
Stripe OpenAPI
e058a85fe7 Merge upstream and update generated code for v532 2023-09-15 17:26:55 +00:00
Richard Marmorstein
6bf2eaf832 Bump version to 9.4.0-beta.1 2023-09-14 18:10:39 -07:00
stripe-openapi[bot]
fb6f536d00
Merge pull request #1270 from stripe/latest-codegen-beta
Update generated code for beta
2023-09-14 18:05:24 -07:00
Stripe OpenAPI
f97b214181 Update generated code for v532 2023-09-15 00:45:49 +00:00
Stripe OpenAPI
7066d7d3a1 Update generated code for v531 2023-09-15 00:10:55 +00:00
Stripe OpenAPI
147e25b288 Merge upstream and update generated code for v530 2023-09-14 23:11:35 +00:00
Stripe OpenAPI
568b3191c4 Update generated code for v526 2023-09-13 20:35:42 +00:00
Stripe OpenAPI
1ef9ff4b88 Update generated code for v525 2023-09-13 16:46:29 +00:00
Stripe OpenAPI
3165ed5905 Update generated code for v525 2023-09-13 15:42:40 +00:00
Stripe OpenAPI
be4388721d Update generated code for v522 2023-09-12 14:35:29 +00:00
Stripe OpenAPI
6ed6014b89 Update generated code for v522 2023-09-11 18:58:57 +00:00
Stripe OpenAPI
0ea7c61bcf Update generated code for v519 2023-09-11 16:50:27 +00:00
Stripe OpenAPI
f94c2cb45c Update generated code for v518 2023-09-08 19:24:11 +00:00
Pavel Krymets
c4bdddbe3c Bump version to 9.3.0-beta.1 2023-09-07 13:03:21 -07:00
stripe-openapi[bot]
81b5190aed
Merge pull request #1269 from stripe/latest-codegen-beta
Update generated code for beta
2023-09-07 12:08:03 -07:00
Stripe OpenAPI
3fd4e48999 Merge upstream and update generated code for v515 2023-09-07 18:58:48 +00:00
stripe-openapi[bot]
44a1547344
Merge pull request #1268 from stripe/latest-codegen-beta
Update generated code for beta
2023-09-07 11:26:03 -07:00
Stripe OpenAPI
65768f9ee1 Update generated code for v513 2023-09-06 22:54:15 +00:00
Stripe OpenAPI
2ebd8cc795 Update generated code for v507 2023-09-06 14:46:53 +00:00
Stripe OpenAPI
206c80733f Merge upstream and update generated code for v503 2023-09-01 20:03:33 +00:00
Richard Marmorstein
600c5fb883 Bump version to 9.2.0-beta.1 2023-08-31 17:08:35 -07:00
stripe-openapi[bot]
8dfa6f6eaa
Merge pull request #1265 from stripe/latest-codegen-beta
Update generated code for beta
2023-08-31 16:53:14 -07:00
Stripe OpenAPI
c3b05c5e71 Update generated code for v484 2023-08-25 16:36:03 +00:00
Annie Li
fee9143bb1 Bump version to 9.0.0-beta.1 2023-08-24 11:37:20 -07:00
stripe-openapi[bot]
bd62fe08d6
Merge pull request #1264 from stripe/latest-codegen-beta
Update generated code for beta
2023-08-24 10:45:57 -07:00
Stripe OpenAPI
658a0b786a Update generated code for v482 2023-08-23 22:10:54 +00:00
Stripe OpenAPI
84bf38a606 Merge upstream and update generated code for v481 2023-08-23 18:24:13 +00:00
stripe-openapi[bot]
882c2a8c36
Merge pull request #1259 from stripe/latest-codegen-beta
Update generated code for beta
2023-08-17 18:59:08 +00:00
Annie Li
f7d4abdb5f Merge remote-tracking branch 'origin/master' into latest-codegen-beta 2023-08-17 11:58:07 -07:00
Stripe OpenAPI
8977ca553f Update generated code for v461 2023-08-14 16:09:22 +00:00
Stripe OpenAPI
e8f09f4001 Merge upstream and update generated code for v460 2023-08-11 22:19:30 +00:00
Richard Marmorstein
4430246744 Bump version to 8.8.0-beta.1 2023-08-10 17:40:26 -07:00
stripe-openapi[bot]
e9b70ffd51
Merge pull request #1257 from stripe/latest-codegen-beta
Update generated code for beta
2023-08-10 17:35:11 -07:00
Stripe OpenAPI
b578ab2eb3 Update generated code for v457 2023-08-10 17:03:18 +00:00
Stripe OpenAPI
79dee2ae96 Merge upstream and update generated code for v451 2023-08-07 17:18:39 +00:00
Annie Li
e0cfc89447 Bump version to 8.7.0-beta.3 2023-08-03 13:52:18 -07:00
stripe-openapi[bot]
37b1db8140
Merge pull request #1254 from stripe/latest-codegen-beta
Update generated code for beta
2023-08-03 13:02:00 -07:00
Stripe OpenAPI
ce925ab7a4 Merge upstream and update generated code for v442 2023-08-02 21:56:11 +00:00
pakrym-stripe
d604af0247
Remove developer_message support (#1252) 2023-07-28 15:03:44 -07:00
Pavel Krymets
078adfcc37 Bump version to 8.7.0-beta.2 2023-07-28 10:19:03 -07:00
stripe-openapi[bot]
e6ff2138c6
Update generated code for beta (#1251)
* Update generated code for v428

* Update generated code for v431

---------

Co-authored-by: Stripe OpenAPI <105521251+stripe-openapi[bot]@users.noreply.github.com>
2023-07-25 15:15:26 -07:00
stripe-openapi[bot]
5609c6ce72
Merge pull request #1249 from stripe/latest-codegen-beta
Update generated code for beta
2023-07-24 10:32:32 -07:00
Stripe OpenAPI
2227067f71 Merge upstream and update generated code for v426 2023-07-21 17:06:45 +00:00
Stripe OpenAPI
4981cc844d Merge upstream and update generated code for v426 2023-07-21 15:32:50 +00:00
stripe-openapi[bot]
7e2a036dc5
Update generated code for beta (#1246)
* Update generated code for v417

* Update generated code for v423

* Update generated code for v424

* Update generated code for v425

---------

Co-authored-by: Stripe OpenAPI <105521251+stripe-openapi[bot]@users.noreply.github.com>
Co-authored-by: pakrym-stripe <99349468+pakrym-stripe@users.noreply.github.com>
2023-07-20 17:20:40 +00:00
Annie Li
900ecf2db9 Bump version to 8.7.0-beta.1 2023-07-13 15:55:59 -07:00
stripe-openapi[bot]
8d5a5ef183
Merge pull request #1245 from stripe/latest-codegen-beta
Update generated code for beta
2023-07-13 15:49:45 -07:00
Stripe OpenAPI
5bf957f53e Merge upstream and update generated code for v417 2023-07-13 22:43:42 +00:00
stripe-openapi[bot]
0e5e7b8647
Merge pull request #1243 from stripe/latest-codegen-beta
Update generated code for beta
2023-07-13 15:28:12 -07:00
Stripe OpenAPI
a334cb5fb4 Update generated code for v417 2023-07-13 19:22:31 +00:00
Stripe OpenAPI
801b65759e Update generated code for v417 2023-07-13 16:04:47 +00:00
Stripe OpenAPI
3d772067d1 Update generated code for v415 2023-07-12 14:00:16 +00:00
Stripe OpenAPI
6db03363ff Merge upstream and update generated code for v411 2023-07-11 01:14:27 +00:00
stripe-openapi[bot]
1af83889bb
Merge pull request #1239 from stripe/latest-codegen-beta
Update generated code for beta
2023-07-06 15:03:45 -07:00
Stripe OpenAPI
e6b3043f66 Update generated code for v406 2023-06-29 23:53:03 +00:00
Stripe OpenAPI
e74bd2e7f7 Update generated code for v405 2023-06-29 22:03:52 +00:00
Stripe OpenAPI
bc924840dd Update generated code for v396 2023-06-27 02:44:54 +00:00
Stripe OpenAPI
456f10ab93 Merge upstream and update generated code for v394 2023-06-23 21:47:05 +00:00
Annie Li
96b7453ee9 Bump version to 8.6.0-beta.6 2023-06-22 13:52:23 -07:00
stripe-openapi[bot]
c0310bc4a7
Merge pull request #1237 from stripe/latest-codegen-beta
Update generated code for beta
2023-06-22 12:49:59 -07:00
Stripe OpenAPI
a2806aca65 Update generated code for v392 2023-06-21 18:00:44 +00:00
Stripe OpenAPI
2f7ede30d1 Merge upstream and update generated code for v391 2023-06-21 15:19:36 +00:00
pakrym-stripe
4eae12c528
Merge pull request #1233 from stripe/latest-codegen-beta
Update generated code for beta
2023-06-15 12:55:50 -07:00
Stripe OpenAPI
24801210b9 Update generated code for v387 2023-06-14 22:34:36 +00:00
Stripe OpenAPI
88ef71cf32 Merge upstream and update generated code for v385 2023-06-14 04:30:49 +00:00
stripe-openapi[bot]
50c64e6c06
Update generated code for beta (#1229)
* Update generated code for v376

* Update generated code for v377

* Update generated code (#1226)

* Update generated code for v358

* Update generated code for v376

---------

Co-authored-by: Stripe OpenAPI <105521251+stripe-openapi[bot]@users.noreply.github.com>

* Update generated code for v379

* Update generated code for v380

---------

Co-authored-by: Stripe OpenAPI <105521251+stripe-openapi[bot]@users.noreply.github.com>
2023-06-13 13:53:14 -07:00
Annie Li
91015aa41c Bump version to 8.6.0-beta.5 2023-06-01 15:58:18 -07:00
stripe-openapi[bot]
17619449ed
Merge pull request #1227 from stripe/latest-codegen-beta
Update generated code for beta
2023-06-01 22:17:48 +00:00
anniel-stripe
a22bc332ad
Merge branch 'beta' into latest-codegen-beta 2023-06-01 15:17:01 -07:00
Richard Marmorstein
a5519a6a57
Update README.md 2023-05-31 13:41:27 -07:00
Richard Marmorstein
90a2a55687
Merge pull request #1228 from stripe/richardm-raw-request-readme
Document raw_request
2023-05-31 13:26:59 -07:00
Richard Marmorstein
6e2e8c757d
Update README.md 2023-05-31 13:26:20 -07:00
Richard Marmorstein
c7a26629e6
Update README.md
Co-authored-by: pakrym-stripe <99349468+pakrym-stripe@users.noreply.github.com>
2023-05-31 13:25:59 -07:00
Richard Marmorstein
62c0f898c3
Document raw_request 2023-05-31 13:18:45 -07:00
Stripe OpenAPI
cd0e601188 Update generated code for v361 2023-05-26 18:35:29 +00:00
Stripe OpenAPI
43f6318ebd Merge upstream and update generated code for v358 2023-05-25 18:15:55 +00:00
stripe-openapi[bot]
150be92efc
Update generated code for beta (#1222)
* Update generated code for v352

* Update generated code for v353

* Downgrade jaro_winkler (#1225)

* Update generated code for v353 (#1223)

Co-authored-by: Stripe OpenAPI <105521251+stripe-openapi[bot]@users.noreply.github.com>
Co-authored-by: pakrym-stripe <99349468+pakrym-stripe@users.noreply.github.com>

---------

Co-authored-by: Stripe OpenAPI <105521251+stripe-openapi[bot]@users.noreply.github.com>
Co-authored-by: pakrym-stripe <99349468+pakrym-stripe@users.noreply.github.com>
2023-05-25 18:06:42 +00:00
pakrym-stripe
99dbffb9c6
Handle developer message in preview error responses (#1224) 2023-05-23 10:50:01 -07:00
Pavel Krymets
a77bbab966 Bump version to 8.6.0-beta.4 2023-05-19 10:18:57 -07:00
stripe-openapi[bot]
4d5a2aab6e
Merge pull request #1220 from stripe/latest-codegen-beta
Update generated code for beta
2023-05-19 09:52:29 -07:00
Stripe OpenAPI
7356579799 Merge upstream and update generated code for v351 2023-05-19 16:14:19 +00:00
pakrym-stripe
23cbd8fc82
Add raw_request (#1217) 2023-05-18 15:58:12 -07:00
stripe-openapi[bot]
adc0ccf8e7
Update generated code for v309 (#1216)
Co-authored-by: Stripe OpenAPI <105521251+stripe-openapi[bot]@users.noreply.github.com>
2023-04-27 09:40:10 -07:00
stripe-openapi[bot]
d9118a7dfe
Update generated code for v305 (#1214)
Co-authored-by: Stripe OpenAPI <105521251+stripe-openapi[bot]@users.noreply.github.com>
2023-04-20 11:02:17 -07:00
Annie Li
f33553bef2 Bump version to 8.6.0-beta.3 2023-04-17 14:37:02 -07:00
stripe-openapi[bot]
1d1d8a90f0
Merge pull request #1211 from stripe/latest-codegen-beta
Update generated code for beta
2023-04-17 14:34:14 -07:00
anniel-stripe
943dd4b020
Merge branch 'beta' into latest-codegen-beta 2023-04-17 11:25:12 -07:00
anniel-stripe
6366593ed5
type check sign_lambda, more tests (#1213) 2023-04-17 10:53:31 -07:00
anniel-stripe
8cdb85cb36
Accept sign as lambda function (#1212)
* Accept signing method as lambda

* trigger CI

* sign_lambda
2023-04-14 14:56:10 -07:00
anniel-stripe
9990e2b8b1
Request signing beta (#1210)
* wip

* don't check api_key type if auth_token exists

* More comments / readability

* signing header tests

* wrap lines

* Use authenticator

* fix test

* lint

* more polish

* raise error if signature calculation fails

* raise error if sign not implemented

* feedback
2023-04-14 12:23:02 -07:00
Stripe OpenAPI
d600f2e9a1 Merge upstream and update generated code for v299 2023-04-13 20:28:48 +00:00
Pavel Krymets
c3cc36ed12 Bump version to 8.6.0-beta.2 2023-04-13 08:59:53 -07:00
stripe-openapi[bot]
00077b44d8
Update generated code for beta (#1206)
* Update generated code for v296

* Update generated code for v296

---------

Co-authored-by: Stripe OpenAPI <105521251+stripe-openapi[bot]@users.noreply.github.com>
2023-04-13 08:29:55 -07:00
Richard Marmorstein
2c06e9c83e
Merge pull request #1205 from stripe/latest-codegen-beta
Update generated code for beta
2023-04-06 15:31:58 -07:00
Stripe OpenAPI
4b74f4c93f Merge upstream and update generated code for v294 2023-04-06 20:34:56 +00:00
Stripe OpenAPI
e3f0da227f Update generated code for v292 2023-04-03 16:57:50 +00:00
Stripe OpenAPI
3ac330785f Update generated code for v291 2023-04-03 15:23:53 +00:00
Annie Li
0075550ff8 Bump version to 8.6.0-beta.1 2023-03-30 15:39:50 -07:00
anniel-stripe
890cdae767
Merge pull request #1202 from stripe/latest-codegen-beta
* Update generated code (new) (#1197)

* Update generated code for v275

* Update generated code for v276

---------

Co-authored-by: Stripe OpenAPI <105521251+stripe-openapi[bot]@users.noreply.github.com>

* Update generated code for v277 (#1198)

Co-authored-by: Stripe OpenAPI <105521251+stripe-openapi[bot]@users.noreply.github.com>

* Bump version to 8.4.0

* Update save deprecation message (#1201)

* Update save deprecation message

* comma

* Update generated code for v285

* Update generated code for v285 (#1203)

Co-authored-by: Stripe OpenAPI <105521251+stripe-openapi[bot]@users.noreply.github.com>

* Bump version to 8.5.0

---------

Co-authored-by: stripe-openapi[bot] <105521251+stripe-openapi[bot]@users.noreply.github.com>
Co-authored-by: Pavel Krymets <pakrym@stripe.com>
Co-authored-by: anniel-stripe <97691964+anniel-stripe@users.noreply.github.com>
Co-authored-by: Annie Li <anniel@stripe.com>
2023-03-30 15:37:55 -07:00
Stripe OpenAPI
732a1467b5 Merge upstream and update generated code for v287 2023-03-30 22:34:24 +00:00
Stripe OpenAPI
d39dcb4a81 Update generated code for v285 2023-03-30 06:58:38 +00:00
Stripe OpenAPI
fb655489eb Merge upstream and update generated code for v283 2023-03-29 19:32:07 +00:00
Pavel Krymets
4143d3930d Bump version to 8.5.0-beta.1 2023-03-23 16:04:57 -07:00
stripe-openapi[bot]
23bc1b1f3b
Update generated code for beta (new) (#1194)
* Update generated code for v268

* Update generated code for v268

* Update generated code for v276

* Update generated code for v277

---------

Co-authored-by: Stripe OpenAPI <105521251+stripe-openapi[bot]@users.noreply.github.com>
2023-03-23 14:58:46 -07:00
stripe-openapi[bot]
fe73975f07
Update generated code for v266 (#1191) 2023-03-17 14:18:21 -07:00
pakrym-stripe
24f8480c71
Merge pull request #1192 from stripe/merge-master-into-beta
Merge master into beta
2023-03-17 13:58:57 -07:00
Pavel Krymets
9d8ca624e3 Merge branch 'master' into beta 2023-03-17 13:52:54 -07:00
Richard Marmorstein
105506a7fd Bump version to 8.4.0-beta.4 2023-03-16 19:40:09 -07:00
Richard Marmorstein
75b29c3484
Merge pull request #1189 from stripe/latest-codegen-beta
Update generated code for beta (new)
2023-03-16 18:56:48 -07:00
Stripe OpenAPI
a6614ee701 Update generated code for v262 2023-03-16 20:08:19 +00:00
Stripe OpenAPI
33544c7c25 Update generated code for v260 2023-03-15 21:20:26 +00:00
stripe-openapi[bot]
8f210e251a
Update generated code for v258 (#1188)
Co-authored-by: Stripe OpenAPI <105521251+stripe-openapi[bot]@users.noreply.github.com>
2023-03-15 16:05:31 +00:00
pakrym-stripe
3b31fb29a6
Merge pull request #1187 from stripe/merge-upstream-master
Merge upstream master
2023-03-15 09:02:18 -07:00
Pavel Krymets
4519e8fa19 Merge branch 'master' into beta 2023-03-15 08:41:42 -07:00
Annie Li
f471a2c6a4 Bump version to 8.4.0-beta.3 2023-03-09 13:02:58 -08:00
anniel-stripe
1e3428e87d
Merge pull request #1184 from stripe/latest-codegen-beta
API Updates for beta branch
2023-03-09 12:50:40 -08:00
Annie Li
7233155b42 Codegen for openapi v249 2023-03-09 12:02:08 -08:00
Annie Li
cbfe81107a Reset version to 8.4.0-beta.2 2023-03-09 12:01:54 -08:00
Annie Li
0b6cffde22 Set version to 8.3.0 to simplify merge 2023-03-09 12:01:53 -08:00
Pavel Krymets
1be10ae4fc Bump version to 8.4.0-beta.2 2023-03-03 06:34:37 -08:00
pakrym-stripe
167daeaf62
Merge pull request #1183 from stripe/latest-codegen-beta
API Updates for beta branch
2023-03-03 06:33:06 -08:00
Pavel Krymets
080fddce5a Codegen for openapi v237 2023-03-02 15:50:55 -08:00
Pavel Krymets
466824d0af Reset version to 8.4.0-beta.1 2023-03-02 15:50:39 -08:00
Pavel Krymets
945e691968 Set version to 8.3.0 to simplify merge 2023-03-02 15:50:39 -08:00
Richard Marmorstein
f8a9a287ab Bump version to 8.4.0-beta.1 2023-02-23 17:32:43 -08:00
Richard Marmorstein
92083a8615
Merge pull request #1182 from stripe/latest-codegen-beta
API Updates for beta branch
2023-02-23 17:22:01 -08:00
Richard Marmorstein
705078e2cf Reset version to 8.3.0-beta.1 2023-02-23 17:08:24 -08:00
Richard Marmorstein
29d8261b17 Include latest changes from the master branch 2023-02-23 17:08:24 -08:00
Richard Marmorstein
3958d6a9df Set version to 8.3.0 to simplify merge 2023-02-23 17:08:24 -08:00
Richard Marmorstein
696be38196 Bump version to 8.3.0-beta.1 2023-02-02 17:52:41 -06:00
Richard Marmorstein
ff853fda95
Merge pull request #1174 from stripe/latest-codegen-beta
API Updates for beta branch
2023-02-02 15:50:52 -08:00
Richard Marmorstein
d10398a825 Codegen for openapi v223 2023-02-02 15:06:51 -06:00
Richard Marmorstein
6f70bd8696 Reset version to 8.2.0-beta.3 2023-02-02 15:06:37 -06:00
Richard Marmorstein
1d21c60802 Include latest changes from the master branch 2023-02-02 15:06:37 -06:00
Richard Marmorstein
b9c10b9c2f Set version to 8.2.0 to simplify merge 2023-02-02 15:06:37 -06:00
Annie Li
446ffc7a22 Bump version to 8.2.0-beta.3 2023-01-26 16:15:28 -08:00
anniel-stripe
58db6d32ef
Merge pull request #1172 from stripe/latest-codegen-beta
API Updates for beta branch
2023-01-26 16:13:01 -08:00
Annie Li
9a4dfdcb2f Codegen for openapi v221 2023-01-26 10:51:25 -08:00
Annie Li
50bbc0df17 Reset version to 8.2.0-beta.2 2023-01-26 10:51:08 -08:00
Annie Li
8226f0ad99 Include latest changes from the master branch 2023-01-26 10:51:08 -08:00
Annie Li
43fa8f5af7 Set version to 8.1.0 to simplify merge 2023-01-26 10:51:08 -08:00
Pavel Krymets
0e61789557 Bump version to 8.2.0-beta.2 2023-01-19 14:35:39 -08:00
pakrym-stripe
cfe69c131e
Merge pull request #1170 from stripe/latest-codegen-beta
API Updates for beta branch
2023-01-19 14:30:44 -08:00
Pavel Krymets
7bf9cace9e Codegen for openapi v219 2023-01-19 12:27:31 -08:00
Pavel Krymets
d7eac6010d Reset version to 8.2.0-beta.1 2023-01-19 12:27:16 -08:00
Pavel Krymets
7d91cb83d9 Include latest changes from the master branch 2023-01-19 12:27:16 -08:00
Pavel Krymets
ce4946f5d8 Set version to 8.1.0 to simplify merge 2023-01-19 12:27:16 -08:00
Richard Marmorstein
15415fcbf3 Bump version to 8.2.0-beta.1 2023-01-12 13:41:17 -06:00
Richard Marmorstein
f8acdb5f6a
Merge pull request #1167 from stripe/latest-codegen-beta
API Updates for beta branch
2023-01-12 10:56:35 -08:00
Richard Marmorstein
fe794f4868 Codegen for openapi v218 2023-01-12 11:27:18 -06:00
Richard Marmorstein
2b841bc109 Reset version to 8.1.0-beta.4 2023-01-12 11:27:02 -06:00
Richard Marmorstein
1835883848 Include latest changes from the master branch 2023-01-12 11:27:02 -06:00
Richard Marmorstein
e11400adc8 Set version to 8.1.0 to simplify merge 2023-01-12 11:27:02 -06:00
Annie Li
5ea85d0867 Bump version to 8.1.0-beta.4 2023-01-05 15:03:20 -08:00
anniel-stripe
600b1965f6
Merge pull request #1164 from stripe/latest-codegen-beta
API Updates for beta branch
2023-01-05 14:46:10 -08:00
Annie Li
5fdd180667 Codegen for openapi v217 2023-01-05 11:43:34 -08:00
Annie Li
97e24e9e57 Reset version to 8.1.0-beta.3 2023-01-05 11:43:18 -08:00
Annie Li
9531f57236 Set version to 8.0.0 to simplify merge 2023-01-05 11:43:18 -08:00
Richard Marmorstein
094574d2fe Bump version to 8.1.0-beta.3 2022-12-22 17:29:09 -06:00
Richard Marmorstein
cff25d0c8b
API Updates for beta branch (#1158)
* Set version to 8.0.0 to simplify merge

* Reset version to 8.1.0-beta.2

* Codegen for openapi v216
2022-12-22 13:25:13 -08:00
Annie Li
0795c1d3d0 Bump version to 8.1.0-beta.2 2022-12-15 16:05:43 -08:00
anniel-stripe
802a1a7aa6
Merge pull request #1156 from stripe/latest-codegen-beta
API Updates for beta branch
2022-12-15 15:51:48 -08:00
Annie Li
13b0bca995 Codegen for openapi v215 2022-12-15 15:42:16 -08:00
Annie Li
51d364c844 Reset version to 8.1.0-beta.1 2022-12-15 15:41:58 -08:00
Annie Li
f4c6f2b304 Set version to 8.0.0 to simplify merge 2022-12-15 15:41:58 -08:00
anniel-stripe
b64fe42043
API Updates for beta branch (#1155)
* Set version to 8.0.0 to simplify merge

* Reset version to 8.1.0-beta.1

* Codegen for openapi v214
2022-12-15 14:53:06 -08:00
Pavel Krymets
586e685e63 Bump version to 8.1.0-beta.1 2022-12-08 14:55:41 -08:00
pakrym-stripe
3b5c725539
Merge pull request #1153 from stripe/latest-codegen-beta
API Updates for beta branch
2022-12-08 12:18:01 -08:00
Pavel Krymets
ea91a6f0b9 Codegen for openapi v212 2022-12-08 12:08:39 -08:00
Pavel Krymets
21f31edff4 Reset version to 7.2.0-beta.5 2022-12-08 12:08:24 -08:00
Pavel Krymets
a11f1ffd2a Include latest changes from the master branch 2022-12-08 12:08:24 -08:00
Pavel Krymets
4bd92239d5 Set version to 8.0.0 to simplify merge 2022-12-08 12:08:24 -08:00
anniel-stripe
c261f6bbb6
Merge pull request #1146 from stripe/latest-codegen-beta
API Updates for beta branch
2022-11-10 14:49:10 -08:00
Annie Li
f45fc7d703 Reset version to 7.2.0-beta.5 2022-11-10 12:10:48 -08:00
Annie Li
5cd522c007 Include latest changes from the master branch 2022-11-10 12:10:48 -08:00
Annie Li
e6bda8356d Set version to 7.1.0 to simplify merge 2022-11-10 12:10:48 -08:00
Kamil Pajdzik
2354633a92 Bump version to 7.2.0-beta.5 2022-11-02 13:07:25 -07:00
Kamil Pajdzik
549a73544f
Merge pull request #1139 from stripe/latest-codegen-beta
API Updates for beta branch
2022-11-02 08:58:59 -07:00
Kamil Pajdzik
25833c1408 Codegen for openapi v205 2022-11-01 16:18:04 -07:00
Kamil Pajdzik
a59b57c3d1 Reset version to 7.2.0-beta.4 2022-11-01 16:17:47 -07:00
Kamil Pajdzik
63d447df77 Include latest changes from the master branch 2022-11-01 16:17:47 -07:00
Kamil Pajdzik
5cd6f9f9bc Set version to 7.1.0 to simplify merge 2022-11-01 16:17:47 -07:00
Richard Marmorstein
ffa3747bdf
Merge pull request #1135 from stripe/latest-codegen-beta
API Updates for beta branch
2022-10-14 10:43:19 -07:00
Richard Marmorstein
ddf79610d9 Fix formatting 2022-10-14 10:26:51 -07:00
Richard Marmorstein
edad946244 Codegen for openapi v202 2022-10-14 10:08:49 -07:00
Richard Marmorstein
e3785d5893 Reset version to 7.2.0-beta.4 2022-10-14 10:08:42 -07:00
Richard Marmorstein
2062e988eb Set version to 7.1.0 to simplify merge 2022-10-14 10:08:42 -07:00
Kamil Pajdzik
0bdc688516 Bump version to 7.2.0-beta.4 2022-10-07 08:48:11 -07:00
Pavel Krymets
82ac9f2720 Bump version to 7.2.0-beta.3 2022-09-26 16:32:21 -07:00
pakrym-stripe
7381eb02a6
Merge pull request #1129 from stripe/latest-codegen-beta
API Updates for beta branch
2022-09-26 13:35:10 -07:00
Pavel Krymets
6720fc8d3f Codegen for openapi v196 2022-09-26 12:26:38 -07:00
Pavel Krymets
35a29332c5 Reset version to 7.2.0-beta.2 2022-09-26 12:26:08 -07:00
Pavel Krymets
519d68ce10 Include latest changes from the master branch 2022-09-26 12:26:08 -07:00
Pavel Krymets
b95ea4ba27 Set version to 7.1.0 to simplify merge 2022-09-26 12:26:07 -07:00
Dominic Charley-Roy
318e244a76 Bump version to 7.2.0-beta.2 2022-08-26 11:16:19 -04:00
Dominic Charley-Roy
bb1c995e93
API Updates for beta branch (#1127) 2022-08-25 10:02:19 -04:00
Pavel Krymets
0f12721697 Bump version to 7.2.0-beta.1 2022-08-23 11:57:55 -07:00
pakrym-stripe
671163245a
Merge pull request #1122 from stripe/latest-codegen-beta
API Updates for beta branch
2022-08-23 10:25:10 -07:00
Pavel Krymets
486bee15a8 Codegen for openapi v184 2022-08-23 05:35:55 -07:00
Pavel Krymets
fdf5be66f5 Reset version to 7.1.0-beta.2 2022-08-23 05:35:23 -07:00
Pavel Krymets
c732841fd3 Include latest changes from the master branch 2022-08-23 05:35:23 -07:00
Pavel Krymets
22db70b479 Set version to 7.1.0 to simplify merge 2022-08-23 05:35:23 -07:00
Pavel Krymets
2db4fd9d06 Bump version to 7.1.0-beta.2 2022-08-11 15:42:00 -07:00
pakrym-stripe
6797f906e1
Merge pull request #1113 from stripe/latest-codegen-beta
API Updates for beta branch
2022-08-11 15:39:47 -07:00
Pavel Krymets
59f2d4d0fe suppress linting error 2022-08-11 15:03:49 -07:00
Pavel Krymets
0d1b570bfa Codegen for openapi v178 2022-08-11 14:50:55 -07:00
Pavel Krymets
d7d3c1b425 Reset version to 7.1.0-beta.1 2022-08-11 14:50:25 -07:00
Pavel Krymets
7df619de69 Set version to 7.0.0 to simplify merge 2022-08-11 14:50:24 -07:00
Pavel Krymets
f649ed3824 Bump version to 7.1.0-beta.1 2022-08-03 14:04:17 -07:00
pakrym-stripe
32a95902cc
Merge pull request #1107 from stripe/latest-codegen-beta
API Updates for beta branch
2022-08-03 13:49:41 -07:00
Pavel Krymets
bdcfe6cc33 Codegen for openapi v175 2022-08-02 13:42:48 -07:00
Pavel Krymets
5e1c4a2302 Reset version to 6.6.0-beta.1 2022-08-02 13:42:16 -07:00
Pavel Krymets
54a073783f Include latest changes from the master branch 2022-08-02 13:42:16 -07:00
Pavel Krymets
e6a07ae658 Set version to 7.0.0 to simplify merge 2022-08-02 13:42:16 -07:00
Dominic Charley-Roy
588ed3b5e7 Bump version to 6.6.0-beta.1 2022-07-22 14:01:30 -04:00
Dominic Charley-Roy
de33cde125
API Updates for beta branch (#1100) 2022-07-21 17:35:24 -04:00
pakrym-stripe
d849ec3b14
Merge pull request #1097 from stripe/latest-codegen-beta
API Updates for beta branch
2022-07-19 16:32:55 -07:00
Pavel Krymets
8b5f78aa6a Codegen for openapi v166 2022-07-19 14:35:01 -07:00
Pavel Krymets
7f6ba1c35c Reset version to 6.4.0 2022-07-19 14:34:31 -07:00
Pavel Krymets
e55a2559ae Set version to 6.5.0 to simplify merge 2022-07-19 14:34:31 -07:00
pakrym-stripe
0b00266be1
Merge pull request #1093 from stripe/latest-codegen-beta
API Updates for beta branch
2022-07-07 12:07:07 -07:00
Pavel Krymets
d0cd4fbaa6 Codegen for openapi v163 2022-07-07 11:05:19 -07:00
Pavel Krymets
979da6f84b Reset version to 6.4.0 2022-07-07 11:04:51 -07:00
Pavel Krymets
d95c518a3c Include latest changes from the master branch 2022-07-07 11:04:51 -07:00
Pavel Krymets
83c773f61e Set version to 6.5.0 to simplify merge 2022-07-07 11:04:51 -07:00
pakrym-stripe
d9f719ba01
API Updates for beta branch (#1085)
* fix: Update logging to coerce ASCII-8BIT into UTF-8. (#1076)

* Add release/* and feature/* to PR CI triggers (#1080)

* Add next-major-release to PR CI triggers

* Update branch names

* Rename release to sdk-release in CI triggers

* API Updates (#1084)

* Bump version to 6.5.0

* Set version to 6.5.0 to simplify merge

* Reset version to 6.4.0

Co-authored-by: Dominic Charley-Roy <78050200+dcr-stripe@users.noreply.github.com>
Co-authored-by: Kamil Pajdzik <99290280+kamil-stripe@users.noreply.github.com>
Co-authored-by: Dominic Charley-Roy <dcr@stripe.com>
2022-06-30 13:12:17 -07:00
pakrym-stripe
73d10e8557
Use the generated API version (#1075) 2022-06-21 13:42:58 -07:00
781 changed files with 16579 additions and 283185 deletions

2
.github/CODEOWNERS vendored
View File

@ -1,2 +0,0 @@
# All files should be reviewed by a member of the SDKs team
* @stripe/api-library-reviewers

View File

@ -1,11 +0,0 @@
### Why?
<!-- Describe why this change is being made. Briefly include history and context, high-level what this PR does, and what the world looks like afterward. -->
### What?
<!--
List out the key changes made in this PR, e.g.
- implements the antimatter particle trace in the nitronium microfilament drive
- updated tests -->
### See Also
<!-- Include any links or additional information that help explain this change. -->

View File

@ -20,34 +20,31 @@ on:
jobs:
build:
name: Build
runs-on: ubuntu-22.04
runs-on: ubuntu-latest
steps:
- uses: extractions/setup-just@v2
- uses: actions/checkout@v3
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: 3.1
- name: Lint
run: just lint
run: bundle install && bundle exec rake rubocop
- name: Build
run: gem build stripe.gemspec
- name: 'Upload Artifact'
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v3
with:
name: gems
path: '*.gem'
test:
name: Test (${{ matrix.ruby-version }})
# this version of jruby isn't available in the new latest (24.04) so we have to pin (or update jruby)
runs-on: ubuntu-22.04
runs-on: ubuntu-latest
strategy:
matrix:
ruby-version: [2.3, 2.4, 2.5, 2.6, 2.7, '3.0', 3.1, 3.2, 3.3, 3.4, jruby-9.4.0.0, truffleruby-head]
ruby-version: [2.3, 2.4, 2.5, 2.6, 2.7, '3.0', 3.1, 3.2, '3.3', jruby-9.4.0.0, truffleruby-head]
steps:
- uses: extractions/setup-just@v2
- uses: actions/checkout@v3
- name: Set up Ruby
uses: ruby/setup-ruby@v1
@ -55,9 +52,11 @@ jobs:
ruby-version: ${{ matrix.ruby-version }}
- uses: stripe/openapi/actions/stripe-mock@master
- name: test
run: just test typecheck
run: make ci-test
env:
GITHUB_TOKEN: ${{ secrets.github_token }}
COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }}
COVERALLS_SERVICE_NAME: github-action
publish:
name: Publish
@ -66,10 +65,10 @@ jobs:
startsWith(github.ref, 'refs/tags/v') &&
endsWith(github.actor, '-stripe')
needs: [build, test]
runs-on: ubuntu-22.04
runs-on: ubuntu-latest
steps:
- name: Download all workflow run artifacts
uses: actions/download-artifact@v4
uses: actions/download-artifact@v3
with:
name: gems
path: gems

View File

@ -1,21 +0,0 @@
name: rules
on:
workflow_dispatch: {}
pull_request:
types:
- auto_merge_enabled
jobs:
require_merge_commit_on_merge_script_pr:
name: Merge script PRs must create merge commits
if: ${{ contains(github.head_ref, '/merge-') }}
runs-on: ubuntu-latest
steps:
- run: |
if ${{ github.event.pull_request.auto_merge.merge_method != 'merge' }}; then
echo "Auto-merge method must be 'merge' instead of '${{github.event.pull_request.auto_merge.merge_method}}'"
exit 1
fi

1
.gitignore vendored
View File

@ -6,4 +6,3 @@ tags
/.bundle/
coverage/
.idea/
.ruby-version

View File

@ -16,20 +16,9 @@ Layout/FirstHashElementIndentation:
Layout/LineLength:
Exclude:
- "lib/stripe/object_types.rb"
- "lib/stripe/stripe_client.rb"
- "lib/stripe/resources/**/*.rb"
- "lib/stripe/services/**/*.rb"
- "test/**/*.rb"
Lint/MissingSuper:
Exclude:
- "lib/stripe/resources/**/*.rb"
- "lib/stripe/services/**/*.rb"
- "test/stripe/request_params_test.rb"
Metrics/AbcSize:
Enabled: false
Metrics/BlockLength:
Max: 40
Exclude:
@ -40,37 +29,11 @@ Metrics/BlockLength:
Metrics/ClassLength:
Enabled: false
# There are several methods with many branches in api_requestor due to
# request logic.
Metrics/CyclomaticComplexity:
Exclude:
- "lib/stripe/api_requestor.rb"
- "lib/stripe/util.rb"
Metrics/PerceivedComplexity:
Exclude:
- "lib/stripe/api_requestor.rb"
- "lib/stripe/stripe_object.rb"
- "lib/stripe/util.rb"
Metrics/MethodLength:
# There's ~2 long methods in `APIRequestor` and one in `NestedResource`. If
# There's ~2 long methods in `StripeClient` and one in `NestedResource`. If
# we want to truncate those a little, we could move this to be closer to ~30
# (but the default of 10 is probably too short).
Max: 55
Exclude:
- "lib/stripe/services/v1_services.rb"
- "lib/stripe/event_types.rb"
AllowedMethods:
- initialize
# TODO(xavdid): remove this once the first `basil` release is out
Naming/MethodName:
# these endpoints are removed soon so we pulled their overrides, meaning their names are wrong
# that won't make it out to users, but it's breaking linting/formatting in the meantime
Exclude:
- "lib/stripe/services/invoice_service.rb"
- "lib/stripe/resources/invoice.rb"
Metrics/ModuleLength:
Enabled: false
@ -78,26 +41,6 @@ Metrics/ModuleLength:
Metrics/ParameterLists:
# There's 2 methods in `StripeClient` that have long parameter lists.
Max: 8
# Optional parameters should be consistent across libraries, we need not be
# concerned about this. Was introduced with adding `base_address`
Exclude:
- "lib/stripe/api_operations/request.rb"
- "lib/stripe/stripe_object.rb"
- "lib/stripe/stripe_client.rb"
- "lib/stripe/resources/**/*.rb"
- "lib/stripe/services/**/*.rb"
Naming/MethodParameterName:
# We have many parameters that are less than 3 characters for tax codes
Exclude:
- "lib/stripe/resources/**/*.rb"
- "lib/stripe/services/**/*.rb"
Naming/VariableNumber:
# We use a variety of variable number syntaxes
Exclude:
- "lib/stripe/resources/**/*.rb"
- "lib/stripe/services/**/*.rb"
Style/AccessModifierDeclarations:
EnforcedStyle: inline
@ -201,9 +144,6 @@ Lint/UnexpectedBlockArity: # new in 1.5
Enabled: true
Lint/UnmodifiedReduceAccumulator: # new in 1.1
Enabled: true
Lint/UselessAssignment:
Exclude:
- "test/stripe/generated_examples_test.rb"
Lint/UselessRescue: # new in 1.43
Enabled: true
Lint/UselessRuby2Keywords: # new in 1.23
@ -326,73 +266,3 @@ Style/SwapValues: # new in 1.1
Enabled: true
Style/YAMLFileRead: # new in 1.53
Enabled: true
Gemspec/AddRuntimeDependency: # new in 1.65
Enabled: true
Lint/ArrayLiteralInRegexp: # new in 1.71
Enabled: true
Lint/ConstantReassignment: # new in 1.70
Enabled: true
Lint/CopDirectiveSyntax: # new in 1.72
Enabled: true
Lint/DuplicateSetElement: # new in 1.67
Enabled: true
Lint/HashNewWithKeywordArgumentsAsDefault: # new in 1.69
Enabled: true
Lint/ItWithoutArgumentsInBlock: # new in 1.59
Enabled: true
Lint/LiteralAssignmentInCondition: # new in 1.58
Enabled: true
Lint/NumericOperationWithConstantResult: # new in 1.69
Enabled: true
Lint/RedundantTypeConversion: # new in 1.72
Enabled: true
Lint/SharedMutableDefault: # new in 1.70
Enabled: true
Lint/SuppressedExceptionInNumberConversion: # new in 1.72
Enabled: true
Lint/UnescapedBracketInRegexp: # new in 1.68
Enabled: true
Lint/UselessConstantScoping: # new in 1.72
Enabled: true
Lint/UselessDefined: # new in 1.69
Enabled: true
Lint/UselessNumericOperation: # new in 1.66
Enabled: true
Style/AmbiguousEndlessMethodDefinition: # new in 1.68
Enabled: true
Style/BitwisePredicate: # new in 1.68
Enabled: true
Style/CombinableDefined: # new in 1.68
Enabled: true
Style/ComparableBetween: # new in 1.74
Enabled: true
Style/DigChain: # new in 1.69
Enabled: true
Style/FileNull: # new in 1.69
Enabled: true
Style/FileTouch: # new in 1.69
Enabled: true
Style/HashFetchChain: # new in 1.75
Enabled: true
Style/HashSlice: # new in 1.71
Enabled: true
Style/ItAssignment: # new in 1.70
Enabled: true
Style/ItBlockParameter: # new in 1.75
Enabled: true
Style/KeywordArgumentsMerging: # new in 1.68
Enabled: true
Style/MapIntoArray: # new in 1.63
Enabled: true
Style/RedundantFormat: # new in 1.72
Enabled: true
Style/RedundantInterpolationUnfreeze: # new in 1.66
Enabled: true
Style/SafeNavigationChainLength: # new in 1.68
Enabled: true
Style/SendWithLiteralMethodName: # new in 1.64
Enabled: true
Style/SuperArguments: # new in 1.64
Enabled: true
Style/SuperWithArgsParentheses: # new in 1.58
Enabled: true

View File

@ -1,6 +1,6 @@
# This configuration was generated by
# `rubocop --auto-gen-config`
# on 2023-11-28 01:02:03 UTC using RuboCop version 1.57.2.
# on 2023-11-29 18:39:02 UTC using RuboCop version 1.57.2.
# The point is for the user to remove these configuration records
# one by one as the offenses are removed from the code base.
# Note that changes in the inspected code, or installation of new
@ -9,17 +9,17 @@
# Offense count: 2
Lint/HashCompareByIdentity:
Exclude:
- 'lib/stripe/api_requestor.rb'
- 'lib/stripe/stripe_client.rb'
# Offense count: 26
# Offense count: 27
# Configuration parameters: AllowedMethods, AllowedPatterns, CountRepeatedAttributes.
Metrics/AbcSize:
Max: 50
Max: 55
# Offense count: 9
# Offense count: 10
# Configuration parameters: CountComments, CountAsOne.
Metrics/ClassLength:
Max: 592
Max: 618
# Offense count: 12
# Configuration parameters: AllowedMethods, AllowedPatterns.
@ -27,14 +27,9 @@ Metrics/CyclomaticComplexity:
Max: 12
# Offense count: 9
# Configuration parameters: CountKeywordArgs, MaxOptionalParameters.
Metrics/ParameterLists:
Max: 7
# Offense count: 8
# Configuration parameters: AllowedMethods, AllowedPatterns.
Metrics/PerceivedComplexity:
Max: 12
Max: 13
# Offense count: 1
# This cop supports unsafe autocorrection (--autocorrect-all).
@ -47,9 +42,9 @@ Style/CaseLikeIf:
# This cop supports unsafe autocorrection (--autocorrect-all).
Style/CombinableLoops:
Exclude:
- 'lib/stripe/api_requestor.rb'
- 'lib/stripe/stripe_client.rb'
# Offense count: 39
# Offense count: 44
# Configuration parameters: AllowedConstants.
Style/Documentation:
Enabled: false
@ -59,7 +54,7 @@ Style/Documentation:
# Configuration parameters: AllowSplatArgument.
Style/HashConversion:
Exclude:
- 'lib/stripe/api_requestor.rb'
- 'lib/stripe/stripe_client.rb'
# Offense count: 3
# This cop supports unsafe autocorrection (--autocorrect-all).
@ -81,7 +76,7 @@ Style/StringConcatenation:
- 'lib/stripe/oauth.rb'
- 'lib/stripe/resources/bank_account.rb'
- 'lib/stripe/resources/source.rb'
- 'lib/stripe/api_requestor.rb'
- 'lib/stripe/stripe_client.rb'
- 'test/stripe/api_resource_test.rb'
- 'test/stripe/stripe_client_test.rb'
- 'test/stripe/webhook_test.rb'

View File

@ -1,9 +1,7 @@
{
"recommendations": [
"EditorConfig.editorconfig", // default
"castwide.solargraph", // intellisense
"sorbet.sorbet-vscode-extension", // typechecking, where applicable
"LoranKloeze.ruby-rubocop-revived", // linting
"SarahRidge.vscode-ruby-syntax" // Semantic syntax highlighting
"rebornix.ruby",
"misogi.ruby-rubocop",
"EditorConfig.editorconfig"
]
}

View File

@ -1,7 +1,4 @@
{
// Show the repo name in the top window bar.
"window.title": "${rootName}${separator}${activeEditorMedium}",
"editor.formatOnSave": true,
"files.trimTrailingWhitespace": true,

File diff suppressed because it is too large Load Diff

View File

@ -1,25 +0,0 @@
# Contributing
We welcome bug reports, feature requests, and code contributions in a pull request.
For most pull requests, we request that you identify or create an associated issue that has the necessary context. We use these issues to reach agreement on an approach and save the PR author from having to redo work. Fixing typos or documentation issues likely do not need an issue; for any issue that introduces substantial code changes, changes the public interface, or if you aren't sure, please find or [create an issue](https://www.github.com/stripe/stripe-ruby/issues/new/choose).
## Contributor License Agreement
All contributors must sign the Contributor License Agreement (CLA) before we can accept their contribution. If you have not yet signed the agreement, you will be given an option to do so when you open a pull request. You can then sign by clicking on the badge in the comment from @CLAassistant.
## Generated code
This project has a combination of manually maintained code and code generated from our private code generator. If your contribution involves changes to generated code, please call this out in the issue or pull request as we will likely need to make a change to our code generator before accepting the contribution.
To identify files with purely generated code, look for the comment `File generated from our OpenAPI spec.` at the start of the file. Generated blocks of code within hand-written files will be between comments that say `The beginning of the section generated from our OpenAPI spec` and `The end of the section generated from our OpenAPI spec`.
## Compatibility with supported language and runtime versions
This project supports [many different langauge and runtime versions](README.md#requirements) and we are unable to accept any contribution that does not work on _all_ supported versions. If, after discussing the approach in the associated issue, your change must use an API / feature that isn't available in all supported versions, please call this out explicitly in the issue or pull request so we can help figure out the best way forward.
## Set up your dev environment
Please refer to this project's [README.md](README.md#development) for instructions on how to set up your development environment.

View File

@ -5,6 +5,7 @@ source "https://rubygems.org"
gemspec
group :development do
gem "coveralls_reborn", "~> 0.25.0" if RUBY_VERSION >= "3.1"
gem "mocha", "~> 1.16.0"
gem "rack", ">= 2.0.6"
gem "rake"
@ -24,7 +25,7 @@ group :development do
# up-to-date, but it's not the end of the world if it's not.
#
# The latest version of rubocop is only compatible with Ruby 2.7+
gem "rubocop", "1.75.2" if RUBY_VERSION >= "2.7"
gem "rubocop", "1.57.2" if RUBY_VERSION >= "2.7"
gem "sorbet"
gem "tapioca"
@ -34,8 +35,4 @@ group :development do
gem "pry"
gem "pry-byebug"
end
platforms :jruby do
gem "rbi", "0.2.4" # jruby does not support rbs, a new dependency in 0.3.0
end
end

View File

@ -1,5 +1,3 @@
# NOTE: this file is deprecated and slated for deletion; prefer using the equivalent `just` commands.
.PHONY: update-version codegen-format test ci-test
update-version:
@echo "$(VERSION)" > VERSION

View File

@ -1 +1 @@
v1773
v1055

View File

@ -2,6 +2,7 @@
[![Gem Version](https://badge.fury.io/rb/stripe.svg)](https://badge.fury.io/rb/stripe)
[![Build Status](https://github.com/stripe/stripe-ruby/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/stripe/stripe-ruby/actions?query=branch%3Amaster)
[![Coverage Status](https://coveralls.io/repos/github/stripe/stripe-ruby/badge.svg?branch=master)](https://coveralls.io/github/stripe/stripe-ruby?branch=master)
The Stripe Ruby library provides convenient access to the Stripe API from
applications written in the Ruby language. It includes a pre-defined set of
@ -20,6 +21,8 @@ The library also provides other features. For example:
See the [Ruby API docs](https://stripe.com/docs/api?lang=ruby).
See [video demonstrations][youtube-playlist] covering how to use the library.
## Installation
You don't need this source code unless you want to modify the gem. If you just
@ -127,12 +130,6 @@ Keep in mind that there are different method signatures depending on the action:
`retrieve(id, opts)`. In addition, it will accept a Hash for the `id` param but will extract the
`id` key out and use the others as options.
### StripeClient vs legacy pattern
We introduced the `StripeClient` class in v13 of the Ruby SDK. The legacy pattern used prior to that version is still available to use but will be marked as deprecated soon. Review the [migration guide to use StripeClient](https://github.com/stripe/stripe-ruby/wiki/Migration-guide-for-v13) to move from the legacy pattern.
Once the legacy pattern is deprecated, new API endpoints will only be accessible in the StripeClient. While there are no current plans to remove the legacy pattern for existing API endpoints, this may change in the future.
### Accessing resource properties
Both indexer and accessors can be used to retrieve values of resource properties.
@ -162,9 +159,6 @@ print(customer.last_response.http_status) # to retrieve status code
print(customer.last_response.http_headers) # to retrieve headers
```
If you are accessing a response field with custom hashes provided by you, such as `Customer.metadata`,
please access your fields with the `[]` accessor.
### Configuring a proxy
A proxy can be configured with `Stripe.proxy`:
@ -324,54 +318,22 @@ You can disable this behavior if you prefer:
Stripe.enable_telemetry = false
```
### Types
### Beta SDKs
In [v14.0.0](https://github.com/stripe/stripe-python/releases/tag/v7.1.0) and newer, the library provides RBI
static type annotations. See [the wiki](https://github.com/stripe/stripe-ruby/wiki/Static-Type-Annotations)
for an detailed guide.
Please note that these types are available only for static analysis and we only support RBIs at the moment.
Please [report an issue](https://github.com/stripe/stripe-ruby/issues/new/choose)
if you find discrepancies or have issues using types.
The RBIs can be found in the `rbi/stripe/` directory, and to decrease `Tapioca` loading time we pack the gem with the
combined RBI at `rbi/stripe.rbi`.
#### Types and the Versioning Policy
We release type changes in minor releases. While stripe-ruby follows semantic versioning, our semantic
versions describe the runtime behavior of the library alone. Our type annotations are not reflected in the
semantic version. That is, upgrading to a new minor version of `stripe-ruby` might result in your type checker
producing a type error that it didn't before. You can use `~> x.x` or `x.x.x` constrain the version
of `stripe-ruby` in your Gemfile to a certain version or range of `stripe-ruby`.
#### Types and API Versions
The types describe the [Stripe API version](https://stripe.com/docs/api/versioning)
that was the latest at the time of release. This is the version that your library sends
by default. If you are overriding `Stripe.api_version` / `stripe_version` on the StripeClient,
or using a webhook endpoint tied to an older version, be aware that the data
you see at runtime may not match the types.
### Public Preview SDKs
Stripe has features in the [public preview phase](https://docs.stripe.com/release-phases) that can be accessed via versions of this package that have the `-beta.X` suffix like `11.2.0-beta.2`.
We would love for you to try these as we incrementally release new features and improve them based on your feedback.
To install, choose the version that includes support for the preview feature you are interested in by reviewing the [releases page](https://github.com/stripe/stripe-ruby/releases/) and use it in the `gem install` command:
Stripe has features in the beta phase that can be accessed via the beta version of this package.
We would love for you to try these and share feedback with us before these features reach the stable phase.
To install a beta version use `gem install` with the exact version you'd like to use:
```sh
gem install stripe -v <replace-with-the-version-of-your-choice>
gem install stripe -v 7.1.0.pre.beta.2
```
You can find the latest version to use in this command from the [releases page](https://github.com/stripe/stripe-ruby/releases/)
> **Note**
> There can be breaking changes between two versions of the public preview SDKs without a bump in the major version. Therefore we recommend pinning the package version to a specific version in your Gemfile. This way you can install the same version each time without breaking changes unless you are intentionally looking for the latest version of the public preview SDK.
> There can be breaking changes between beta versions. Therefore we recommend pinning the package version to a specific beta version in your Gemfile. This way you can install the same version each time without breaking changes unless you are intentionally looking for the latest beta version.
We highly recommend keeping an eye on when the beta feature you are interested in goes from beta to stable so that you can move from using a beta version of the SDK to the stable version.
Some preview features require a name and version to be set in the `Stripe-Version` header like `feature_beta=v3`. If your preview feature has this requirement, use the `Stripe.add_beta_version` function (available only in the public preview SDKs):
If your beta feature requires a `Stripe-Version` header to be sent, set the `Stripe.api_version` field using `Stripe.add_beta_version`:
```python
Stripe.add_beta_version("feature_beta", "v3")
@ -379,20 +341,13 @@ Stripe.add_beta_version("feature_beta", "v3")
### Custom requests
If you:
- would like to send a request to an undocumented API (for example you are in a private beta)
- prefer to bypass the method definitions in the library and specify your request details directly,
- used the method `Stripe::APIResource.request(...)` to specify your own requests, which will soon be broken
you can now use the `raw_request` method on `StripeClient`.
If you would like to send a request to an undocumented API (for example you are in a private beta), or if you prefer to bypass the method definitions in the library and specify your request details directly, you can use the `raw_request` method on `Stripe`.
```ruby
client = Stripe::StripeClient.new(...)
resp = client.raw_request(:post, "/v1/beta_endpoint", params: {param: 123}, opts: {stripe_version: "2022-11-15; feature_beta=v3"})
resp = Stripe.raw_request(:post, "/v1/beta_endpoint", {param: 123}, {stripe_version: "2022-11-15; feature_beta=v3"})
# (Optional) resp is a StripeResponse. You can use `Stripe.deserialize` to get a StripeObject.
deserialized_resp = client.deserialize(resp.http_body)
deserialized_resp = Stripe.deserialize(resp.http_body)
```
## Support
@ -401,22 +356,19 @@ New features and bug fixes are released on the latest major version of the Strip
## Development
[Contribution guidelines for this project](CONTRIBUTING.md)
The test suite depends on [stripe-mock], so make sure to fetch and run it from a background terminal ([stripe-mock's README][stripe-mock] also contains instructions for installing via Homebrew and other methods):
The test suite depends on [stripe-mock], so make sure to fetch and run it from a
background terminal ([stripe-mock's README][stripe-mock] also contains
instructions for installing via Homebrew and other methods):
```sh
go install github.com/stripe/stripe-mock@latest
go get -u github.com/stripe/stripe-mock
stripe-mock
```
We use [just](https://github.com/casey/just) for common development tasks. You can install it or run the underlying commands directly (by copying them from the `justfile`). Common tasks include:
Run all tests:
```sh
just test
# or: bundle exec rake test
bundle exec rake test
```
Run a single test suite:
@ -434,15 +386,13 @@ bundle exec ruby -Ilib/ test/stripe/util_test.rb -n /should.convert.names.to.sym
Run the linter:
```sh
just lint
# or: bundle exec rubocop
bundle exec rake rubocop
```
Update bundled CA certificates from the [Mozilla cURL release][curl]:
```sh
just update-certs
# or: bundle exec rake update_certs
bundle exec rake update_certs
```
Update the bundled [stripe-mock] by editing the version number found in
@ -454,6 +404,7 @@ Update the bundled [stripe-mock] by editing the version number found in
[idempotency-keys]: https://stripe.com/docs/api/idempotent_requests?lang=ruby
[stripe-mock]: https://github.com/stripe/stripe-mock
[versioning]: https://stripe.com/docs/api/versioning?lang=ruby
[youtube-playlist]: https://www.youtube.com/playlist?list=PLy1nL-pvL2M50RmP6ie-gdcSnfOuQCRYk
<!--
# vim: set tw=79:

View File

@ -8,6 +8,11 @@ Rake::TestTask.new do |t|
t.pattern = "./test/**/*_test.rb"
end
if RUBY_VERSION >= "2.7.0"
require "rubocop/rake_task"
RuboCop::RakeTask.new
end
desc "Update bundled certs"
task :update_certs do
require "net/http"

View File

@ -1 +1 @@
15.2.1
11.7.0-beta.1

View File

@ -1,16 +0,0 @@
## Running an example
From the examples folder, run:
`RUBYLIB=../lib ruby your_example.rb`
e.g.
`RUBYLIB=../lib ruby thinevent_webhook_handler.rb`
## Adding a new example
1. Clone new_example.rb
2. Implement your example
3. Fill out the file comment. Include a description and key steps that are being demonstrated.
4. Run it (as per above)
5. 👍

View File

@ -1,36 +0,0 @@
# frozen_string_literal: true
# example_template.py - This is a template for defining new examples. It is not intended to be used directly.
#
# <describe what this example does>
#
# In this example, we:
# - <key step 1>
# - <key step 2
# - ...
#
# <describe assumptions about the user's stripe account, environment, or configuration;
# or things to watch out for when running>
require "stripe"
require "date"
class ExampleTemplate
attr_accessor :api_key
def initialize(api_key)
@api_key = api_key
end
def do_something_great
puts "Hello World"
# client = Stripe::StripeClient.new(api_key)
# client.v1
end
end
# Send meter events
api_key = "{{API_KEY}}"
example = ExampleTemplate.new(api_key)
example.do_something_great

View File

@ -1,57 +0,0 @@
# frozen_string_literal: true
# meter_event_stream.py - use the high-throughput meter event stream to report create billing meter events.
#
# In this example, we:
# - create a meter event session and store the session's authentication token
# - define an event with a payload
# - use the meter_event_stream service accessor in StripeClient to create an event stream that reports this event
#
# This example expects a billing meter with an event_name of 'alpaca_ai_tokens'. If you have
# a different meter event name, you can change it before running this example.
require "stripe"
require "date"
class MeterEventManager
attr_accessor :api_key, :meter_event_session
def initialize(api_key)
@api_key = api_key
@meter_event_session = nil
end
def refresh_meter_event_session
return unless @meter_event_session.nil? || DateTime.parse(@meter_event_session.expires_at) <= DateTime.now
# Create a new meter event session in case the existing session expired
client = Stripe::StripeClient.new(api_key)
@meter_event_session = client.v2.billing.meter_event_session.create
end
def send_meter_event(meter_event)
# Refresh the meter event session if necessary
refresh_meter_event_session
# Create a meter event with the current session's authentication token
client = Stripe::StripeClient.new(meter_event_session.authentication_token)
client.v2.billing.meter_event_stream.create(
events: [meter_event]
)
end
end
# Send meter events
api_key = "{{API_KEY}}"
customer_id = "{{CUSTOMER_ID}}"
manager = MeterEventManager.new(api_key)
manager.send_meter_event(
{
event_name: "alpaca_ai_tokens",
payload: {
"stripe_customer_id" => customer_id,
"value" => "25",
},
}
)

View File

@ -1,39 +0,0 @@
# frozen_string_literal: true
# typed: false
# thinevent_webhook_handler.rb - receive and process thin events like the
# v1.billing.meter.error_report_triggered event.
#
# In this example, we:
# - create a StripeClient called client
# - use client.parse_thin_event to parse the received thin event webhook body
# - call client.v2.core.events.retrieve to retrieve the full event object
# - if it is a V1BillingMeterErrorReportTriggeredEvent event type, call
# event.fetchRelatedObject to retrieve the Billing Meter object associated
# with the event.
require "stripe"
require "sinatra"
api_key = ENV.fetch("STRIPE_API_KEY", nil)
# Retrieve the webhook secret from the environment variable
webhook_secret = ENV.fetch("WEBHOOK_SECRET", nil)
client = Stripe::StripeClient.new(api_key)
post "/webhook" do
webhook_body = request.body.read
sig_header = request.env["HTTP_STRIPE_SIGNATURE"]
thin_event = client.parse_thin_event(webhook_body, sig_header, webhook_secret)
# Fetch the event data to understand the failure
event = client.v2.core.events.retrieve(thin_event.id)
if event.instance_of? Stripe::V1BillingMeterErrorReportTriggeredEvent
meter = event.fetch_related_object
meter_id = meter.id
puts "Success!", meter_id
end
# Record the failures and alert your team
status 200
end

View File

@ -1,43 +0,0 @@
set quiet
import? '../sdk-codegen/utils.just'
_default:
just --list --unsorted
install *args:
bundle install {{ if is_dependency() == "true" {"--quiet"} else {""} }} {{ args }}
# ⭐ run all unit tests
test: install
bundle exec rake test
# check linting / formatting status of files
format-check *args: install
bundle exec rubocop {{ args }}
alias lint-check := format-check
# ⭐ check style & formatting for all files, fixing what we can
lint: (format-check "--autocorrect")
# NOTE: "-o /dev/null" is vital - rubocop has super noisy output and codegen will crash when formatting ruby if everything gets printed
# so, we send all its output to the void
# copy of `lint` with less output
format: (format-check "-o /dev/null --autocorrect")
update-certs: install
bundle exec rake update_certs
# run sorbet to check type definitions
typecheck: install
{{ if semver_matches(`ruby -e "puts RUBY_VERSION"`, ">=2.7") == "true" { \
"bundle exec srb tc" \
} else { \
"echo \"Ruby version < 2.7, skipping srb tc\"" \
} }}
# called by tooling
[private]
update-version version:
echo "{{ version }}" > VERSION
perl -pi -e 's|VERSION = "[.\-\w\d]+"|VERSION = "{{ version }}"|' lib/stripe/version.rb

View File

@ -13,6 +13,7 @@ require "set"
require "socket"
require "uri"
require "forwardable"
require "base64"
# Version
require "stripe/api_version"
@ -31,19 +32,13 @@ require "stripe/api_operations/search"
# API resource support classes
require "stripe/errors"
require "stripe/object_types"
require "stripe/event_types"
require "stripe/request_options"
require "stripe/request_params"
require "stripe/util"
require "stripe/connection_manager"
require "stripe/multipart_encoder"
require "stripe/api_requestor"
require "stripe/stripe_service"
require "stripe/stripe_client"
require "stripe/stripe_object"
require "stripe/stripe_response"
require "stripe/list_object"
require "stripe/v2_list_object"
require "stripe/search_result_object"
require "stripe/error_object"
require "stripe/api_resource"
@ -51,15 +46,13 @@ require "stripe/api_resource_test_helpers"
require "stripe/singleton_api_resource"
require "stripe/webhook"
require "stripe/stripe_configuration"
require "stripe/thin_event"
require "stripe/request_signing_authenticator"
# Named API resources
require "stripe/resources"
require "stripe/services"
# OAuth
require "stripe/oauth"
require "stripe/services/oauth_service"
module Stripe
DEFAULT_CA_BUNDLE_PATH = __dir__ + "/data/ca-certificates.crt"
@ -69,34 +62,6 @@ module Stripe
LEVEL_ERROR = Logger::ERROR
LEVEL_INFO = Logger::INFO
# API base constants
DEFAULT_API_BASE = "https://api.stripe.com"
DEFAULT_CONNECT_BASE = "https://connect.stripe.com"
DEFAULT_UPLOAD_BASE = "https://files.stripe.com"
DEFAULT_METER_EVENTS_BASE = "https://meter-events.stripe.com"
# Options that can be configured globally by users
USER_CONFIGURABLE_GLOBAL_OPTIONS = Set.new(%i[
api_key
api_version
stripe_account
api_base
uploads_base
connect_base
meter_events_base
open_timeout
read_timeout
write_timeout
proxy
verify_ssl_certs
ca_bundle_path
log_level
logger
max_network_retries
enable_telemetry
client_id
])
@app_info = nil
@config = Stripe::StripeConfiguration.setup
@ -108,12 +73,12 @@ module Stripe
# User configurable options
def_delegators :@config, :api_key, :api_key=
def_delegators :@config, :authenticator, :authenticator=
def_delegators :@config, :api_version, :api_version=
def_delegators :@config, :stripe_account, :stripe_account=
def_delegators :@config, :api_base, :api_base=
def_delegators :@config, :uploads_base, :uploads_base=
def_delegators :@config, :connect_base, :connect_base=
def_delegators :@config, :meter_events_base, :meter_events_base=
def_delegators :@config, :open_timeout, :open_timeout=
def_delegators :@config, :read_timeout, :read_timeout=
def_delegators :@config, :write_timeout, :write_timeout=
@ -155,6 +120,57 @@ module Stripe
version: version,
}
end
def self.add_beta_version(beta_name, version)
if api_version.include?("; #{beta_name}=")
raise "Stripe version header #{api_version} already contains entry for beta #{beta_name}"
end
self.api_version = "#{api_version}; #{beta_name}=#{version}"
end
class Preview
def self._get_default_opts(opts)
{ api_mode: :preview }.merge(opts)
end
def self.get(url, opts = {})
Stripe.raw_request(:get, url, {}, _get_default_opts(opts))
end
def self.post(url, params = {}, opts = {})
Stripe.raw_request(:post, url, params, _get_default_opts(opts))
end
def self.delete(url, opts = {})
Stripe.raw_request(:delete, url, {}, _get_default_opts(opts))
end
end
class RawRequest
include Stripe::APIOperations::Request
def initialize
@opts = {}
end
def execute(method, url, params = {}, opts = {}, usage = [])
resp, = execute_resource_request(method, url, params, opts, usage)
resp
end
end
# Sends a request to Stripe REST API
def self.raw_request(method, url, params = {}, opts = {})
req = RawRequest.new
req.execute(method, url, params, opts, ["raw_request"])
end
def self.deserialize(data)
data = JSON.parse(data) if data.is_a?(String)
Util.convert_to_stripe_object(data, {})
end
end
Stripe.log_level = ENV["STRIPE_LOG"] unless ENV["STRIPE_LOG"].nil?

View File

@ -35,6 +35,7 @@ module Stripe
end
end
# rubocop:disable Metrics/MethodLength
private def define_operation(
resource,
operation,
@ -45,57 +46,76 @@ module Stripe
when :create
define_singleton_method(:"create_#{resource}") \
do |id, params = {}, opts = {}|
request_stripe_object(
method: :post,
path: send(resource_url_method, id),
params: params,
opts: opts
)
end
request_stripe_object(
method: :post,
path: send(resource_url_method, id),
params: params,
opts: opts
)
end
when :retrieve
# TODO: (Major) Split params_or_opts to params and opts and get rid of the complicated way to add params
define_singleton_method(:"retrieve_#{resource}") \
do |id, nested_id, params = {}, opts = {}|
request_stripe_object(
method: :get,
path: send(resource_url_method, id, nested_id),
params: params,
opts: opts
)
do |id, nested_id, params_or_opts = {}, definitely_opts = nil|
opts = nil
params = nil
if definitely_opts.nil?
unrecognized_key = params_or_opts.keys.find { |k| !Util::OPTS_USER_SPECIFIED.include?(k) }
if unrecognized_key
raise ArgumentError,
"Unrecognized request option: #{unrecognized_key}. Did you mean to specify this as " \
"retrieve params? " \
"If so, you must explicitly pass an opts hash as a fourth argument. " \
"For example: .retrieve(#{id}, #{nested_id}, {#{unrecognized_key}: 'foo'}, {})"
end
opts = params_or_opts
else
opts = definitely_opts
params = params_or_opts
end
request_stripe_object(
method: :get,
path: send(resource_url_method, id, nested_id),
params: params,
opts: opts
)
end
when :update
define_singleton_method(:"update_#{resource}") \
do |id, nested_id, params = {}, opts = {}|
request_stripe_object(
method: :post,
path: send(resource_url_method, id, nested_id),
params: params,
opts: opts
)
end
request_stripe_object(
method: :post,
path: send(resource_url_method, id, nested_id),
params: params,
opts: opts
)
end
when :delete
define_singleton_method(:"delete_#{resource}") \
do |id, nested_id, params = {}, opts = {}|
request_stripe_object(
method: :delete,
path: send(resource_url_method, id, nested_id),
params: params,
opts: opts
)
end
request_stripe_object(
method: :delete,
path: send(resource_url_method, id, nested_id),
params: params,
opts: opts
)
end
when :list
define_singleton_method(:"list_#{resource_plural}") \
do |id, params = {}, opts = {}|
request_stripe_object(
method: :get,
path: send(resource_url_method, id),
params: params,
opts: opts
)
end
request_stripe_object(
method: :get,
path: send(resource_url_method, id),
params: params,
opts: opts
)
end
else
raise ArgumentError, "Unknown operation: #{operation.inspect}"
end
end
# rubocop:enable Metrics/MethodLength
end
end
end

View File

@ -4,21 +4,20 @@ module Stripe
module APIOperations
module Request
module ClassMethods
def execute_resource_request(method, url, base_address = :api,
def execute_resource_request(method, url,
params = {}, opts = {}, usage = [])
execute_resource_request_internal(
:execute_request, method, url, base_address, params, opts, usage
:execute_request, method, url, params, opts, usage
)
end
def execute_resource_request_stream(method, url, base_address = :api,
def execute_resource_request_stream(method, url,
params = {}, opts = {}, usage = [],
&read_body_chunk_block)
execute_resource_request_internal(
:execute_request_stream,
method,
url,
base_address,
params,
opts,
usage,
@ -26,30 +25,73 @@ module Stripe
)
end
private def request_stripe_object(method:, path:, base_address: :api, params: {}, opts: {}, usage: [])
execute_resource_request(method, path, base_address, params, opts, usage)
private def request_stripe_object(method:, path:, params:, opts: {}, usage: [])
resp, opts = execute_resource_request(method, path, params, opts, usage)
Util.convert_to_stripe_object_with_params(resp.data, params, opts, resp)
end
private def execute_resource_request_internal(client_request_method_sym,
method, url, base_address,
method, url,
params, opts, usage,
&read_body_chunk_block)
params = params.to_h if params.is_a?(Stripe::RequestParams)
params ||= {}
error_on_invalid_params(params)
warn_on_opts_in_params(params)
opts = Util.normalize_opts(opts)
req_opts = RequestOptions.extract_opts_from_hash(opts)
error_on_non_string_user_opts(opts)
APIRequestor.active_requestor.send(
opts[:client] ||= StripeClient.active_client
headers = opts.clone
api_key = headers.delete(:api_key)
api_base = headers.delete(:api_base)
client = headers.delete(:client)
api_mode = headers.delete(:api_mode)
# Assume all remaining opts must be headers
resp, opts[:api_key] = client.send(
client_request_method_sym,
method, url,
base_address,
params: params, opts: req_opts, usage: usage,
api_base: api_base, api_key: api_key,
headers: headers, params: params, usage: usage, api_mode: api_mode,
&read_body_chunk_block
)
# Hash#select returns an array before 1.9
opts_to_persist = {}
opts.each do |k, v|
opts_to_persist[k] = v if Util::OPTS_PERSISTABLE.include?(k)
end
[resp, opts_to_persist]
end
# TODO: (major)
# This method used to be called `request`, but it's such a short name
# that it eventually conflicted with the name of a field on an API
# resource (specifically, `Event#request`), so it was renamed to
# something more unique.
#
# The former name had been around for just about forever though, and
# although all internal uses have been renamed, I've left this alias in
# place for backwards compatibility. Consider removing it on the next
# major.
alias request execute_resource_request
private def error_on_non_string_user_opts(opts)
Util::OPTS_USER_SPECIFIED.each do |opt|
next unless opts.key?(opt)
val = opts[opt]
next if val.nil?
next if val.is_a?(String)
raise ArgumentError,
"request option '#{opt}' should be a string value " \
"(was a #{val.class})"
end
end
private def error_on_invalid_params(params)
@ -61,7 +103,7 @@ module Stripe
end
private def warn_on_opts_in_params(params)
RequestOptions::OPTS_USER_SPECIFIED.each do |opt|
Util::OPTS_USER_SPECIFIED.each do |opt|
warn("WARNING: '#{opt}' should be in opts instead of params.") if params.key?(opt)
end
end
@ -71,24 +113,28 @@ module Stripe
base.extend(ClassMethods)
end
protected def execute_resource_request(method, url, base_address = :api,
protected def execute_resource_request(method, url,
params = {}, opts = {}, usage = [])
opts = @opts.merge(Util.normalize_opts(opts))
self.class.execute_resource_request(method, url, base_address, params, opts, usage)
self.class.execute_resource_request(method, url, params, opts, usage)
end
protected def execute_resource_request_stream(method, url, base_address = :api,
params = {}, opts = {}, usage = [],
protected def execute_resource_request_stream(method, url,
params = {}, opts = {},
&read_body_chunk_block)
opts = @opts.merge(Util.normalize_opts(opts))
self.class.execute_resource_request_stream(
method, url, base_address, params, opts, usage, &read_body_chunk_block
method, url, params, opts, &read_body_chunk_block
)
end
private def request_stripe_object(method:, path:, params:, base_address: :api, opts: {}, usage: [])
execute_resource_request(method, path, base_address, params, opts, usage)
private def request_stripe_object(method:, path:, params:, opts: {}, usage: [])
resp, opts = execute_resource_request(method, path, params, opts, usage)
Util.convert_to_stripe_object_with_params(resp.data, params, opts, resp)
end
# See notes on `alias` above.
alias request execute_resource_request
end
end
end

View File

@ -65,11 +65,9 @@ module Stripe
# Please note that id gets removed here our call to #url above has already
# generated a uri for this object with an identifier baked in
values.delete(:id)
opts = Util.normalize_opts(opts)
APIRequestor.active_requestor.execute_request_initialize_from(:post, save_url, :api, self,
params: values,
opts: RequestOptions.extract_opts_from_hash(opts),
usage: ["save"])
resp, opts = execute_resource_request(:post, save_url, values, opts, ["save"])
initialize_from(resp.data, opts, resp)
end
extend Gem::Deprecate
deprecate :save, "the `update` class method (for examples " \

View File

@ -61,12 +61,8 @@ module Stripe
values = serialize_params(self).merge(params)
opts = Util.normalize_opts(opts)
APIRequestor.active_requestor.execute_request_initialize_from(:post, resource_url, :api, self,
params: values,
opts: RequestOptions.extract_opts_from_hash(opts),
usage: ["save"])
resp, opts = execute_resource_request(:post, resource_url, values, opts, ["save"])
initialize_from(resp.data, opts, resp)
end
extend Gem::Deprecate
deprecate :save, "the `update` class method (for examples " \

File diff suppressed because it is too large Load Diff

View File

@ -25,12 +25,6 @@ module Stripe
end
def self.resource_url
if name.include?("Stripe::V2")
raise NotImplementedError,
"V2 resources do not have a defined URL. Please use the StripeClient " \
"to make V2 requests"
end
if self == APIResource
raise NotImplementedError,
"APIResource is an abstract class. You should perform actions " \
@ -93,48 +87,33 @@ module Stripe
end
def refresh
if self.class.name.include?("Stripe::V2")
raise NotImplementedError,
"It is not possible to refresh v2 objects. Please retrieve the object using the StripeClient instead."
end
opts = RequestOptions.extract_opts_from_hash(@retrieve_opts || {})
@retrieve_opts = {} # Make sure to clear the retrieve options
@obj = @requestor.execute_request_initialize_from(:get, resource_url, :api, self, params: @retrieve_params,
opts: opts)
initialize_from(
@obj.last_response.data,
@obj.instance_variable_get(:@opts),
@obj.last_response,
api_mode: :v1,
requestor: @requestor
)
resp, opts = execute_resource_request(:get, resource_url,
@retrieve_params)
initialize_from(resp.data, opts, resp)
end
def self.retrieve(id, opts = {})
if name.include?("Stripe::V2")
raise NotImplementedError,
"It is not possible to retrieve v2 objects on the resource. Please use the StripeClient instead."
end
instance = new(id)
# Explicitly send options for the retrieve call, to preserve custom headers
# This is so we can pass custom headers from this static function
# to the instance variable method call
# The custom headers will be cleaned up with the rest of the RequestOptions
instance.instance_variable_set(:@retrieve_opts, Util.normalize_opts(opts))
opts = Util.normalize_opts(opts)
instance = new(id, opts)
instance.refresh
instance
end
def request_stripe_object(method:, path:, params:, base_address: :api, opts: {})
APIRequestor.active_requestor.execute_request_initialize_from(method, path, base_address, self,
params: params, opts: opts)
def request_stripe_object(method:, path:, params:, opts: {})
resp, opts = execute_resource_request(method, path, params, opts)
# If we're getting back this thing, update; otherwise, instantiate.
if Util.object_name_matches_class?(resp.data[:object], self.class)
initialize_from(resp.data, opts, resp)
else
Util.convert_to_stripe_object_with_params(resp.data, params, opts, resp)
end
end
protected def request_stream(method:, path:, params:, base_address: :api, opts: {},
protected def request_stream(method:, path:, params:, opts: {},
&read_body_chunk_block)
resp, = execute_resource_request_stream(
method, path, base_address, params, opts, &read_body_chunk_block
method, path, params, opts, &read_body_chunk_block
)
resp
end

View File

@ -3,6 +3,7 @@
module Stripe
module ApiVersion
CURRENT = "2025-05-28.basil"
CURRENT = "2024-04-10"
PREVIEW = "2024-04-11.preview-v2"
end
end

View File

@ -12,7 +12,7 @@ module Stripe
class ConnectionManager
# Timestamp (in seconds procured from the system's monotonic clock)
# indicating when the connection manager last made a request. This is used
# by `APIRequestor` to determine whether a connection manager should be
# by `StripeClient` to determine whether a connection manager should be
# garbage collected or not.
attr_reader :last_used
attr_reader :config
@ -36,7 +36,9 @@ module Stripe
# clears them from internal tracking.
def clear
@mutex.synchronize do
@active_connections.each_value(&:finish)
@active_connections.each do |_, connection|
connection.finish
end
@active_connections = {}
end
end

View File

@ -27,8 +27,14 @@ module Stripe
def construct_error_object
return nil if @json_body.nil? || !@json_body.key?(:error)
# ErrorObject is shared between v1 and v2, so use original object_classes to find
ErrorObject.construct_from(@json_body[:error], {}, nil, :v1)
ErrorObject.construct_from(@json_body[:error])
end
# Whether the error was the result of an idempotent replay, meaning that it
# originally occurred on a previous request and is being replayed back
# because the user sent the same idempotency key for this one.
def idempotent_replayed?
@idempotent_replayed
end
def to_s
@ -124,7 +130,7 @@ module Stripe
def construct_error_object
return nil if @json_body.nil?
OAuthErrorObject.construct_from(@json_body, {}, nil, :v1)
OAuthErrorObject.construct_from(@json_body)
end
end
@ -160,9 +166,4 @@ module Stripe
class UnsupportedResponseTypeError < OAuthError
end
end
# class definitions: The beginning of the section generated from our OpenAPI spec
class TemporarySessionExpiredError < StripeError
end
# class definitions: The end of the section generated from our OpenAPI spec
end

View File

@ -1,15 +0,0 @@
# frozen_string_literal: true
module Stripe
module EventTypes
def self.thin_event_names_to_classes
{
# The beginning of the section generated from our OpenAPI spec
V1BillingMeterErrorReportTriggeredEvent.lookup_type => V1BillingMeterErrorReportTriggeredEvent,
V1BillingMeterNoMeterFoundEvent.lookup_type => V1BillingMeterNoMeterFoundEvent,
V2CoreEventDestinationPingEvent.lookup_type => V2CoreEventDestinationPingEvent,
# The end of the section generated from our OpenAPI spec
}
end
end
end

View File

@ -1,23 +0,0 @@
# File generated from our OpenAPI spec
# frozen_string_literal: true
module Stripe
# Occurs when a Meter has invalid async usage events.
class V1BillingMeterErrorReportTriggeredEvent < Stripe::V2::Event
def self.lookup_type
"v1.billing.meter.error_report_triggered"
end
# There is additional data present for this event, accessible with the `data` property.
# See the Stripe API docs for more information.
# Retrieves the related object from the API. Make an API request on every call.
def fetch_related_object
_request(
method: :get,
path: related_object.url,
base_address: :api,
opts: { stripe_account: context }
)
end
end
end

View File

@ -1,13 +0,0 @@
# File generated from our OpenAPI spec
# frozen_string_literal: true
module Stripe
# Occurs when a Meter's id is missing or invalid in async usage events.
class V1BillingMeterNoMeterFoundEvent < Stripe::V2::Event
def self.lookup_type
"v1.billing.meter.no_meter_found"
end
# There is additional data present for this event, accessible with the `data` property.
# See the Stripe API docs for more information.
end
end

View File

@ -1,21 +0,0 @@
# File generated from our OpenAPI spec
# frozen_string_literal: true
module Stripe
# A ping event used to test the connection to an event destination.
class V2CoreEventDestinationPingEvent < Stripe::V2::Event
def self.lookup_type
"v2.core.event_destination.ping"
end
# Retrieves the related object from the API. Make an API request on every call.
def fetch_related_object
_request(
method: :get,
path: related_object.url,
base_address: :api,
opts: { stripe_account: context }
)
end
end
end

View File

@ -21,7 +21,7 @@ module Stripe
# there isn't a next page in order to replicate the behavior of the API
# when it attempts to return a page beyond the last.
def self.empty_list(opts = {})
ListObject.construct_from({ data: [] }, opts, nil, :v1)
ListObject.construct_from({ data: [] }, opts)
end
def initialize(*args)
@ -96,7 +96,8 @@ module Stripe
def retrieve(id, opts = {})
id, retrieve_params = Util.normalize_id(id)
url = "#{resource_url}/#{CGI.escape(id)}"
execute_resource_request(:get, url, :api, retrieve_params, opts)
resp, opts = execute_resource_request(:get, url, retrieve_params, opts)
Util.convert_to_stripe_object(resp.data, opts)
end
# Fetches the next page in the resource list (if there is one).

View File

@ -5,10 +5,12 @@ module Stripe
module OAuthOperations
extend APIOperations::Request::ClassMethods
def self.execute_resource_request(method, url, base_address, params, opts)
def self.execute_resource_request(method, url, params, opts)
opts = Util.normalize_opts(opts)
opts[:client] ||= opts[:client] || StripeClient.active_client
opts[:api_base] ||= opts[:client].config.connect_base
super
super(method, url, params, opts)
end
end
@ -27,14 +29,15 @@ module Stripe
end
def self.authorize_url(params = {}, opts = {})
base = opts[:connect_base] || APIRequestor.active_requestor.config.connect_base
client = opts[:client] || StripeClient.active_client
base = opts[:connect_base] || client.config.connect_base
path = "/oauth/authorize"
path = "/express" + path if opts[:express]
params[:client_id] = get_client_id(params)
params[:response_type] ||= "code"
query = Util.encode_parameters(params, :v1)
query = Util.encode_parameters(params)
"#{base}#{path}?#{query}"
end
@ -42,17 +45,21 @@ module Stripe
def self.token(params = {}, opts = {})
opts = Util.normalize_opts(opts)
opts[:api_key] = params[:client_secret] if params[:client_secret]
OAuthOperations.execute_resource_request(
:post, "/oauth/token", :connect, params, opts
resp, opts = OAuthOperations.execute_resource_request(
:post, "/oauth/token", params, opts
)
# This is just going to return a generic StripeObject, but that's okay
Util.convert_to_stripe_object(resp.data, opts)
end
def self.deauthorize(params = {}, opts = {})
opts = Util.normalize_opts(opts)
params[:client_id] = get_client_id(params)
OAuthOperations.execute_resource_request(
:post, "/oauth/deauthorize", :connect, params, opts
resp, opts = OAuthOperations.execute_resource_request(
:post, "/oauth/deauthorize", params, opts
)
# This is just going to return a generic StripeObject, but that's okay
Util.convert_to_stripe_object(resp.data, opts)
end
end
end

View File

@ -1,6 +1,7 @@
# frozen_string_literal: true
# rubocop:disable Metrics/MethodLength
# rubocop:disable Metrics/AbcSize
module Stripe
module ObjectTypes
@ -14,20 +15,15 @@ module Stripe
# object classes: The beginning of the section generated from our OpenAPI spec
Account.object_name => Account,
AccountLink.object_name => AccountLink,
AccountNotice.object_name => AccountNotice,
AccountSession.object_name => AccountSession,
ApplePayDomain.object_name => ApplePayDomain,
Application.object_name => Application,
ApplicationFee.object_name => ApplicationFee,
ApplicationFeeRefund.object_name => ApplicationFeeRefund,
Apps::Secret.object_name => Apps::Secret,
Balance.object_name => Balance,
BalanceTransaction.object_name => BalanceTransaction,
BankAccount.object_name => BankAccount,
Billing::Alert.object_name => Billing::Alert,
Billing::AlertTriggered.object_name => Billing::AlertTriggered,
Billing::CreditBalanceSummary.object_name => Billing::CreditBalanceSummary,
Billing::CreditBalanceTransaction.object_name => Billing::CreditBalanceTransaction,
Billing::CreditGrant.object_name => Billing::CreditGrant,
Billing::Meter.object_name => Billing::Meter,
Billing::MeterEvent.object_name => Billing::MeterEvent,
Billing::MeterEventAdjustment.object_name => Billing::MeterEventAdjustment,
@ -35,6 +31,9 @@ module Stripe
BillingPortal::Configuration.object_name => BillingPortal::Configuration,
BillingPortal::Session.object_name => BillingPortal::Session,
Capability.object_name => Capability,
Capital::FinancingOffer.object_name => Capital::FinancingOffer,
Capital::FinancingSummary.object_name => Capital::FinancingSummary,
Capital::FinancingTransaction.object_name => Capital::FinancingTransaction,
Card.object_name => Card,
CashBalance.object_name => CashBalance,
Charge.object_name => Charge,
@ -43,7 +42,6 @@ module Stripe
Climate::Product.object_name => Climate::Product,
Climate::Supplier.object_name => Climate::Supplier,
ConfirmationToken.object_name => ConfirmationToken,
ConnectCollectionTransfer.object_name => ConnectCollectionTransfer,
CountrySpec.object_name => CountrySpec,
Coupon.object_name => Coupon,
CreditNote.object_name => CreditNote,
@ -55,7 +53,6 @@ module Stripe
Discount.object_name => Discount,
Dispute.object_name => Dispute,
Entitlements::ActiveEntitlement.object_name => Entitlements::ActiveEntitlement,
Entitlements::ActiveEntitlementSummary.object_name => Entitlements::ActiveEntitlementSummary,
Entitlements::Feature.object_name => Entitlements::Feature,
EphemeralKey.object_name => EphemeralKey,
Event.object_name => Event,
@ -63,22 +60,26 @@ module Stripe
File.object_name => File,
FileLink.object_name => FileLink,
FinancialConnections::Account.object_name => FinancialConnections::Account,
FinancialConnections::AccountInferredBalance.object_name =>
FinancialConnections::AccountInferredBalance,
FinancialConnections::AccountOwner.object_name => FinancialConnections::AccountOwner,
FinancialConnections::AccountOwnership.object_name => FinancialConnections::AccountOwnership,
FinancialConnections::Session.object_name => FinancialConnections::Session,
FinancialConnections::Transaction.object_name => FinancialConnections::Transaction,
Forwarding::Request.object_name => Forwarding::Request,
FundingInstructions.object_name => FundingInstructions,
GiftCards::Card.object_name => GiftCards::Card,
GiftCards::Transaction.object_name => GiftCards::Transaction,
Identity::VerificationReport.object_name => Identity::VerificationReport,
Identity::VerificationSession.object_name => Identity::VerificationSession,
Invoice.object_name => Invoice,
InvoiceItem.object_name => InvoiceItem,
InvoiceLineItem.object_name => InvoiceLineItem,
InvoicePayment.object_name => InvoicePayment,
InvoiceRenderingTemplate.object_name => InvoiceRenderingTemplate,
Issuing::Authorization.object_name => Issuing::Authorization,
Issuing::Card.object_name => Issuing::Card,
Issuing::Cardholder.object_name => Issuing::Cardholder,
Issuing::CreditUnderwritingRecord.object_name => Issuing::CreditUnderwritingRecord,
Issuing::Dispute.object_name => Issuing::Dispute,
Issuing::PersonalizationDesign.object_name => Issuing::PersonalizationDesign,
Issuing::PhysicalBundle.object_name => Issuing::PhysicalBundle,
@ -87,6 +88,8 @@ module Stripe
LineItem.object_name => LineItem,
LoginLink.object_name => LoginLink,
Mandate.object_name => Mandate,
Margin.object_name => Margin,
Order.object_name => Order,
PaymentIntent.object_name => PaymentIntent,
PaymentLink.object_name => PaymentLink,
PaymentMethod.object_name => PaymentMethod,
@ -100,13 +103,15 @@ module Stripe
ProductFeature.object_name => ProductFeature,
PromotionCode.object_name => PromotionCode,
Quote.object_name => Quote,
QuotePhase.object_name => QuotePhase,
QuotePreviewInvoice.object_name => QuotePreviewInvoice,
QuotePreviewSubscriptionSchedule.object_name => QuotePreviewSubscriptionSchedule,
Radar::EarlyFraudWarning.object_name => Radar::EarlyFraudWarning,
Radar::ValueList.object_name => Radar::ValueList,
Radar::ValueListItem.object_name => Radar::ValueListItem,
Refund.object_name => Refund,
Reporting::ReportRun.object_name => Reporting::ReportRun,
Reporting::ReportType.object_name => Reporting::ReportType,
ReserveTransaction.object_name => ReserveTransaction,
Reversal.object_name => Reversal,
Review.object_name => Review,
SetupAttempt.object_name => SetupAttempt,
@ -114,19 +119,18 @@ module Stripe
ShippingRate.object_name => ShippingRate,
Sigma::ScheduledQueryRun.object_name => Sigma::ScheduledQueryRun,
Source.object_name => Source,
SourceMandateNotification.object_name => SourceMandateNotification,
SourceTransaction.object_name => SourceTransaction,
Subscription.object_name => Subscription,
SubscriptionItem.object_name => SubscriptionItem,
SubscriptionSchedule.object_name => SubscriptionSchedule,
Tax::Calculation.object_name => Tax::Calculation,
Tax::CalculationLineItem.object_name => Tax::CalculationLineItem,
Tax::Form.object_name => Tax::Form,
Tax::Registration.object_name => Tax::Registration,
Tax::Settings.object_name => Tax::Settings,
Tax::Transaction.object_name => Tax::Transaction,
Tax::TransactionLineItem.object_name => Tax::TransactionLineItem,
TaxCode.object_name => TaxCode,
TaxDeductedAtSource.object_name => TaxDeductedAtSource,
TaxId.object_name => TaxId,
TaxRate.object_name => TaxRate,
Terminal::Configuration.object_name => Terminal::Configuration,
@ -148,24 +152,12 @@ module Stripe
Treasury::ReceivedDebit.object_name => Treasury::ReceivedDebit,
Treasury::Transaction.object_name => Treasury::Transaction,
Treasury::TransactionEntry.object_name => Treasury::TransactionEntry,
UsageRecord.object_name => UsageRecord,
UsageRecordSummary.object_name => UsageRecordSummary,
WebhookEndpoint.object_name => WebhookEndpoint,
# object classes: The end of the section generated from our OpenAPI spec
}
end
def self.v2_object_names_to_classes
{
V2::ListObject.object_name => V2::ListObject,
# v2 object classes: The beginning of the section generated from our OpenAPI spec
V2::Billing::MeterEvent.object_name => V2::Billing::MeterEvent,
V2::Billing::MeterEventAdjustment.object_name => V2::Billing::MeterEventAdjustment,
V2::Billing::MeterEventSession.object_name => V2::Billing::MeterEventSession,
V2::Event.object_name => V2::Event,
V2::EventDestination.object_name => V2::EventDestination,
# v2 object classes: The end of the section generated from our OpenAPI spec
}
end
end
end

View File

@ -1,129 +0,0 @@
# frozen_string_literal: true
# typed: true
module Stripe
# RequestOptions is a class that encapsulates configurable options
# for requests made to the Stripe API. It is used by the APIRequestor
# to set per-request options.
#
# For internal use only. Does not provide a stable API and may be broken
# with future non-major changes.
module RequestOptions
# Options that a user is allowed to specify.
OPTS_USER_SPECIFIED = Set[
:api_key,
:idempotency_key,
:stripe_account,
:stripe_context,
:stripe_version
].freeze
# Options that should be copyable from one StripeObject to another
# including options that may be internal.
OPTS_COPYABLE = (
OPTS_USER_SPECIFIED + Set[:api_base]
).freeze
# Options that should be persisted between API requests.
OPTS_PERSISTABLE = (
OPTS_USER_SPECIFIED - Set[:idempotency_key, :stripe_context]
).freeze
# Merges requestor options on a StripeConfiguration object
# with a per-request options hash, giving precedence
# to the per-request options. Expects StripeConfiguration and hash.
def self.merge_config_and_opts(config, req_opts)
# Raise an error if config is not a StripeConfiguration object
unless config.is_a?(StripeConfiguration)
raise ArgumentError, "config must be a Stripe::StripeConfiguration object"
end
merged_opts = {
api_key: req_opts[:api_key] || config.api_key,
idempotency_key: req_opts[:idempotency_key],
stripe_account: req_opts[:stripe_account] || config.stripe_account,
stripe_context: req_opts[:stripe_context] || config.stripe_context,
stripe_version: req_opts[:stripe_version] || config.api_version,
headers: req_opts[:headers] || {},
}
# Remove nil values from headers
merged_opts.delete_if { |_, v| v.nil? }
merged_opts
end
# Merges requestor options hash on a StripeObject
# with a per-request options hash, giving precedence
# to the per-request options. Returns the merged request options.
# Expects two hashes, expects extract_opts_from_hash to be called first!!!
def self.combine_opts(object_opts, req_opts)
merged_opts = {
api_key: req_opts[:api_key] || object_opts[:api_key],
idempotency_key: req_opts[:idempotency_key],
stripe_account: req_opts[:stripe_account] || object_opts[:stripe_account],
stripe_context: req_opts[:stripe_context] || object_opts[:stripe_context],
stripe_version: req_opts[:stripe_version] || object_opts[:stripe_version],
headers: req_opts[:headers] || {},
}
# Remove nil values from headers
merged_opts.delete_if { |_, v| v.nil? }
merged_opts
end
# Extracts options from a user-provided hash, returning a new request options hash
# containing the recognized request options and a `headers` entry for the remaining options.
def self.extract_opts_from_hash(opts)
req_opts = {}
normalized_opts = Util.normalize_opts(opts.clone)
RequestOptions.error_on_non_string_user_opts(normalized_opts)
OPTS_USER_SPECIFIED.each do |opt|
req_opts[opt] = normalized_opts[opt] if normalized_opts.key?(opt)
normalized_opts.delete(opt)
end
# Remaining user-provided opts should be treated as headers
req_opts[:headers] = Util.normalize_headers(normalized_opts) if normalized_opts.any?
req_opts
end
# Validates a normalized opts hash.
def self.error_on_non_string_user_opts(normalized_opts)
OPTS_USER_SPECIFIED.each do |opt|
next unless normalized_opts.key?(opt)
val = normalized_opts[opt]
next if val.nil?
next if val.is_a?(String)
raise ArgumentError,
"request option '#{opt}' should be a string value " \
"(was a #{val.class})"
end
end
# Get options that persist between requests
def self.persistable(req_opts)
opts_to_persist = {}
# Hash#select returns an array before 1.9
req_opts.each do |k, v|
opts_to_persist[k] = v if RequestOptions::OPTS_PERSISTABLE.include?(k)
end
opts_to_persist
end
# Get options that are copyable from StripeObject to StripeObject
def self.copyable(req_opts)
req_opts.select do |k, _v|
RequestOptions::OPTS_COPYABLE.include?(k)
end
end
end
end

View File

@ -1,24 +0,0 @@
# frozen_string_literal: true
# typed: true
module Stripe
# For internal use only. Does not provide a stable API and may be broken
# with future non-major changes.
class RequestParams
def to_h
instance_variables.each_with_object({}) do |var, hash|
key = var.to_s.delete("@").to_sym
value = instance_variable_get(var)
hash[key] = if value.is_a?(RequestParams)
value.to_h
# Check if value is an array and contains RequestParams objects
elsif value.is_a?(Array)
value.map { |item| item.is_a?(RequestParams) ? item.to_h : item }
else
value
end
end
end
end
end

View File

@ -0,0 +1,79 @@
# frozen_string_literal: true
module Stripe
class RequestSigningAuthenticator
AUTHORIZATION_HEADER_NAME = "Authorization"
CONTENT_TYPE_HEADER_NAME = "Content-Type"
STRIPE_CONTEXT_HEADER_NAME = "Stripe-Context"
STRIPE_ACCOUNT_HEADER_NAME = "Stripe-Account"
CONTENT_DIGEST_HEADER_NAME = "Content-Digest"
SIGNATURE_INPUT_HEADER_NAME = "Signature-Input"
SIGNATURE_HEADER_NAME = "Signature"
attr_reader :auth_token, :sign_lambda
def initialize(auth_token, sign_lambda)
raise ArgumentError, "auth_token must be a string" unless auth_token.is_a?(String)
raise ArgumentError, "sign_lambda must be a lambda" unless sign_lambda.is_a?(Proc)
@auth_token = auth_token
@sign_lambda = sign_lambda
end
def authenticate(method, headers, body)
covered_headers = [CONTENT_TYPE_HEADER_NAME,
CONTENT_DIGEST_HEADER_NAME,
STRIPE_CONTEXT_HEADER_NAME,
STRIPE_ACCOUNT_HEADER_NAME,
AUTHORIZATION_HEADER_NAME,]
headers[AUTHORIZATION_HEADER_NAME] = "STRIPE-V2-SIG #{auth_token}"
if method == :get
covered_headers -= [CONTENT_TYPE_HEADER_NAME,
CONTENT_DIGEST_HEADER_NAME,]
else
content = body || ""
headers[CONTENT_DIGEST_HEADER_NAME] =
%(sha-256=:#{content_digest(content)}:)
end
covered_headers_formatted = covered_headers
.map { |string| %("#{string.downcase}") }
.join(" ")
signature_input = "(#{covered_headers_formatted});created=#{created_time}"
inputs = covered_headers
.map { |header| %("#{header.downcase}": #{headers[header]}) }
.join("\n")
signature_base = %(#{inputs}\n"@signature-params": #{signature_input})
.encode(Encoding::UTF_8)
headers[SIGNATURE_INPUT_HEADER_NAME] = "sig1=#{signature_input}"
headers[SIGNATURE_HEADER_NAME] =
"sig1=:#{encoded_signature(signature_base)}:"
end
private def sign(signature_base)
@sign_lambda.call(signature_base)
end
private def encoded_signature(signature_base)
Base64.strict_encode64(sign(signature_base))
rescue StandardError
raise AuthenticationError, "Encountered '#{e.message} (#{e.class})' " \
"when calculating request signature."
end
private def content_digest(content)
Base64.strict_encode64(OpenSSL::Digest.new("SHA256").digest(content))
end
private def created_time
Time.now.to_i
end
end
end

View File

@ -3,20 +3,15 @@
require "stripe/resources/account"
require "stripe/resources/account_link"
require "stripe/resources/account_notice"
require "stripe/resources/account_session"
require "stripe/resources/apple_pay_domain"
require "stripe/resources/application"
require "stripe/resources/application_fee"
require "stripe/resources/application_fee_refund"
require "stripe/resources/apps/secret"
require "stripe/resources/balance"
require "stripe/resources/balance_transaction"
require "stripe/resources/bank_account"
require "stripe/resources/billing/alert"
require "stripe/resources/billing/alert_triggered"
require "stripe/resources/billing/credit_balance_summary"
require "stripe/resources/billing/credit_balance_transaction"
require "stripe/resources/billing/credit_grant"
require "stripe/resources/billing/meter"
require "stripe/resources/billing/meter_event"
require "stripe/resources/billing/meter_event_adjustment"
@ -24,6 +19,9 @@ require "stripe/resources/billing/meter_event_summary"
require "stripe/resources/billing_portal/configuration"
require "stripe/resources/billing_portal/session"
require "stripe/resources/capability"
require "stripe/resources/capital/financing_offer"
require "stripe/resources/capital/financing_summary"
require "stripe/resources/capital/financing_transaction"
require "stripe/resources/card"
require "stripe/resources/cash_balance"
require "stripe/resources/charge"
@ -32,7 +30,6 @@ require "stripe/resources/climate/order"
require "stripe/resources/climate/product"
require "stripe/resources/climate/supplier"
require "stripe/resources/confirmation_token"
require "stripe/resources/connect_collection_transfer"
require "stripe/resources/country_spec"
require "stripe/resources/coupon"
require "stripe/resources/credit_note"
@ -44,7 +41,6 @@ require "stripe/resources/customer_session"
require "stripe/resources/discount"
require "stripe/resources/dispute"
require "stripe/resources/entitlements/active_entitlement"
require "stripe/resources/entitlements/active_entitlement_summary"
require "stripe/resources/entitlements/feature"
require "stripe/resources/ephemeral_key"
require "stripe/resources/event"
@ -52,22 +48,25 @@ require "stripe/resources/exchange_rate"
require "stripe/resources/file"
require "stripe/resources/file_link"
require "stripe/resources/financial_connections/account"
require "stripe/resources/financial_connections/account_inferred_balance"
require "stripe/resources/financial_connections/account_owner"
require "stripe/resources/financial_connections/account_ownership"
require "stripe/resources/financial_connections/session"
require "stripe/resources/financial_connections/transaction"
require "stripe/resources/forwarding/request"
require "stripe/resources/funding_instructions"
require "stripe/resources/gift_cards/card"
require "stripe/resources/gift_cards/transaction"
require "stripe/resources/identity/verification_report"
require "stripe/resources/identity/verification_session"
require "stripe/resources/invoice"
require "stripe/resources/invoice_item"
require "stripe/resources/invoice_line_item"
require "stripe/resources/invoice_payment"
require "stripe/resources/invoice_rendering_template"
require "stripe/resources/issuing/authorization"
require "stripe/resources/issuing/card"
require "stripe/resources/issuing/cardholder"
require "stripe/resources/issuing/credit_underwriting_record"
require "stripe/resources/issuing/dispute"
require "stripe/resources/issuing/personalization_design"
require "stripe/resources/issuing/physical_bundle"
@ -76,6 +75,8 @@ require "stripe/resources/issuing/transaction"
require "stripe/resources/line_item"
require "stripe/resources/login_link"
require "stripe/resources/mandate"
require "stripe/resources/margin"
require "stripe/resources/order"
require "stripe/resources/payment_intent"
require "stripe/resources/payment_link"
require "stripe/resources/payment_method"
@ -89,13 +90,15 @@ require "stripe/resources/product"
require "stripe/resources/product_feature"
require "stripe/resources/promotion_code"
require "stripe/resources/quote"
require "stripe/resources/quote_phase"
require "stripe/resources/quote_preview_invoice"
require "stripe/resources/quote_preview_subscription_schedule"
require "stripe/resources/radar/early_fraud_warning"
require "stripe/resources/radar/value_list"
require "stripe/resources/radar/value_list_item"
require "stripe/resources/refund"
require "stripe/resources/reporting/report_run"
require "stripe/resources/reporting/report_type"
require "stripe/resources/reserve_transaction"
require "stripe/resources/reversal"
require "stripe/resources/review"
require "stripe/resources/setup_attempt"
@ -103,19 +106,18 @@ require "stripe/resources/setup_intent"
require "stripe/resources/shipping_rate"
require "stripe/resources/sigma/scheduled_query_run"
require "stripe/resources/source"
require "stripe/resources/source_mandate_notification"
require "stripe/resources/source_transaction"
require "stripe/resources/subscription"
require "stripe/resources/subscription_item"
require "stripe/resources/subscription_schedule"
require "stripe/resources/tax/calculation"
require "stripe/resources/tax/calculation_line_item"
require "stripe/resources/tax/form"
require "stripe/resources/tax/registration"
require "stripe/resources/tax/settings"
require "stripe/resources/tax/transaction"
require "stripe/resources/tax/transaction_line_item"
require "stripe/resources/tax_code"
require "stripe/resources/tax_deducted_at_source"
require "stripe/resources/tax_id"
require "stripe/resources/tax_rate"
require "stripe/resources/terminal/configuration"
@ -137,12 +139,6 @@ require "stripe/resources/treasury/received_credit"
require "stripe/resources/treasury/received_debit"
require "stripe/resources/treasury/transaction"
require "stripe/resources/treasury/transaction_entry"
require "stripe/resources/v2/billing/meter_event"
require "stripe/resources/v2/billing/meter_event_adjustment"
require "stripe/resources/v2/billing/meter_event_session"
require "stripe/resources/v2/event"
require "stripe/resources/v2/event_destination"
require "stripe/resources/usage_record"
require "stripe/resources/usage_record_summary"
require "stripe/resources/webhook_endpoint"
require "stripe/events/v1_billing_meter_error_report_triggered_event"
require "stripe/events/v1_billing_meter_no_meter_found_event"
require "stripe/events/v2_core_event_destination_ping_event"

File diff suppressed because it is too large Load Diff

View File

@ -14,60 +14,6 @@ module Stripe
"account_link"
end
class CreateParams < Stripe::RequestParams
class CollectionOptions < Stripe::RequestParams
# Specifies whether the platform collects only currently_due requirements (`currently_due`) or both currently_due and eventually_due requirements (`eventually_due`). If you don't specify `collection_options`, the default value is `currently_due`.
attr_accessor :fields
# Specifies whether the platform collects future_requirements in addition to requirements in Connect Onboarding. The default value is `omit`.
attr_accessor :future_requirements
def initialize(fields: nil, future_requirements: nil)
@fields = fields
@future_requirements = future_requirements
end
end
# The identifier of the account to create an account link for.
attr_accessor :account
# The collect parameter is deprecated. Use `collection_options` instead.
attr_accessor :collect
# Specifies the requirements that Stripe collects from connected accounts in the Connect Onboarding flow.
attr_accessor :collection_options
# Specifies which fields in the response should be expanded.
attr_accessor :expand
# The URL the user will be redirected to if the account link is expired, has been previously-visited, or is otherwise invalid. The URL you specify should attempt to generate a new account link with the same parameters used to create the original account link, then redirect the user to the new account link's URL so they can continue with Connect Onboarding. If a new account link cannot be generated or the redirect fails you should display a useful error to the user.
attr_accessor :refresh_url
# The URL that the user will be redirected to upon leaving or completing the linked flow.
attr_accessor :return_url
# The type of account link the user is requesting. Possible values are `account_onboarding` or `account_update`.
attr_accessor :type
def initialize(
account: nil,
collect: nil,
collection_options: nil,
expand: nil,
refresh_url: nil,
return_url: nil,
type: nil
)
@account = account
@collect = collect
@collection_options = collection_options
@expand = expand
@refresh_url = refresh_url
@return_url = return_url
@type = type
end
end
# Time at which the object was created. Measured in seconds since the Unix epoch.
attr_reader :created
# The timestamp at which this account link will expire.
attr_reader :expires_at
# String representing the object's type. Objects of the same type share the same value.
attr_reader :object
# The URL for the account link.
attr_reader :url
# Creates an AccountLink object that includes a single-use Stripe URL that the platform can redirect their user to in order to take them through the Connect Onboarding flow.
def self.create(params = {}, opts = {})
request_stripe_object(method: :post, path: "/v1/account_links", params: params, opts: opts)

View File

@ -0,0 +1,32 @@
# File generated from our OpenAPI spec
# frozen_string_literal: true
module Stripe
# A notice to a Connected account. Notice can be sent by Stripe on your behalf or you can opt to send the notices yourself.
#
# See the [guide to send notices](https://stripe.com/docs/issuing/compliance-us/issuing-regulated-customer-notices) to your connected accounts.
class AccountNotice < APIResource
extend Stripe::APIOperations::List
include Stripe::APIOperations::Save
OBJECT_NAME = "account_notice"
def self.object_name
"account_notice"
end
# Retrieves a list of AccountNotice objects. The objects are sorted in descending order by creation date, with the most-recently-created object appearing first.
def self.list(filters = {}, opts = {})
request_stripe_object(method: :get, path: "/v1/account_notices", params: filters, opts: opts)
end
# Updates an AccountNotice object.
def self.update(id, params = {}, opts = {})
request_stripe_object(
method: :post,
path: format("/v1/account_notices/%<id>s", { id: CGI.escape(id) }),
params: params,
opts: opts
)
end
end
end

View File

@ -17,849 +17,6 @@ module Stripe
"account_session"
end
class Components < Stripe::StripeObject
class AccountManagement < Stripe::StripeObject
class Features < Stripe::StripeObject
# Disables Stripe user authentication for this embedded component. This value can only be true for accounts where `controller.requirement_collection` is `application`. The default value is the opposite of the `external_account_collection` value. For example, if you dont set `external_account_collection`, it defaults to true and `disable_stripe_user_authentication` defaults to false.
attr_reader :disable_stripe_user_authentication
# Whether to allow platforms to control bank account collection for their connected accounts. This feature can only be false for accounts where youre responsible for collecting updated information when requirements are due or change, like custom accounts. Otherwise, bank account collection is determined by compliance requirements. The default value for this feature is `true`.
attr_reader :external_account_collection
end
# Whether the embedded component is enabled.
attr_reader :enabled
# Attribute for field features
attr_reader :features
end
class AccountOnboarding < Stripe::StripeObject
class Features < Stripe::StripeObject
# Disables Stripe user authentication for this embedded component. This value can only be true for accounts where `controller.requirement_collection` is `application`. The default value is the opposite of the `external_account_collection` value. For example, if you dont set `external_account_collection`, it defaults to true and `disable_stripe_user_authentication` defaults to false.
attr_reader :disable_stripe_user_authentication
# Whether to allow platforms to control bank account collection for their connected accounts. This feature can only be false for accounts where youre responsible for collecting updated information when requirements are due or change, like custom accounts. Otherwise, bank account collection is determined by compliance requirements. The default value for this feature is `true`.
attr_reader :external_account_collection
end
# Whether the embedded component is enabled.
attr_reader :enabled
# Attribute for field features
attr_reader :features
end
class Balances < Stripe::StripeObject
class Features < Stripe::StripeObject
# Disables Stripe user authentication for this embedded component. This value can only be true for accounts where `controller.requirement_collection` is `application`. The default value is the opposite of the `external_account_collection` value. For example, if you dont set `external_account_collection`, it defaults to true and `disable_stripe_user_authentication` defaults to false.
attr_reader :disable_stripe_user_authentication
# Whether to allow payout schedule to be changed. Default `true` when Stripe owns Loss Liability, default `false` otherwise.
attr_reader :edit_payout_schedule
# Whether to allow platforms to control bank account collection for their connected accounts. This feature can only be false for accounts where youre responsible for collecting updated information when requirements are due or change, like custom accounts. Otherwise, bank account collection is determined by compliance requirements. The default value for this feature is `true`.
attr_reader :external_account_collection
# Whether to allow creation of instant payouts. Default `true` when Stripe owns Loss Liability, default `false` otherwise.
attr_reader :instant_payouts
# Whether to allow creation of standard payouts. Default `true` when Stripe owns Loss Liability, default `false` otherwise.
attr_reader :standard_payouts
end
# Whether the embedded component is enabled.
attr_reader :enabled
# Attribute for field features
attr_reader :features
end
class DisputesList < Stripe::StripeObject
class Features < Stripe::StripeObject
# Whether to allow capturing and cancelling payment intents. This is `true` by default.
attr_reader :capture_payments
# Whether to allow connected accounts to manage destination charges that are created on behalf of them. This is `false` by default.
attr_reader :destination_on_behalf_of_charge_management
# Whether to allow responding to disputes, including submitting evidence and accepting disputes. This is `true` by default.
attr_reader :dispute_management
# Whether to allow sending refunds. This is `true` by default.
attr_reader :refund_management
end
# Whether the embedded component is enabled.
attr_reader :enabled
# Attribute for field features
attr_reader :features
end
class Documents < Stripe::StripeObject
class Features < Stripe::StripeObject; end
# Whether the embedded component is enabled.
attr_reader :enabled
# Attribute for field features
attr_reader :features
end
class FinancialAccount < Stripe::StripeObject
class Features < Stripe::StripeObject
# Disables Stripe user authentication for this embedded component. This value can only be true for accounts where `controller.requirement_collection` is `application`. The default value is the opposite of the `external_account_collection` value. For example, if you dont set `external_account_collection`, it defaults to true and `disable_stripe_user_authentication` defaults to false.
attr_reader :disable_stripe_user_authentication
# Whether to allow external accounts to be linked for money transfer.
attr_reader :external_account_collection
# Whether to allow sending money.
attr_reader :send_money
# Whether to allow transferring balance.
attr_reader :transfer_balance
end
# Whether the embedded component is enabled.
attr_reader :enabled
# Attribute for field features
attr_reader :features
end
class FinancialAccountTransactions < Stripe::StripeObject
class Features < Stripe::StripeObject
# Whether to allow card spend dispute management features.
attr_reader :card_spend_dispute_management
end
# Whether the embedded component is enabled.
attr_reader :enabled
# Attribute for field features
attr_reader :features
end
class IssuingCard < Stripe::StripeObject
class Features < Stripe::StripeObject
# Whether to allow card management features.
attr_reader :card_management
# Whether to allow card spend dispute management features.
attr_reader :card_spend_dispute_management
# Whether to allow cardholder management features.
attr_reader :cardholder_management
# Whether to allow spend control management features.
attr_reader :spend_control_management
end
# Whether the embedded component is enabled.
attr_reader :enabled
# Attribute for field features
attr_reader :features
end
class IssuingCardsList < Stripe::StripeObject
class Features < Stripe::StripeObject
# Whether to allow card management features.
attr_reader :card_management
# Whether to allow card spend dispute management features.
attr_reader :card_spend_dispute_management
# Whether to allow cardholder management features.
attr_reader :cardholder_management
# Disables Stripe user authentication for this embedded component. This feature can only be false for accounts where youre responsible for collecting updated information when requirements are due or change, like custom accounts.
attr_reader :disable_stripe_user_authentication
# Whether to allow spend control management features.
attr_reader :spend_control_management
end
# Whether the embedded component is enabled.
attr_reader :enabled
# Attribute for field features
attr_reader :features
end
class NotificationBanner < Stripe::StripeObject
class Features < Stripe::StripeObject
# Disables Stripe user authentication for this embedded component. This value can only be true for accounts where `controller.requirement_collection` is `application`. The default value is the opposite of the `external_account_collection` value. For example, if you dont set `external_account_collection`, it defaults to true and `disable_stripe_user_authentication` defaults to false.
attr_reader :disable_stripe_user_authentication
# Whether to allow platforms to control bank account collection for their connected accounts. This feature can only be false for accounts where youre responsible for collecting updated information when requirements are due or change, like custom accounts. Otherwise, bank account collection is determined by compliance requirements. The default value for this feature is `true`.
attr_reader :external_account_collection
end
# Whether the embedded component is enabled.
attr_reader :enabled
# Attribute for field features
attr_reader :features
end
class PaymentDetails < Stripe::StripeObject
class Features < Stripe::StripeObject
# Whether to allow capturing and cancelling payment intents. This is `true` by default.
attr_reader :capture_payments
# Whether to allow connected accounts to manage destination charges that are created on behalf of them. This is `false` by default.
attr_reader :destination_on_behalf_of_charge_management
# Whether to allow responding to disputes, including submitting evidence and accepting disputes. This is `true` by default.
attr_reader :dispute_management
# Whether to allow sending refunds. This is `true` by default.
attr_reader :refund_management
end
# Whether the embedded component is enabled.
attr_reader :enabled
# Attribute for field features
attr_reader :features
end
class PaymentDisputes < Stripe::StripeObject
class Features < Stripe::StripeObject
# Whether to allow connected accounts to manage destination charges that are created on behalf of them. This is `false` by default.
attr_reader :destination_on_behalf_of_charge_management
# Whether to allow responding to disputes, including submitting evidence and accepting disputes. This is `true` by default.
attr_reader :dispute_management
# Whether to allow sending refunds. This is `true` by default.
attr_reader :refund_management
end
# Whether the embedded component is enabled.
attr_reader :enabled
# Attribute for field features
attr_reader :features
end
class Payments < Stripe::StripeObject
class Features < Stripe::StripeObject
# Whether to allow capturing and cancelling payment intents. This is `true` by default.
attr_reader :capture_payments
# Whether to allow connected accounts to manage destination charges that are created on behalf of them. This is `false` by default.
attr_reader :destination_on_behalf_of_charge_management
# Whether to allow responding to disputes, including submitting evidence and accepting disputes. This is `true` by default.
attr_reader :dispute_management
# Whether to allow sending refunds. This is `true` by default.
attr_reader :refund_management
end
# Whether the embedded component is enabled.
attr_reader :enabled
# Attribute for field features
attr_reader :features
end
class Payouts < Stripe::StripeObject
class Features < Stripe::StripeObject
# Disables Stripe user authentication for this embedded component. This value can only be true for accounts where `controller.requirement_collection` is `application`. The default value is the opposite of the `external_account_collection` value. For example, if you dont set `external_account_collection`, it defaults to true and `disable_stripe_user_authentication` defaults to false.
attr_reader :disable_stripe_user_authentication
# Whether to allow payout schedule to be changed. Default `true` when Stripe owns Loss Liability, default `false` otherwise.
attr_reader :edit_payout_schedule
# Whether to allow platforms to control bank account collection for their connected accounts. This feature can only be false for accounts where youre responsible for collecting updated information when requirements are due or change, like custom accounts. Otherwise, bank account collection is determined by compliance requirements. The default value for this feature is `true`.
attr_reader :external_account_collection
# Whether to allow creation of instant payouts. Default `true` when Stripe owns Loss Liability, default `false` otherwise.
attr_reader :instant_payouts
# Whether to allow creation of standard payouts. Default `true` when Stripe owns Loss Liability, default `false` otherwise.
attr_reader :standard_payouts
end
# Whether the embedded component is enabled.
attr_reader :enabled
# Attribute for field features
attr_reader :features
end
class PayoutsList < Stripe::StripeObject
class Features < Stripe::StripeObject; end
# Whether the embedded component is enabled.
attr_reader :enabled
# Attribute for field features
attr_reader :features
end
class TaxRegistrations < Stripe::StripeObject
class Features < Stripe::StripeObject; end
# Whether the embedded component is enabled.
attr_reader :enabled
# Attribute for field features
attr_reader :features
end
class TaxSettings < Stripe::StripeObject
class Features < Stripe::StripeObject; end
# Whether the embedded component is enabled.
attr_reader :enabled
# Attribute for field features
attr_reader :features
end
# Attribute for field account_management
attr_reader :account_management
# Attribute for field account_onboarding
attr_reader :account_onboarding
# Attribute for field balances
attr_reader :balances
# Attribute for field disputes_list
attr_reader :disputes_list
# Attribute for field documents
attr_reader :documents
# Attribute for field financial_account
attr_reader :financial_account
# Attribute for field financial_account_transactions
attr_reader :financial_account_transactions
# Attribute for field issuing_card
attr_reader :issuing_card
# Attribute for field issuing_cards_list
attr_reader :issuing_cards_list
# Attribute for field notification_banner
attr_reader :notification_banner
# Attribute for field payment_details
attr_reader :payment_details
# Attribute for field payment_disputes
attr_reader :payment_disputes
# Attribute for field payments
attr_reader :payments
# Attribute for field payouts
attr_reader :payouts
# Attribute for field payouts_list
attr_reader :payouts_list
# Attribute for field tax_registrations
attr_reader :tax_registrations
# Attribute for field tax_settings
attr_reader :tax_settings
end
class CreateParams < Stripe::RequestParams
class Components < Stripe::RequestParams
class AccountManagement < Stripe::RequestParams
class Features < Stripe::RequestParams
# Disables Stripe user authentication for this embedded component. This value can only be true for accounts where `controller.requirement_collection` is `application`. The default value is the opposite of the `external_account_collection` value. For example, if you dont set `external_account_collection`, it defaults to true and `disable_stripe_user_authentication` defaults to false.
attr_accessor :disable_stripe_user_authentication
# Whether to allow platforms to control bank account collection for their connected accounts. This feature can only be false for accounts where youre responsible for collecting updated information when requirements are due or change, like custom accounts. Otherwise, bank account collection is determined by compliance requirements. The default value for this feature is `true`.
attr_accessor :external_account_collection
def initialize(
disable_stripe_user_authentication: nil,
external_account_collection: nil
)
@disable_stripe_user_authentication = disable_stripe_user_authentication
@external_account_collection = external_account_collection
end
end
# Whether the embedded component is enabled.
attr_accessor :enabled
# The list of features enabled in the embedded component.
attr_accessor :features
def initialize(enabled: nil, features: nil)
@enabled = enabled
@features = features
end
end
class AccountOnboarding < Stripe::RequestParams
class Features < Stripe::RequestParams
# Disables Stripe user authentication for this embedded component. This value can only be true for accounts where `controller.requirement_collection` is `application`. The default value is the opposite of the `external_account_collection` value. For example, if you dont set `external_account_collection`, it defaults to true and `disable_stripe_user_authentication` defaults to false.
attr_accessor :disable_stripe_user_authentication
# Whether to allow platforms to control bank account collection for their connected accounts. This feature can only be false for accounts where youre responsible for collecting updated information when requirements are due or change, like custom accounts. Otherwise, bank account collection is determined by compliance requirements. The default value for this feature is `true`.
attr_accessor :external_account_collection
def initialize(
disable_stripe_user_authentication: nil,
external_account_collection: nil
)
@disable_stripe_user_authentication = disable_stripe_user_authentication
@external_account_collection = external_account_collection
end
end
# Whether the embedded component is enabled.
attr_accessor :enabled
# The list of features enabled in the embedded component.
attr_accessor :features
def initialize(enabled: nil, features: nil)
@enabled = enabled
@features = features
end
end
class Balances < Stripe::RequestParams
class Features < Stripe::RequestParams
# Disables Stripe user authentication for this embedded component. This value can only be true for accounts where `controller.requirement_collection` is `application`. The default value is the opposite of the `external_account_collection` value. For example, if you dont set `external_account_collection`, it defaults to true and `disable_stripe_user_authentication` defaults to false.
attr_accessor :disable_stripe_user_authentication
# Whether to allow payout schedule to be changed. Default `true` when Stripe owns Loss Liability, default `false` otherwise.
attr_accessor :edit_payout_schedule
# Whether to allow platforms to control bank account collection for their connected accounts. This feature can only be false for accounts where youre responsible for collecting updated information when requirements are due or change, like custom accounts. Otherwise, bank account collection is determined by compliance requirements. The default value for this feature is `true`.
attr_accessor :external_account_collection
# Whether to allow creation of instant payouts. Default `true` when Stripe owns Loss Liability, default `false` otherwise.
attr_accessor :instant_payouts
# Whether to allow creation of standard payouts. Default `true` when Stripe owns Loss Liability, default `false` otherwise.
attr_accessor :standard_payouts
def initialize(
disable_stripe_user_authentication: nil,
edit_payout_schedule: nil,
external_account_collection: nil,
instant_payouts: nil,
standard_payouts: nil
)
@disable_stripe_user_authentication = disable_stripe_user_authentication
@edit_payout_schedule = edit_payout_schedule
@external_account_collection = external_account_collection
@instant_payouts = instant_payouts
@standard_payouts = standard_payouts
end
end
# Whether the embedded component is enabled.
attr_accessor :enabled
# The list of features enabled in the embedded component.
attr_accessor :features
def initialize(enabled: nil, features: nil)
@enabled = enabled
@features = features
end
end
class DisputesList < Stripe::RequestParams
class Features < Stripe::RequestParams
# Whether to allow capturing and cancelling payment intents. This is `true` by default.
attr_accessor :capture_payments
# Whether to allow connected accounts to manage destination charges that are created on behalf of them. This is `false` by default.
attr_accessor :destination_on_behalf_of_charge_management
# Whether to allow responding to disputes, including submitting evidence and accepting disputes. This is `true` by default.
attr_accessor :dispute_management
# Whether to allow sending refunds. This is `true` by default.
attr_accessor :refund_management
def initialize(
capture_payments: nil,
destination_on_behalf_of_charge_management: nil,
dispute_management: nil,
refund_management: nil
)
@capture_payments = capture_payments
@destination_on_behalf_of_charge_management = destination_on_behalf_of_charge_management
@dispute_management = dispute_management
@refund_management = refund_management
end
end
# Whether the embedded component is enabled.
attr_accessor :enabled
# The list of features enabled in the embedded component.
attr_accessor :features
def initialize(enabled: nil, features: nil)
@enabled = enabled
@features = features
end
end
class Documents < Stripe::RequestParams
class Features < Stripe::RequestParams; end
# Whether the embedded component is enabled.
attr_accessor :enabled
# The list of features enabled in the embedded component.
attr_accessor :features
def initialize(enabled: nil, features: nil)
@enabled = enabled
@features = features
end
end
class FinancialAccount < Stripe::RequestParams
class Features < Stripe::RequestParams
# Disables Stripe user authentication for this embedded component. This value can only be true for accounts where `controller.requirement_collection` is `application`. The default value is the opposite of the `external_account_collection` value. For example, if you dont set `external_account_collection`, it defaults to true and `disable_stripe_user_authentication` defaults to false.
attr_accessor :disable_stripe_user_authentication
# Whether to allow external accounts to be linked for money transfer.
attr_accessor :external_account_collection
# Whether to allow sending money.
attr_accessor :send_money
# Whether to allow transferring balance.
attr_accessor :transfer_balance
def initialize(
disable_stripe_user_authentication: nil,
external_account_collection: nil,
send_money: nil,
transfer_balance: nil
)
@disable_stripe_user_authentication = disable_stripe_user_authentication
@external_account_collection = external_account_collection
@send_money = send_money
@transfer_balance = transfer_balance
end
end
# Whether the embedded component is enabled.
attr_accessor :enabled
# The list of features enabled in the embedded component.
attr_accessor :features
def initialize(enabled: nil, features: nil)
@enabled = enabled
@features = features
end
end
class FinancialAccountTransactions < Stripe::RequestParams
class Features < Stripe::RequestParams
# Whether to allow card spend dispute management features.
attr_accessor :card_spend_dispute_management
def initialize(card_spend_dispute_management: nil)
@card_spend_dispute_management = card_spend_dispute_management
end
end
# Whether the embedded component is enabled.
attr_accessor :enabled
# The list of features enabled in the embedded component.
attr_accessor :features
def initialize(enabled: nil, features: nil)
@enabled = enabled
@features = features
end
end
class IssuingCard < Stripe::RequestParams
class Features < Stripe::RequestParams
# Whether to allow card management features.
attr_accessor :card_management
# Whether to allow card spend dispute management features.
attr_accessor :card_spend_dispute_management
# Whether to allow cardholder management features.
attr_accessor :cardholder_management
# Whether to allow spend control management features.
attr_accessor :spend_control_management
def initialize(
card_management: nil,
card_spend_dispute_management: nil,
cardholder_management: nil,
spend_control_management: nil
)
@card_management = card_management
@card_spend_dispute_management = card_spend_dispute_management
@cardholder_management = cardholder_management
@spend_control_management = spend_control_management
end
end
# Whether the embedded component is enabled.
attr_accessor :enabled
# The list of features enabled in the embedded component.
attr_accessor :features
def initialize(enabled: nil, features: nil)
@enabled = enabled
@features = features
end
end
class IssuingCardsList < Stripe::RequestParams
class Features < Stripe::RequestParams
# Whether to allow card management features.
attr_accessor :card_management
# Whether to allow card spend dispute management features.
attr_accessor :card_spend_dispute_management
# Whether to allow cardholder management features.
attr_accessor :cardholder_management
# Disables Stripe user authentication for this embedded component. This feature can only be false for accounts where youre responsible for collecting updated information when requirements are due or change, like custom accounts.
attr_accessor :disable_stripe_user_authentication
# Whether to allow spend control management features.
attr_accessor :spend_control_management
def initialize(
card_management: nil,
card_spend_dispute_management: nil,
cardholder_management: nil,
disable_stripe_user_authentication: nil,
spend_control_management: nil
)
@card_management = card_management
@card_spend_dispute_management = card_spend_dispute_management
@cardholder_management = cardholder_management
@disable_stripe_user_authentication = disable_stripe_user_authentication
@spend_control_management = spend_control_management
end
end
# Whether the embedded component is enabled.
attr_accessor :enabled
# The list of features enabled in the embedded component.
attr_accessor :features
def initialize(enabled: nil, features: nil)
@enabled = enabled
@features = features
end
end
class NotificationBanner < Stripe::RequestParams
class Features < Stripe::RequestParams
# Disables Stripe user authentication for this embedded component. This value can only be true for accounts where `controller.requirement_collection` is `application`. The default value is the opposite of the `external_account_collection` value. For example, if you dont set `external_account_collection`, it defaults to true and `disable_stripe_user_authentication` defaults to false.
attr_accessor :disable_stripe_user_authentication
# Whether to allow platforms to control bank account collection for their connected accounts. This feature can only be false for accounts where youre responsible for collecting updated information when requirements are due or change, like custom accounts. Otherwise, bank account collection is determined by compliance requirements. The default value for this feature is `true`.
attr_accessor :external_account_collection
def initialize(
disable_stripe_user_authentication: nil,
external_account_collection: nil
)
@disable_stripe_user_authentication = disable_stripe_user_authentication
@external_account_collection = external_account_collection
end
end
# Whether the embedded component is enabled.
attr_accessor :enabled
# The list of features enabled in the embedded component.
attr_accessor :features
def initialize(enabled: nil, features: nil)
@enabled = enabled
@features = features
end
end
class PaymentDetails < Stripe::RequestParams
class Features < Stripe::RequestParams
# Whether to allow capturing and cancelling payment intents. This is `true` by default.
attr_accessor :capture_payments
# Whether to allow connected accounts to manage destination charges that are created on behalf of them. This is `false` by default.
attr_accessor :destination_on_behalf_of_charge_management
# Whether to allow responding to disputes, including submitting evidence and accepting disputes. This is `true` by default.
attr_accessor :dispute_management
# Whether to allow sending refunds. This is `true` by default.
attr_accessor :refund_management
def initialize(
capture_payments: nil,
destination_on_behalf_of_charge_management: nil,
dispute_management: nil,
refund_management: nil
)
@capture_payments = capture_payments
@destination_on_behalf_of_charge_management = destination_on_behalf_of_charge_management
@dispute_management = dispute_management
@refund_management = refund_management
end
end
# Whether the embedded component is enabled.
attr_accessor :enabled
# The list of features enabled in the embedded component.
attr_accessor :features
def initialize(enabled: nil, features: nil)
@enabled = enabled
@features = features
end
end
class PaymentDisputes < Stripe::RequestParams
class Features < Stripe::RequestParams
# Whether to allow connected accounts to manage destination charges that are created on behalf of them. This is `false` by default.
attr_accessor :destination_on_behalf_of_charge_management
# Whether to allow responding to disputes, including submitting evidence and accepting disputes. This is `true` by default.
attr_accessor :dispute_management
# Whether to allow sending refunds. This is `true` by default.
attr_accessor :refund_management
def initialize(
destination_on_behalf_of_charge_management: nil,
dispute_management: nil,
refund_management: nil
)
@destination_on_behalf_of_charge_management = destination_on_behalf_of_charge_management
@dispute_management = dispute_management
@refund_management = refund_management
end
end
# Whether the embedded component is enabled.
attr_accessor :enabled
# The list of features enabled in the embedded component.
attr_accessor :features
def initialize(enabled: nil, features: nil)
@enabled = enabled
@features = features
end
end
class Payments < Stripe::RequestParams
class Features < Stripe::RequestParams
# Whether to allow capturing and cancelling payment intents. This is `true` by default.
attr_accessor :capture_payments
# Whether to allow connected accounts to manage destination charges that are created on behalf of them. This is `false` by default.
attr_accessor :destination_on_behalf_of_charge_management
# Whether to allow responding to disputes, including submitting evidence and accepting disputes. This is `true` by default.
attr_accessor :dispute_management
# Whether to allow sending refunds. This is `true` by default.
attr_accessor :refund_management
def initialize(
capture_payments: nil,
destination_on_behalf_of_charge_management: nil,
dispute_management: nil,
refund_management: nil
)
@capture_payments = capture_payments
@destination_on_behalf_of_charge_management = destination_on_behalf_of_charge_management
@dispute_management = dispute_management
@refund_management = refund_management
end
end
# Whether the embedded component is enabled.
attr_accessor :enabled
# The list of features enabled in the embedded component.
attr_accessor :features
def initialize(enabled: nil, features: nil)
@enabled = enabled
@features = features
end
end
class Payouts < Stripe::RequestParams
class Features < Stripe::RequestParams
# Disables Stripe user authentication for this embedded component. This value can only be true for accounts where `controller.requirement_collection` is `application`. The default value is the opposite of the `external_account_collection` value. For example, if you dont set `external_account_collection`, it defaults to true and `disable_stripe_user_authentication` defaults to false.
attr_accessor :disable_stripe_user_authentication
# Whether to allow payout schedule to be changed. Default `true` when Stripe owns Loss Liability, default `false` otherwise.
attr_accessor :edit_payout_schedule
# Whether to allow platforms to control bank account collection for their connected accounts. This feature can only be false for accounts where youre responsible for collecting updated information when requirements are due or change, like custom accounts. Otherwise, bank account collection is determined by compliance requirements. The default value for this feature is `true`.
attr_accessor :external_account_collection
# Whether to allow creation of instant payouts. Default `true` when Stripe owns Loss Liability, default `false` otherwise.
attr_accessor :instant_payouts
# Whether to allow creation of standard payouts. Default `true` when Stripe owns Loss Liability, default `false` otherwise.
attr_accessor :standard_payouts
def initialize(
disable_stripe_user_authentication: nil,
edit_payout_schedule: nil,
external_account_collection: nil,
instant_payouts: nil,
standard_payouts: nil
)
@disable_stripe_user_authentication = disable_stripe_user_authentication
@edit_payout_schedule = edit_payout_schedule
@external_account_collection = external_account_collection
@instant_payouts = instant_payouts
@standard_payouts = standard_payouts
end
end
# Whether the embedded component is enabled.
attr_accessor :enabled
# The list of features enabled in the embedded component.
attr_accessor :features
def initialize(enabled: nil, features: nil)
@enabled = enabled
@features = features
end
end
class PayoutsList < Stripe::RequestParams
class Features < Stripe::RequestParams; end
# Whether the embedded component is enabled.
attr_accessor :enabled
# The list of features enabled in the embedded component.
attr_accessor :features
def initialize(enabled: nil, features: nil)
@enabled = enabled
@features = features
end
end
class TaxRegistrations < Stripe::RequestParams
class Features < Stripe::RequestParams; end
# Whether the embedded component is enabled.
attr_accessor :enabled
# The list of features enabled in the embedded component.
attr_accessor :features
def initialize(enabled: nil, features: nil)
@enabled = enabled
@features = features
end
end
class TaxSettings < Stripe::RequestParams
class Features < Stripe::RequestParams; end
# Whether the embedded component is enabled.
attr_accessor :enabled
# The list of features enabled in the embedded component.
attr_accessor :features
def initialize(enabled: nil, features: nil)
@enabled = enabled
@features = features
end
end
# Configuration for the account management embedded component.
attr_accessor :account_management
# Configuration for the account onboarding embedded component.
attr_accessor :account_onboarding
# Configuration for the balances embedded component.
attr_accessor :balances
# Configuration for the disputes list embedded component.
attr_accessor :disputes_list
# Configuration for the documents embedded component.
attr_accessor :documents
# Configuration for the financial account embedded component.
attr_accessor :financial_account
# Configuration for the financial account transactions embedded component.
attr_accessor :financial_account_transactions
# Configuration for the issuing card embedded component.
attr_accessor :issuing_card
# Configuration for the issuing cards list embedded component.
attr_accessor :issuing_cards_list
# Configuration for the notification banner embedded component.
attr_accessor :notification_banner
# Configuration for the payment details embedded component.
attr_accessor :payment_details
# Configuration for the payment disputes embedded component.
attr_accessor :payment_disputes
# Configuration for the payments embedded component.
attr_accessor :payments
# Configuration for the payouts embedded component.
attr_accessor :payouts
# Configuration for the payouts list embedded component.
attr_accessor :payouts_list
# Configuration for the tax registrations embedded component.
attr_accessor :tax_registrations
# Configuration for the tax settings embedded component.
attr_accessor :tax_settings
def initialize(
account_management: nil,
account_onboarding: nil,
balances: nil,
disputes_list: nil,
documents: nil,
financial_account: nil,
financial_account_transactions: nil,
issuing_card: nil,
issuing_cards_list: nil,
notification_banner: nil,
payment_details: nil,
payment_disputes: nil,
payments: nil,
payouts: nil,
payouts_list: nil,
tax_registrations: nil,
tax_settings: nil
)
@account_management = account_management
@account_onboarding = account_onboarding
@balances = balances
@disputes_list = disputes_list
@documents = documents
@financial_account = financial_account
@financial_account_transactions = financial_account_transactions
@issuing_card = issuing_card
@issuing_cards_list = issuing_cards_list
@notification_banner = notification_banner
@payment_details = payment_details
@payment_disputes = payment_disputes
@payments = payments
@payouts = payouts
@payouts_list = payouts_list
@tax_registrations = tax_registrations
@tax_settings = tax_settings
end
end
# The identifier of the account to create an Account Session for.
attr_accessor :account
# Each key of the dictionary represents an embedded component, and each embedded component maps to its configuration (e.g. whether it has been enabled or not).
attr_accessor :components
# Specifies which fields in the response should be expanded.
attr_accessor :expand
def initialize(account: nil, components: nil, expand: nil)
@account = account
@components = components
@expand = expand
end
end
# The ID of the account the AccountSession was created for
attr_reader :account
# The client secret of this AccountSession. Used on the client to set up secure access to the given `account`.
#
# The client secret can be used to provide access to `account` from your frontend. It should not be stored, logged, or exposed to anyone other than the connected account. Make sure that you have TLS enabled on any page that includes the client secret.
#
# Refer to our docs to [setup Connect embedded components](https://stripe.com/docs/connect/get-started-connect-embedded-components) and learn about how `client_secret` should be handled.
attr_reader :client_secret
# Attribute for field components
attr_reader :components
# The timestamp at which this AccountSession will expire.
attr_reader :expires_at
# Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
attr_reader :livemode
# String representing the object's type. Objects of the same type share the same value.
attr_reader :object
# Creates a AccountSession object that includes a single-use token that the platform can use on their front-end to grant client-side API access.
def self.create(params = {}, opts = {})
request_stripe_object(method: :post, path: "/v1/account_sessions", params: params, opts: opts)

View File

@ -13,59 +13,6 @@ module Stripe
"apple_pay_domain"
end
class DeleteParams < Stripe::RequestParams; end
class ListParams < Stripe::RequestParams
# Attribute for param field domain_name
attr_accessor :domain_name
# A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.
attr_accessor :ending_before
# Specifies which fields in the response should be expanded.
attr_accessor :expand
# A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.
attr_accessor :limit
# A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.
attr_accessor :starting_after
def initialize(
domain_name: nil,
ending_before: nil,
expand: nil,
limit: nil,
starting_after: nil
)
@domain_name = domain_name
@ending_before = ending_before
@expand = expand
@limit = limit
@starting_after = starting_after
end
end
class CreateParams < Stripe::RequestParams
# Attribute for param field domain_name
attr_accessor :domain_name
# Specifies which fields in the response should be expanded.
attr_accessor :expand
def initialize(domain_name: nil, expand: nil)
@domain_name = domain_name
@expand = expand
end
end
# Time at which the object was created. Measured in seconds since the Unix epoch.
attr_reader :created
# Attribute for field domain_name
attr_reader :domain_name
# Unique identifier for the object.
attr_reader :id
# Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
attr_reader :livemode
# String representing the object's type. Objects of the same type share the same value.
attr_reader :object
# Always true for a deleted object
attr_reader :deleted
# Create an apple pay domain.
def self.create(params = {}, opts = {})
request_stripe_object(
@ -77,10 +24,10 @@ module Stripe
end
# Delete an apple pay domain.
def self.delete(domain, params = {}, opts = {})
def self.delete(id, params = {}, opts = {})
request_stripe_object(
method: :delete,
path: format("/v1/apple_pay/domains/%<domain>s", { domain: CGI.escape(domain) }),
path: format("/v1/apple_pay/domains/%<id>s", { id: CGI.escape(id) }),
params: params,
opts: opts
)
@ -97,8 +44,13 @@ module Stripe
end
# List apple pay domains.
def self.list(params = {}, opts = {})
request_stripe_object(method: :get, path: "/v1/apple_pay/domains", params: params, opts: opts)
def self.list(filters = {}, opts = {})
request_stripe_object(
method: :get,
path: "/v1/apple_pay/domains",
params: filters,
opts: opts
)
end
def self.resource_url

View File

@ -1,20 +0,0 @@
# File generated from our OpenAPI spec
# frozen_string_literal: true
module Stripe
class Application < APIResource
OBJECT_NAME = "application"
def self.object_name
"application"
end
# Unique identifier for the object.
attr_reader :id
# The name of the application.
attr_reader :name
# String representing the object's type. Objects of the same type share the same value.
attr_reader :object
# Always true for a deleted object
attr_reader :deleted
end
end

View File

@ -13,96 +13,9 @@ module Stripe
nested_resource_class_methods :refund, operations: %i[create retrieve update list]
class FeeSource < Stripe::StripeObject
# Charge ID that created this application fee.
attr_reader :charge
# Payout ID that created this application fee.
attr_reader :payout
# Type of object that created the application fee.
attr_reader :type
end
class ListParams < Stripe::RequestParams
class Created < Stripe::RequestParams
# Minimum value to filter by (exclusive)
attr_accessor :gt
# Minimum value to filter by (inclusive)
attr_accessor :gte
# Maximum value to filter by (exclusive)
attr_accessor :lt
# Maximum value to filter by (inclusive)
attr_accessor :lte
def initialize(gt: nil, gte: nil, lt: nil, lte: nil)
@gt = gt
@gte = gte
@lt = lt
@lte = lte
end
end
# Only return application fees for the charge specified by this charge ID.
attr_accessor :charge
# Only return applications fees that were created during the given date interval.
attr_accessor :created
# A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.
attr_accessor :ending_before
# Specifies which fields in the response should be expanded.
attr_accessor :expand
# A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.
attr_accessor :limit
# A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.
attr_accessor :starting_after
def initialize(
charge: nil,
created: nil,
ending_before: nil,
expand: nil,
limit: nil,
starting_after: nil
)
@charge = charge
@created = created
@ending_before = ending_before
@expand = expand
@limit = limit
@starting_after = starting_after
end
end
# ID of the Stripe account this fee was taken from.
attr_reader :account
# Amount earned, in cents (or local equivalent).
attr_reader :amount
# Amount in cents (or local equivalent) refunded (can be less than the amount attribute on the fee if a partial refund was issued)
attr_reader :amount_refunded
# ID of the Connect application that earned the fee.
attr_reader :application
# Balance transaction that describes the impact of this collected application fee on your account balance (not including refunds).
attr_reader :balance_transaction
# ID of the charge that the application fee was taken from.
attr_reader :charge
# Time at which the object was created. Measured in seconds since the Unix epoch.
attr_reader :created
# Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).
attr_reader :currency
# Polymorphic source of the application fee. Includes the ID of the object the application fee was created from.
attr_reader :fee_source
# Unique identifier for the object.
attr_reader :id
# Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
attr_reader :livemode
# String representing the object's type. Objects of the same type share the same value.
attr_reader :object
# ID of the corresponding charge on the platform account, if this fee was the result of a charge using the `destination` parameter.
attr_reader :originating_transaction
# Whether the fee has been fully refunded. If the fee is only partially refunded, this attribute will still be false.
attr_reader :refunded
# A list of refunds that have been applied to the fee.
attr_reader :refunds
# Returns a list of application fees you've previously collected. The application fees are returned in sorted order, with the most recent fees appearing first.
def self.list(params = {}, opts = {})
request_stripe_object(method: :get, path: "/v1/application_fees", params: params, opts: opts)
def self.list(filters = {}, opts = {})
request_stripe_object(method: :get, path: "/v1/application_fees", params: filters, opts: opts)
end
end
end

View File

@ -15,23 +15,6 @@ module Stripe
"fee_refund"
end
# Amount, in cents (or local equivalent).
attr_reader :amount
# Balance transaction that describes the impact on your account balance.
attr_reader :balance_transaction
# Time at which the object was created. Measured in seconds since the Unix epoch.
attr_reader :created
# Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).
attr_reader :currency
# ID of the application fee that was refunded.
attr_reader :fee
# Unique identifier for the object.
attr_reader :id
# Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
attr_reader :metadata
# String representing the object's type. Objects of the same type share the same value.
attr_reader :object
def resource_url
"#{ApplicationFee.resource_url}/#{CGI.escape(fee)}/refunds" \
"/#{CGI.escape(id)}"

View File

@ -21,147 +21,6 @@ module Stripe
"apps.secret"
end
class Scope < Stripe::StripeObject
# The secret scope type.
attr_reader :type
# The user ID, if type is set to "user"
attr_reader :user
end
class ListParams < Stripe::RequestParams
class Scope < Stripe::RequestParams
# The secret scope type.
attr_accessor :type
# The user ID. This field is required if `type` is set to `user`, and should not be provided if `type` is set to `account`.
attr_accessor :user
def initialize(type: nil, user: nil)
@type = type
@user = user
end
end
# A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.
attr_accessor :ending_before
# Specifies which fields in the response should be expanded.
attr_accessor :expand
# A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.
attr_accessor :limit
# Specifies the scoping of the secret. Requests originating from UI extensions can only access account-scoped secrets or secrets scoped to their own user.
attr_accessor :scope
# A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.
attr_accessor :starting_after
def initialize(ending_before: nil, expand: nil, limit: nil, scope: nil, starting_after: nil)
@ending_before = ending_before
@expand = expand
@limit = limit
@scope = scope
@starting_after = starting_after
end
end
class CreateParams < Stripe::RequestParams
class Scope < Stripe::RequestParams
# The secret scope type.
attr_accessor :type
# The user ID. This field is required if `type` is set to `user`, and should not be provided if `type` is set to `account`.
attr_accessor :user
def initialize(type: nil, user: nil)
@type = type
@user = user
end
end
# Specifies which fields in the response should be expanded.
attr_accessor :expand
# The Unix timestamp for the expiry time of the secret, after which the secret deletes.
attr_accessor :expires_at
# A name for the secret that's unique within the scope.
attr_accessor :name
# The plaintext secret value to be stored.
attr_accessor :payload
# Specifies the scoping of the secret. Requests originating from UI extensions can only access account-scoped secrets or secrets scoped to their own user.
attr_accessor :scope
def initialize(expand: nil, expires_at: nil, name: nil, payload: nil, scope: nil)
@expand = expand
@expires_at = expires_at
@name = name
@payload = payload
@scope = scope
end
end
class FindParams < Stripe::RequestParams
class Scope < Stripe::RequestParams
# The secret scope type.
attr_accessor :type
# The user ID. This field is required if `type` is set to `user`, and should not be provided if `type` is set to `account`.
attr_accessor :user
def initialize(type: nil, user: nil)
@type = type
@user = user
end
end
# Specifies which fields in the response should be expanded.
attr_accessor :expand
# A name for the secret that's unique within the scope.
attr_accessor :name
# Specifies the scoping of the secret. Requests originating from UI extensions can only access account-scoped secrets or secrets scoped to their own user.
attr_accessor :scope
def initialize(expand: nil, name: nil, scope: nil)
@expand = expand
@name = name
@scope = scope
end
end
class DeleteWhereParams < Stripe::RequestParams
class Scope < Stripe::RequestParams
# The secret scope type.
attr_accessor :type
# The user ID. This field is required if `type` is set to `user`, and should not be provided if `type` is set to `account`.
attr_accessor :user
def initialize(type: nil, user: nil)
@type = type
@user = user
end
end
# Specifies which fields in the response should be expanded.
attr_accessor :expand
# A name for the secret that's unique within the scope.
attr_accessor :name
# Specifies the scoping of the secret. Requests originating from UI extensions can only access account-scoped secrets or secrets scoped to their own user.
attr_accessor :scope
def initialize(expand: nil, name: nil, scope: nil)
@expand = expand
@name = name
@scope = scope
end
end
# Time at which the object was created. Measured in seconds since the Unix epoch.
attr_reader :created
# If true, indicates that this secret has been deleted
attr_reader :deleted
# The Unix timestamp for the expiry time of the secret, after which the secret deletes.
attr_reader :expires_at
# Unique identifier for the object.
attr_reader :id
# Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
attr_reader :livemode
# A name for the secret that's unique within the scope.
attr_reader :name
# String representing the object's type. Objects of the same type share the same value.
attr_reader :object
# The plaintext secret value to be stored.
attr_reader :payload
# Attribute for field scope
attr_reader :scope
# Create or replace a secret in the secret store.
def self.create(params = {}, opts = {})
request_stripe_object(method: :post, path: "/v1/apps/secrets", params: params, opts: opts)
@ -188,8 +47,8 @@ module Stripe
end
# List all secrets stored on the given scope.
def self.list(params = {}, opts = {})
request_stripe_object(method: :get, path: "/v1/apps/secrets", params: params, opts: opts)
def self.list(filters = {}, opts = {})
request_stripe_object(method: :get, path: "/v1/apps/secrets", params: filters, opts: opts)
end
end
end

View File

@ -18,169 +18,5 @@ module Stripe
def self.object_name
"balance"
end
class Available < Stripe::StripeObject
class SourceTypes < Stripe::StripeObject
# Amount coming from [legacy US ACH payments](https://docs.stripe.com/ach-deprecated).
attr_reader :bank_account
# Amount coming from most payment methods, including cards as well as [non-legacy bank debits](https://docs.stripe.com/payments/bank-debits).
attr_reader :card
# Amount coming from [FPX](https://docs.stripe.com/payments/fpx), a Malaysian payment method.
attr_reader :fpx
end
# Balance amount.
attr_reader :amount
# Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).
attr_reader :currency
# Attribute for field source_types
attr_reader :source_types
end
class ConnectReserved < Stripe::StripeObject
class SourceTypes < Stripe::StripeObject
# Amount coming from [legacy US ACH payments](https://docs.stripe.com/ach-deprecated).
attr_reader :bank_account
# Amount coming from most payment methods, including cards as well as [non-legacy bank debits](https://docs.stripe.com/payments/bank-debits).
attr_reader :card
# Amount coming from [FPX](https://docs.stripe.com/payments/fpx), a Malaysian payment method.
attr_reader :fpx
end
# Balance amount.
attr_reader :amount
# Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).
attr_reader :currency
# Attribute for field source_types
attr_reader :source_types
end
class InstantAvailable < Stripe::StripeObject
class NetAvailable < Stripe::StripeObject
class SourceTypes < Stripe::StripeObject
# Amount coming from [legacy US ACH payments](https://docs.stripe.com/ach-deprecated).
attr_reader :bank_account
# Amount coming from most payment methods, including cards as well as [non-legacy bank debits](https://docs.stripe.com/payments/bank-debits).
attr_reader :card
# Amount coming from [FPX](https://docs.stripe.com/payments/fpx), a Malaysian payment method.
attr_reader :fpx
end
# Net balance amount, subtracting fees from platform-set pricing.
attr_reader :amount
# ID of the external account for this net balance (not expandable).
attr_reader :destination
# Attribute for field source_types
attr_reader :source_types
end
class SourceTypes < Stripe::StripeObject
# Amount coming from [legacy US ACH payments](https://docs.stripe.com/ach-deprecated).
attr_reader :bank_account
# Amount coming from most payment methods, including cards as well as [non-legacy bank debits](https://docs.stripe.com/payments/bank-debits).
attr_reader :card
# Amount coming from [FPX](https://docs.stripe.com/payments/fpx), a Malaysian payment method.
attr_reader :fpx
end
# Balance amount.
attr_reader :amount
# Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).
attr_reader :currency
# Breakdown of balance by destination.
attr_reader :net_available
# Attribute for field source_types
attr_reader :source_types
end
class Issuing < Stripe::StripeObject
class Available < Stripe::StripeObject
class SourceTypes < Stripe::StripeObject
# Amount coming from [legacy US ACH payments](https://docs.stripe.com/ach-deprecated).
attr_reader :bank_account
# Amount coming from most payment methods, including cards as well as [non-legacy bank debits](https://docs.stripe.com/payments/bank-debits).
attr_reader :card
# Amount coming from [FPX](https://docs.stripe.com/payments/fpx), a Malaysian payment method.
attr_reader :fpx
end
# Balance amount.
attr_reader :amount
# Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).
attr_reader :currency
# Attribute for field source_types
attr_reader :source_types
end
# Funds that are available for use.
attr_reader :available
end
class Pending < Stripe::StripeObject
class SourceTypes < Stripe::StripeObject
# Amount coming from [legacy US ACH payments](https://docs.stripe.com/ach-deprecated).
attr_reader :bank_account
# Amount coming from most payment methods, including cards as well as [non-legacy bank debits](https://docs.stripe.com/payments/bank-debits).
attr_reader :card
# Amount coming from [FPX](https://docs.stripe.com/payments/fpx), a Malaysian payment method.
attr_reader :fpx
end
# Balance amount.
attr_reader :amount
# Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).
attr_reader :currency
# Attribute for field source_types
attr_reader :source_types
end
class RefundAndDisputePrefunding < Stripe::StripeObject
class Available < Stripe::StripeObject
class SourceTypes < Stripe::StripeObject
# Amount coming from [legacy US ACH payments](https://docs.stripe.com/ach-deprecated).
attr_reader :bank_account
# Amount coming from most payment methods, including cards as well as [non-legacy bank debits](https://docs.stripe.com/payments/bank-debits).
attr_reader :card
# Amount coming from [FPX](https://docs.stripe.com/payments/fpx), a Malaysian payment method.
attr_reader :fpx
end
# Balance amount.
attr_reader :amount
# Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).
attr_reader :currency
# Attribute for field source_types
attr_reader :source_types
end
class Pending < Stripe::StripeObject
class SourceTypes < Stripe::StripeObject
# Amount coming from [legacy US ACH payments](https://docs.stripe.com/ach-deprecated).
attr_reader :bank_account
# Amount coming from most payment methods, including cards as well as [non-legacy bank debits](https://docs.stripe.com/payments/bank-debits).
attr_reader :card
# Amount coming from [FPX](https://docs.stripe.com/payments/fpx), a Malaysian payment method.
attr_reader :fpx
end
# Balance amount.
attr_reader :amount
# Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).
attr_reader :currency
# Attribute for field source_types
attr_reader :source_types
end
# Funds that are available for use.
attr_reader :available
# Funds that are pending
attr_reader :pending
end
# Available funds that you can transfer or pay out automatically by Stripe or explicitly through the [Transfers API](https://stripe.com/docs/api#transfers) or [Payouts API](https://stripe.com/docs/api#payouts). You can find the available balance for each currency and payment type in the `source_types` property.
attr_reader :available
# Funds held due to negative balances on connected accounts where [account.controller.requirement_collection](/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts. You can find the connect reserve balance for each currency and payment type in the `source_types` property.
attr_reader :connect_reserved
# Funds that you can pay out using Instant Payouts.
attr_reader :instant_available
# Attribute for field issuing
attr_reader :issuing
# Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
attr_reader :livemode
# String representing the object's type. Objects of the same type share the same value.
attr_reader :object
# Funds that aren't available in the balance yet. You can find the pending balance for each currency and each payment type in the `source_types` property.
attr_reader :pending
# Attribute for field refund_and_dispute_prefunding
attr_reader :refund_and_dispute_prefunding
end
end

View File

@ -14,119 +14,14 @@ module Stripe
"balance_transaction"
end
class FeeDetail < Stripe::StripeObject
# Amount of the fee, in cents.
attr_reader :amount
# ID of the Connect application that earned the fee.
attr_reader :application
# Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).
attr_reader :currency
# An arbitrary string attached to the object. Often useful for displaying to users.
attr_reader :description
# Type of the fee, one of: `application_fee`, `payment_method_passthrough_fee`, `stripe_fee` or `tax`.
attr_reader :type
end
class ListParams < Stripe::RequestParams
class Created < Stripe::RequestParams
# Minimum value to filter by (exclusive)
attr_accessor :gt
# Minimum value to filter by (inclusive)
attr_accessor :gte
# Maximum value to filter by (exclusive)
attr_accessor :lt
# Maximum value to filter by (inclusive)
attr_accessor :lte
def initialize(gt: nil, gte: nil, lt: nil, lte: nil)
@gt = gt
@gte = gte
@lt = lt
@lte = lte
end
end
# Only return transactions that were created during the given date interval.
attr_accessor :created
# Only return transactions in a certain currency. Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).
attr_accessor :currency
# A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.
attr_accessor :ending_before
# Specifies which fields in the response should be expanded.
attr_accessor :expand
# A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.
attr_accessor :limit
# For automatic Stripe payouts only, only returns transactions that were paid out on the specified payout ID.
attr_accessor :payout
# Only returns the original transaction.
attr_accessor :source
# A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.
attr_accessor :starting_after
# Only returns transactions of the given type. One of: `adjustment`, `advance`, `advance_funding`, `anticipation_repayment`, `application_fee`, `application_fee_refund`, `charge`, `climate_order_purchase`, `climate_order_refund`, `connect_collection_transfer`, `contribution`, `issuing_authorization_hold`, `issuing_authorization_release`, `issuing_dispute`, `issuing_transaction`, `obligation_outbound`, `obligation_reversal_inbound`, `payment`, `payment_failure_refund`, `payment_network_reserve_hold`, `payment_network_reserve_release`, `payment_refund`, `payment_reversal`, `payment_unreconciled`, `payout`, `payout_cancel`, `payout_failure`, `payout_minimum_balance_hold`, `payout_minimum_balance_release`, `refund`, `refund_failure`, `reserve_transaction`, `reserved_funds`, `stripe_fee`, `stripe_fx_fee`, `stripe_balance_payment_debit`, `stripe_balance_payment_debit_reversal`, `tax_fee`, `topup`, `topup_reversal`, `transfer`, `transfer_cancel`, `transfer_failure`, or `transfer_refund`.
attr_accessor :type
def initialize(
created: nil,
currency: nil,
ending_before: nil,
expand: nil,
limit: nil,
payout: nil,
source: nil,
starting_after: nil,
type: nil
)
@created = created
@currency = currency
@ending_before = ending_before
@expand = expand
@limit = limit
@payout = payout
@source = source
@starting_after = starting_after
@type = type
end
end
# Gross amount of this transaction (in cents (or local equivalent)). A positive value represents funds charged to another party, and a negative value represents funds sent to another party.
attr_reader :amount
# The date that the transaction's net funds become available in the Stripe balance.
attr_reader :available_on
# The balance that this transaction impacts.
attr_reader :balance_type
# Time at which the object was created. Measured in seconds since the Unix epoch.
attr_reader :created
# Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).
attr_reader :currency
# An arbitrary string attached to the object. Often useful for displaying to users.
attr_reader :description
# If applicable, this transaction uses an exchange rate. If money converts from currency A to currency B, then the `amount` in currency A, multipled by the `exchange_rate`, equals the `amount` in currency B. For example, if you charge a customer 10.00 EUR, the PaymentIntent's `amount` is `1000` and `currency` is `eur`. If this converts to 12.34 USD in your Stripe account, the BalanceTransaction's `amount` is `1234`, its `currency` is `usd`, and the `exchange_rate` is `1.234`.
attr_reader :exchange_rate
# Fees (in cents (or local equivalent)) paid for this transaction. Represented as a positive integer when assessed.
attr_reader :fee
# Detailed breakdown of fees (in cents (or local equivalent)) paid for this transaction.
attr_reader :fee_details
# Unique identifier for the object.
attr_reader :id
# Net impact to a Stripe balance (in cents (or local equivalent)). A positive value represents incrementing a Stripe balance, and a negative value decrementing a Stripe balance. You can calculate the net impact of a transaction on a balance by `amount` - `fee`
attr_reader :net
# String representing the object's type. Objects of the same type share the same value.
attr_reader :object
# Learn more about how [reporting categories](https://stripe.com/docs/reports/reporting-categories) can help you understand balance transactions from an accounting perspective.
attr_reader :reporting_category
# This transaction relates to the Stripe object.
attr_reader :source
# The transaction's net funds status in the Stripe balance, which are either `available` or `pending`.
attr_reader :status
# Transaction type: `adjustment`, `advance`, `advance_funding`, `anticipation_repayment`, `application_fee`, `application_fee_refund`, `charge`, `climate_order_purchase`, `climate_order_refund`, `connect_collection_transfer`, `contribution`, `issuing_authorization_hold`, `issuing_authorization_release`, `issuing_dispute`, `issuing_transaction`, `obligation_outbound`, `obligation_reversal_inbound`, `payment`, `payment_failure_refund`, `payment_network_reserve_hold`, `payment_network_reserve_release`, `payment_refund`, `payment_reversal`, `payment_unreconciled`, `payout`, `payout_cancel`, `payout_failure`, `payout_minimum_balance_hold`, `payout_minimum_balance_release`, `refund`, `refund_failure`, `reserve_transaction`, `reserved_funds`, `stripe_fee`, `stripe_fx_fee`, `stripe_balance_payment_debit`, `stripe_balance_payment_debit_reversal`, `tax_fee`, `topup`, `topup_reversal`, `transfer`, `transfer_cancel`, `transfer_failure`, or `transfer_refund`. Learn more about [balance transaction types and what they represent](https://stripe.com/docs/reports/balance-transaction-types). To classify transactions for accounting purposes, consider `reporting_category` instead.
attr_reader :type
# Returns a list of transactions that have contributed to the Stripe account balance (e.g., charges, transfers, and so forth). The transactions are returned in sorted order, with the most recent transactions appearing first.
#
# Note that this endpoint was previously called “Balance history” and used the path /v1/balance/history.
def self.list(params = {}, opts = {})
def self.list(filters = {}, opts = {})
request_stripe_object(
method: :get,
path: "/v1/balance_transactions",
params: params,
params: filters,
opts: opts
)
end

View File

@ -4,11 +4,12 @@
module Stripe
# These bank accounts are payment methods on `Customer` objects.
#
# On the other hand [External Accounts](https://docs.stripe.com/api#external_accounts) are transfer
# destinations on `Account` objects for connected accounts.
# On the other hand [External Accounts](https://stripe.com/api#external_accounts) are transfer
# destinations on `Account` objects for accounts where [controller.requirement_collection](https://stripe.com/api/accounts/object#account_object-controller-requirement_collection)
# is `application`, which includes [Custom accounts](https://stripe.com/connect/custom-accounts).
# They can be bank accounts or debit cards as well, and are documented in the links above.
#
# Related guide: [Bank debits and transfers](https://docs.stripe.com/payments/bank-debits-transfers)
# Related guide: [Bank debits and transfers](https://stripe.com/payments/bank-debits-transfers)
class BankAccount < APIResource
include Stripe::APIOperations::Delete
extend Stripe::APIOperations::List
@ -19,111 +20,16 @@ module Stripe
"bank_account"
end
class FutureRequirements < Stripe::StripeObject
class Error < Stripe::StripeObject
# The code for the type of error.
attr_reader :code
# An informative message that indicates the error type and provides additional details about the error.
attr_reader :reason
# The specific user onboarding requirement field (in the requirements hash) that needs to be resolved.
attr_reader :requirement
end
# Fields that need to be collected to keep the external account enabled. If not collected by `current_deadline`, these fields appear in `past_due` as well, and the account is disabled.
attr_reader :currently_due
# Fields that are `currently_due` and need to be collected again because validation or verification failed.
attr_reader :errors
# Fields that weren't collected by `current_deadline`. These fields need to be collected to enable the external account.
attr_reader :past_due
# Fields that might become required depending on the results of verification or review. It's an empty array unless an asynchronous verification is pending. If verification fails, these fields move to `eventually_due`, `currently_due`, or `past_due`. Fields might appear in `eventually_due`, `currently_due`, or `past_due` and in `pending_verification` if verification fails but another verification is still pending.
attr_reader :pending_verification
end
class Requirements < Stripe::StripeObject
class Error < Stripe::StripeObject
# The code for the type of error.
attr_reader :code
# An informative message that indicates the error type and provides additional details about the error.
attr_reader :reason
# The specific user onboarding requirement field (in the requirements hash) that needs to be resolved.
attr_reader :requirement
end
# Fields that need to be collected to keep the external account enabled. If not collected by `current_deadline`, these fields appear in `past_due` as well, and the account is disabled.
attr_reader :currently_due
# Fields that are `currently_due` and need to be collected again because validation or verification failed.
attr_reader :errors
# Fields that weren't collected by `current_deadline`. These fields need to be collected to enable the external account.
attr_reader :past_due
# Fields that might become required depending on the results of verification or review. It's an empty array unless an asynchronous verification is pending. If verification fails, these fields move to `eventually_due`, `currently_due`, or `past_due`. Fields might appear in `eventually_due`, `currently_due`, or `past_due` and in `pending_verification` if verification fails but another verification is still pending.
attr_reader :pending_verification
end
# The account this bank account belongs to. Only applicable on Accounts (not customers or recipients) This property is only available when returned as an [External Account](/api/external_account_bank_accounts/object) where [controller.is_controller](/api/accounts/object#account_object-controller-is_controller) is `true`.
attr_reader :account
# The name of the person or business that owns the bank account.
attr_reader :account_holder_name
# The type of entity that holds the account. This can be either `individual` or `company`.
attr_reader :account_holder_type
# The bank account type. This can only be `checking` or `savings` in most countries. In Japan, this can only be `futsu` or `toza`.
attr_reader :account_type
# A set of available payout methods for this bank account. Only values from this set should be passed as the `method` when creating a payout.
attr_reader :available_payout_methods
# Name of the bank associated with the routing number (e.g., `WELLS FARGO`).
attr_reader :bank_name
# Two-letter ISO code representing the country the bank account is located in.
attr_reader :country
# Three-letter [ISO code for the currency](https://stripe.com/docs/payouts) paid out to the bank account.
attr_reader :currency
# The ID of the customer that the bank account is associated with.
attr_reader :customer
# Whether this bank account is the default external account for its currency.
attr_reader :default_for_currency
# Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same.
attr_reader :fingerprint
# Information about the [upcoming new requirements for the bank account](https://stripe.com/docs/connect/custom-accounts/future-requirements), including what information needs to be collected, and by when.
attr_reader :future_requirements
# Unique identifier for the object.
attr_reader :id
# The last four digits of the bank account number.
attr_reader :last4
# Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
attr_reader :metadata
# String representing the object's type. Objects of the same type share the same value.
attr_reader :object
# Information about the requirements for the bank account, including what information needs to be collected.
attr_reader :requirements
# The routing transit number for the bank account.
attr_reader :routing_number
# For bank accounts, possible values are `new`, `validated`, `verified`, `verification_failed`, or `errored`. A bank account that hasn't had any activity or validation performed is `new`. If Stripe can determine that the bank account exists, its status will be `validated`. Note that there often isnt enough information to know (e.g., for smaller credit unions), and the validation is not always run. If customer bank account verification has succeeded, the bank account status will be `verified`. If the verification failed for any reason, such as microdeposit failure, the status will be `verification_failed`. If a payout sent to this bank account fails, we'll set the status to `errored` and will not continue to send [scheduled payouts](https://stripe.com/docs/payouts#payout-schedule) until the bank details are updated.
#
# For external accounts, possible values are `new`, `errored` and `verification_failed`. If a payout fails, the status is set to `errored` and scheduled payouts are stopped until account details are updated. In the US and India, if we can't [verify the owner of the bank account](https://support.stripe.com/questions/bank-account-ownership-verification), we'll set the status to `verification_failed`. Other validations aren't run against external accounts because they're only used for payouts. This means the other statuses don't apply.
attr_reader :status
# Always true for a deleted object
attr_reader :deleted
def verify(params = {}, opts = {})
request_stripe_object(
method: :post,
path: "#{Customer.resource_url}/#{customer}/sources/#{id}/verify",
params: params,
opts: opts
)
end
def self.verify(customer, id, params = {}, opts = {})
request_stripe_object(
method: :post,
path: "#{Customer.resource_url}/#{customer}/sources/#{id}/verify",
params: params,
opts: opts
)
resp, opts = execute_resource_request(:post, resource_url + "/verify", params, opts)
initialize_from(resp.data, opts)
end
def resource_url
if !customer.nil?
if respond_to?(:customer)
"#{Customer.resource_url}/#{CGI.escape(customer)}/sources/#{CGI.escape(id)}"
elsif !account.nil?
elsif respond_to?(:account)
"#{Account.resource_url}/#{CGI.escape(account)}/external_accounts/#{CGI.escape(id)}"
else
raise InvalidRequestError, "Could not determine which URL to request: [account, customer] fields are all null"
end
end
@ -146,12 +52,12 @@ module Stripe
end
def self.delete(id, params = {}, opts = {})
raise NotImplementedError,
"Bank accounts cannot be deleted without a customer ID or an " \
"account ID. Delete a bank account using " \
"`Customer.delete_source('customer_id', 'bank_account_id')` " \
"or `Account.delete_external_account('account_id', " \
"'bank_account_id')`"
request_stripe_object(
method: :delete,
path: "#{resource_url}/#{id}",
params: params,
opts: opts
)
end
def delete(params = {}, opts = {})
@ -163,12 +69,13 @@ module Stripe
)
end
def self.list(params = {}, opts = {})
raise NotImplementedError,
"Bank accounts cannot be listed without a customer ID or an " \
"account ID. List bank accounts using " \
"`Customer.list_sources('customer_id')` " \
"or `Account.list_external_accounts('account_id')`"
def self.list(filters = {}, opts = {})
request_stripe_object(
method: :delete,
path: resource_url.to_s,
params: filters,
opts: opts
)
end
end
end

View File

@ -1,222 +0,0 @@
# File generated from our OpenAPI spec
# frozen_string_literal: true
module Stripe
module Billing
# A billing alert is a resource that notifies you when a certain usage threshold on a meter is crossed. For example, you might create a billing alert to notify you when a certain user made 100 API requests.
class Alert < APIResource
extend Stripe::APIOperations::Create
extend Stripe::APIOperations::List
OBJECT_NAME = "billing.alert"
def self.object_name
"billing.alert"
end
class UsageThreshold < Stripe::StripeObject
class Filter < Stripe::StripeObject
# Limit the scope of the alert to this customer ID
attr_reader :customer
# Attribute for field type
attr_reader :type
end
# The filters allow limiting the scope of this usage alert. You can only specify up to one filter at this time.
attr_reader :filters
# The value at which this alert will trigger.
attr_reader :gte
# The [Billing Meter](/api/billing/meter) ID whose usage is monitored.
attr_reader :meter
# Defines how the alert will behave.
attr_reader :recurrence
end
class ListParams < Stripe::RequestParams
# Filter results to only include this type of alert.
attr_accessor :alert_type
# A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.
attr_accessor :ending_before
# Specifies which fields in the response should be expanded.
attr_accessor :expand
# A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.
attr_accessor :limit
# Filter results to only include alerts with the given meter.
attr_accessor :meter
# A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.
attr_accessor :starting_after
def initialize(
alert_type: nil,
ending_before: nil,
expand: nil,
limit: nil,
meter: nil,
starting_after: nil
)
@alert_type = alert_type
@ending_before = ending_before
@expand = expand
@limit = limit
@meter = meter
@starting_after = starting_after
end
end
class CreateParams < Stripe::RequestParams
class UsageThreshold < Stripe::RequestParams
class Filter < Stripe::RequestParams
# Limit the scope to this usage alert only to this customer.
attr_accessor :customer
# What type of filter is being applied to this usage alert.
attr_accessor :type
def initialize(customer: nil, type: nil)
@customer = customer
@type = type
end
end
# The filters allows limiting the scope of this usage alert. You can only specify up to one filter at this time.
attr_accessor :filters
# Defines at which value the alert will fire.
attr_accessor :gte
# The [Billing Meter](/api/billing/meter) ID whose usage is monitored.
attr_accessor :meter
# Whether the alert should only fire only once, or once per billing cycle.
attr_accessor :recurrence
def initialize(filters: nil, gte: nil, meter: nil, recurrence: nil)
@filters = filters
@gte = gte
@meter = meter
@recurrence = recurrence
end
end
# The type of alert to create.
attr_accessor :alert_type
# Specifies which fields in the response should be expanded.
attr_accessor :expand
# The title of the alert.
attr_accessor :title
# The configuration of the usage threshold.
attr_accessor :usage_threshold
def initialize(alert_type: nil, expand: nil, title: nil, usage_threshold: nil)
@alert_type = alert_type
@expand = expand
@title = title
@usage_threshold = usage_threshold
end
end
class ActivateParams < Stripe::RequestParams
# Specifies which fields in the response should be expanded.
attr_accessor :expand
def initialize(expand: nil)
@expand = expand
end
end
class ArchiveParams < Stripe::RequestParams
# Specifies which fields in the response should be expanded.
attr_accessor :expand
def initialize(expand: nil)
@expand = expand
end
end
class DeactivateParams < Stripe::RequestParams
# Specifies which fields in the response should be expanded.
attr_accessor :expand
def initialize(expand: nil)
@expand = expand
end
end
# Defines the type of the alert.
attr_reader :alert_type
# Unique identifier for the object.
attr_reader :id
# Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
attr_reader :livemode
# String representing the object's type. Objects of the same type share the same value.
attr_reader :object
# Status of the alert. This can be active, inactive or archived.
attr_reader :status
# Title of the alert.
attr_reader :title
# Encapsulates configuration of the alert to monitor usage on a specific [Billing Meter](https://stripe.com/docs/api/billing/meter).
attr_reader :usage_threshold
# Reactivates this alert, allowing it to trigger again.
def activate(params = {}, opts = {})
request_stripe_object(
method: :post,
path: format("/v1/billing/alerts/%<id>s/activate", { id: CGI.escape(self["id"]) }),
params: params,
opts: opts
)
end
# Reactivates this alert, allowing it to trigger again.
def self.activate(id, params = {}, opts = {})
request_stripe_object(
method: :post,
path: format("/v1/billing/alerts/%<id>s/activate", { id: CGI.escape(id) }),
params: params,
opts: opts
)
end
# Archives this alert, removing it from the list view and APIs. This is non-reversible.
def archive(params = {}, opts = {})
request_stripe_object(
method: :post,
path: format("/v1/billing/alerts/%<id>s/archive", { id: CGI.escape(self["id"]) }),
params: params,
opts: opts
)
end
# Archives this alert, removing it from the list view and APIs. This is non-reversible.
def self.archive(id, params = {}, opts = {})
request_stripe_object(
method: :post,
path: format("/v1/billing/alerts/%<id>s/archive", { id: CGI.escape(id) }),
params: params,
opts: opts
)
end
# Creates a billing alert
def self.create(params = {}, opts = {})
request_stripe_object(method: :post, path: "/v1/billing/alerts", params: params, opts: opts)
end
# Deactivates this alert, preventing it from triggering.
def deactivate(params = {}, opts = {})
request_stripe_object(
method: :post,
path: format("/v1/billing/alerts/%<id>s/deactivate", { id: CGI.escape(self["id"]) }),
params: params,
opts: opts
)
end
# Deactivates this alert, preventing it from triggering.
def self.deactivate(id, params = {}, opts = {})
request_stripe_object(
method: :post,
path: format("/v1/billing/alerts/%<id>s/deactivate", { id: CGI.escape(id) }),
params: params,
opts: opts
)
end
# Lists billing active and inactive alerts
def self.list(params = {}, opts = {})
request_stripe_object(method: :get, path: "/v1/billing/alerts", params: params, opts: opts)
end
end
end
end

View File

@ -1,26 +0,0 @@
# File generated from our OpenAPI spec
# frozen_string_literal: true
module Stripe
module Billing
class AlertTriggered < APIResource
OBJECT_NAME = "billing.alert_triggered"
def self.object_name
"billing.alert_triggered"
end
# A billing alert is a resource that notifies you when a certain usage threshold on a meter is crossed. For example, you might create a billing alert to notify you when a certain user made 100 API requests.
attr_reader :alert
# Time at which the object was created. Measured in seconds since the Unix epoch.
attr_reader :created
# ID of customer for which the alert triggered
attr_reader :customer
# Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
attr_reader :livemode
# String representing the object's type. Objects of the same type share the same value.
attr_reader :object
# The value triggering the alert
attr_reader :value
end
end
end

View File

@ -1,54 +0,0 @@
# File generated from our OpenAPI spec
# frozen_string_literal: true
module Stripe
module Billing
# Indicates the billing credit balance for billing credits granted to a customer.
class CreditBalanceSummary < SingletonAPIResource
OBJECT_NAME = "billing.credit_balance_summary"
def self.object_name
"billing.credit_balance_summary"
end
class Balance < Stripe::StripeObject
class AvailableBalance < Stripe::StripeObject
class Monetary < Stripe::StripeObject
# Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).
attr_reader :currency
# A positive integer representing the amount.
attr_reader :value
end
# The monetary amount.
attr_reader :monetary
# The type of this amount. We currently only support `monetary` billing credits.
attr_reader :type
end
class LedgerBalance < Stripe::StripeObject
class Monetary < Stripe::StripeObject
# Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).
attr_reader :currency
# A positive integer representing the amount.
attr_reader :value
end
# The monetary amount.
attr_reader :monetary
# The type of this amount. We currently only support `monetary` billing credits.
attr_reader :type
end
# Attribute for field available_balance
attr_reader :available_balance
# Attribute for field ledger_balance
attr_reader :ledger_balance
end
# The billing credit balances. One entry per credit grant currency. If a customer only has credit grants in a single currency, then this will have a single balance entry.
attr_reader :balances
# The customer the balance is for.
attr_reader :customer
# Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
attr_reader :livemode
# String representing the object's type. Objects of the same type share the same value.
attr_reader :object
end
end
end

View File

@ -1,133 +0,0 @@
# File generated from our OpenAPI spec
# frozen_string_literal: true
module Stripe
module Billing
# A credit balance transaction is a resource representing a transaction (either a credit or a debit) against an existing credit grant.
class CreditBalanceTransaction < APIResource
extend Stripe::APIOperations::List
OBJECT_NAME = "billing.credit_balance_transaction"
def self.object_name
"billing.credit_balance_transaction"
end
class Credit < Stripe::StripeObject
class Amount < Stripe::StripeObject
class Monetary < Stripe::StripeObject
# Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).
attr_reader :currency
# A positive integer representing the amount.
attr_reader :value
end
# The monetary amount.
attr_reader :monetary
# The type of this amount. We currently only support `monetary` billing credits.
attr_reader :type
end
class CreditsApplicationInvoiceVoided < Stripe::StripeObject
# The invoice to which the reinstated billing credits were originally applied.
attr_reader :invoice
# The invoice line item to which the reinstated billing credits were originally applied.
attr_reader :invoice_line_item
end
# Attribute for field amount
attr_reader :amount
# Details of the invoice to which the reinstated credits were originally applied. Only present if `type` is `credits_application_invoice_voided`.
attr_reader :credits_application_invoice_voided
# The type of credit transaction.
attr_reader :type
end
class Debit < Stripe::StripeObject
class Amount < Stripe::StripeObject
class Monetary < Stripe::StripeObject
# Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).
attr_reader :currency
# A positive integer representing the amount.
attr_reader :value
end
# The monetary amount.
attr_reader :monetary
# The type of this amount. We currently only support `monetary` billing credits.
attr_reader :type
end
class CreditsApplied < Stripe::StripeObject
# The invoice to which the billing credits were applied.
attr_reader :invoice
# The invoice line item to which the billing credits were applied.
attr_reader :invoice_line_item
end
# Attribute for field amount
attr_reader :amount
# Details of how the billing credits were applied to an invoice. Only present if `type` is `credits_applied`.
attr_reader :credits_applied
# The type of debit transaction.
attr_reader :type
end
class ListParams < Stripe::RequestParams
# The credit grant for which to fetch credit balance transactions.
attr_accessor :credit_grant
# The customer for which to fetch credit balance transactions.
attr_accessor :customer
# A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.
attr_accessor :ending_before
# Specifies which fields in the response should be expanded.
attr_accessor :expand
# A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.
attr_accessor :limit
# A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.
attr_accessor :starting_after
def initialize(
credit_grant: nil,
customer: nil,
ending_before: nil,
expand: nil,
limit: nil,
starting_after: nil
)
@credit_grant = credit_grant
@customer = customer
@ending_before = ending_before
@expand = expand
@limit = limit
@starting_after = starting_after
end
end
# Time at which the object was created. Measured in seconds since the Unix epoch.
attr_reader :created
# Credit details for this credit balance transaction. Only present if type is `credit`.
attr_reader :credit
# The credit grant associated with this credit balance transaction.
attr_reader :credit_grant
# Debit details for this credit balance transaction. Only present if type is `debit`.
attr_reader :debit
# The effective time of this credit balance transaction.
attr_reader :effective_at
# Unique identifier for the object.
attr_reader :id
# Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
attr_reader :livemode
# String representing the object's type. Objects of the same type share the same value.
attr_reader :object
# ID of the test clock this credit balance transaction belongs to.
attr_reader :test_clock
# The type of credit balance transaction (credit or debit).
attr_reader :type
# Retrieve a list of credit balance transactions.
def self.list(params = {}, opts = {})
request_stripe_object(
method: :get,
path: "/v1/billing/credit_balance_transactions",
params: params,
opts: opts
)
end
end
end
end

View File

@ -1,307 +0,0 @@
# File generated from our OpenAPI spec
# frozen_string_literal: true
module Stripe
module Billing
# A credit grant is an API resource that documents the allocation of some billing credits to a customer.
#
# Related guide: [Billing credits](https://docs.stripe.com/billing/subscriptions/usage-based/billing-credits)
class CreditGrant < APIResource
extend Stripe::APIOperations::Create
extend Stripe::APIOperations::List
include Stripe::APIOperations::Save
OBJECT_NAME = "billing.credit_grant"
def self.object_name
"billing.credit_grant"
end
class Amount < Stripe::StripeObject
class Monetary < Stripe::StripeObject
# Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).
attr_reader :currency
# A positive integer representing the amount.
attr_reader :value
end
# The monetary amount.
attr_reader :monetary
# The type of this amount. We currently only support `monetary` billing credits.
attr_reader :type
end
class ApplicabilityConfig < Stripe::StripeObject
class Scope < Stripe::StripeObject
class Price < Stripe::StripeObject
# Unique identifier for the object.
attr_reader :id
end
# The price type that credit grants can apply to. We currently only support the `metered` price type. This refers to prices that have a [Billing Meter](https://docs.stripe.com/api/billing/meter) attached to them. Cannot be used in combination with `prices`.
attr_reader :price_type
# The prices that credit grants can apply to. We currently only support `metered` prices. This refers to prices that have a [Billing Meter](https://docs.stripe.com/api/billing/meter) attached to them. Cannot be used in combination with `price_type`.
attr_reader :prices
end
# Attribute for field scope
attr_reader :scope
end
class ListParams < Stripe::RequestParams
# Only return credit grants for this customer.
attr_accessor :customer
# A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.
attr_accessor :ending_before
# Specifies which fields in the response should be expanded.
attr_accessor :expand
# A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.
attr_accessor :limit
# A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.
attr_accessor :starting_after
def initialize(
customer: nil,
ending_before: nil,
expand: nil,
limit: nil,
starting_after: nil
)
@customer = customer
@ending_before = ending_before
@expand = expand
@limit = limit
@starting_after = starting_after
end
end
class CreateParams < Stripe::RequestParams
class Amount < Stripe::RequestParams
class Monetary < Stripe::RequestParams
# Three-letter [ISO code for the currency](https://stripe.com/docs/currencies) of the `value` parameter.
attr_accessor :currency
# A positive integer representing the amount of the credit grant.
attr_accessor :value
def initialize(currency: nil, value: nil)
@currency = currency
@value = value
end
end
# The monetary amount.
attr_accessor :monetary
# Specify the type of this amount. We currently only support `monetary` billing credits.
attr_accessor :type
def initialize(monetary: nil, type: nil)
@monetary = monetary
@type = type
end
end
class ApplicabilityConfig < Stripe::RequestParams
class Scope < Stripe::RequestParams
class Price < Stripe::RequestParams
# The price ID this credit grant should apply to.
attr_accessor :id
def initialize(id: nil)
@id = id
end
end
# The price type that credit grants can apply to. We currently only support the `metered` price type. Cannot be used in combination with `prices`.
attr_accessor :price_type
# A list of prices that the credit grant can apply to. We currently only support the `metered` prices. Cannot be used in combination with `price_type`.
attr_accessor :prices
def initialize(price_type: nil, prices: nil)
@price_type = price_type
@prices = prices
end
end
# Specify the scope of this applicability config.
attr_accessor :scope
def initialize(scope: nil)
@scope = scope
end
end
# Amount of this credit grant.
attr_accessor :amount
# Configuration specifying what this credit grant applies to. We currently only support `metered` prices that have a [Billing Meter](https://docs.stripe.com/api/billing/meter) attached to them.
attr_accessor :applicability_config
# The category of this credit grant.
attr_accessor :category
# ID of the customer to receive the billing credits.
attr_accessor :customer
# The time when the billing credits become effective-when they're eligible for use. It defaults to the current timestamp if not specified.
attr_accessor :effective_at
# Specifies which fields in the response should be expanded.
attr_accessor :expand
# The time when the billing credits expire. If not specified, the billing credits don't expire.
attr_accessor :expires_at
# Set of key-value pairs that you can attach to an object. You can use this to store additional information about the object (for example, cost basis) in a structured format.
attr_accessor :metadata
# A descriptive name shown in the Dashboard.
attr_accessor :name
# The desired priority for applying this credit grant. If not specified, it will be set to the default value of 50. The highest priority is 0 and the lowest is 100.
attr_accessor :priority
def initialize(
amount: nil,
applicability_config: nil,
category: nil,
customer: nil,
effective_at: nil,
expand: nil,
expires_at: nil,
metadata: nil,
name: nil,
priority: nil
)
@amount = amount
@applicability_config = applicability_config
@category = category
@customer = customer
@effective_at = effective_at
@expand = expand
@expires_at = expires_at
@metadata = metadata
@name = name
@priority = priority
end
end
class UpdateParams < Stripe::RequestParams
# Specifies which fields in the response should be expanded.
attr_accessor :expand
# The time when the billing credits created by this credit grant expire. If set to empty, the billing credits never expire.
attr_accessor :expires_at
# Set of key-value pairs you can attach to an object. You can use this to store additional information about the object (for example, cost basis) in a structured format.
attr_accessor :metadata
def initialize(expand: nil, expires_at: nil, metadata: nil)
@expand = expand
@expires_at = expires_at
@metadata = metadata
end
end
class ExpireParams < Stripe::RequestParams
# Specifies which fields in the response should be expanded.
attr_accessor :expand
def initialize(expand: nil)
@expand = expand
end
end
class VoidGrantParams < Stripe::RequestParams
# Specifies which fields in the response should be expanded.
attr_accessor :expand
def initialize(expand: nil)
@expand = expand
end
end
# Attribute for field amount
attr_reader :amount
# Attribute for field applicability_config
attr_reader :applicability_config
# The category of this credit grant. This is for tracking purposes and isn't displayed to the customer.
attr_reader :category
# Time at which the object was created. Measured in seconds since the Unix epoch.
attr_reader :created
# ID of the customer receiving the billing credits.
attr_reader :customer
# The time when the billing credits become effective-when they're eligible for use.
attr_reader :effective_at
# The time when the billing credits expire. If not present, the billing credits don't expire.
attr_reader :expires_at
# Unique identifier for the object.
attr_reader :id
# Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
attr_reader :livemode
# Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
attr_reader :metadata
# A descriptive name shown in dashboard.
attr_reader :name
# String representing the object's type. Objects of the same type share the same value.
attr_reader :object
# The priority for applying this credit grant. The highest priority is 0 and the lowest is 100.
attr_reader :priority
# ID of the test clock this credit grant belongs to.
attr_reader :test_clock
# Time at which the object was last updated. Measured in seconds since the Unix epoch.
attr_reader :updated
# The time when this credit grant was voided. If not present, the credit grant hasn't been voided.
attr_reader :voided_at
# Creates a credit grant.
def self.create(params = {}, opts = {})
request_stripe_object(
method: :post,
path: "/v1/billing/credit_grants",
params: params,
opts: opts
)
end
# Expires a credit grant.
def expire(params = {}, opts = {})
request_stripe_object(
method: :post,
path: format("/v1/billing/credit_grants/%<id>s/expire", { id: CGI.escape(self["id"]) }),
params: params,
opts: opts
)
end
# Expires a credit grant.
def self.expire(id, params = {}, opts = {})
request_stripe_object(
method: :post,
path: format("/v1/billing/credit_grants/%<id>s/expire", { id: CGI.escape(id) }),
params: params,
opts: opts
)
end
# Retrieve a list of credit grants.
def self.list(params = {}, opts = {})
request_stripe_object(
method: :get,
path: "/v1/billing/credit_grants",
params: params,
opts: opts
)
end
# Updates a credit grant.
def self.update(id, params = {}, opts = {})
request_stripe_object(
method: :post,
path: format("/v1/billing/credit_grants/%<id>s", { id: CGI.escape(id) }),
params: params,
opts: opts
)
end
# Voids a credit grant.
def void_grant(params = {}, opts = {})
request_stripe_object(
method: :post,
path: format("/v1/billing/credit_grants/%<id>s/void", { id: CGI.escape(self["id"]) }),
params: params,
opts: opts
)
end
# Voids a credit grant.
def self.void_grant(id, params = {}, opts = {})
request_stripe_object(
method: :post,
path: format("/v1/billing/credit_grants/%<id>s/void", { id: CGI.escape(id) }),
params: params,
opts: opts
)
end
end
end
end

View File

@ -3,9 +3,7 @@
module Stripe
module Billing
# Meters specify how to aggregate meter events over a billing period. Meter events represent the actions that customers take in your system. Meters attach to prices and form the basis of the bill.
#
# Related guide: [Usage based billing](https://docs.stripe.com/billing/subscriptions/usage-based)
# A billing meter is a resource that allows you to track usage of a particular event. For example, you might create a billing meter to track the number of API calls made by a particular user. You can then attach the billing meter to a price and attach the price to a subscription to charge the user for the number of API calls they make.
class Meter < APIResource
extend Stripe::APIOperations::Create
extend Stripe::APIOperations::List
@ -21,181 +19,12 @@ module Stripe
operations: %i[list],
resource_plural: "event_summaries"
class CustomerMapping < Stripe::StripeObject
# The key in the meter event payload to use for mapping the event to a customer.
attr_reader :event_payload_key
# The method for mapping a meter event to a customer.
attr_reader :type
end
class DefaultAggregation < Stripe::StripeObject
# Specifies how events are aggregated.
attr_reader :formula
end
class StatusTransitions < Stripe::StripeObject
# The time the meter was deactivated, if any. Measured in seconds since Unix epoch.
attr_reader :deactivated_at
end
class ValueSettings < Stripe::StripeObject
# The key in the meter event payload to use as the value for this meter.
attr_reader :event_payload_key
end
class ListParams < Stripe::RequestParams
# A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.
attr_accessor :ending_before
# Specifies which fields in the response should be expanded.
attr_accessor :expand
# A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.
attr_accessor :limit
# A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.
attr_accessor :starting_after
# Filter results to only include meters with the given status.
attr_accessor :status
def initialize(
ending_before: nil,
expand: nil,
limit: nil,
starting_after: nil,
status: nil
)
@ending_before = ending_before
@expand = expand
@limit = limit
@starting_after = starting_after
@status = status
end
end
class CreateParams < Stripe::RequestParams
class CustomerMapping < Stripe::RequestParams
# The key in the meter event payload to use for mapping the event to a customer.
attr_accessor :event_payload_key
# The method for mapping a meter event to a customer. Must be `by_id`.
attr_accessor :type
def initialize(event_payload_key: nil, type: nil)
@event_payload_key = event_payload_key
@type = type
end
end
class DefaultAggregation < Stripe::RequestParams
# Specifies how events are aggregated. Allowed values are `count` to count the number of events, `sum` to sum each event's value and `last` to take the last event's value in the window.
attr_accessor :formula
def initialize(formula: nil)
@formula = formula
end
end
class ValueSettings < Stripe::RequestParams
# The key in the usage event payload to use as the value for this meter. For example, if the event payload contains usage on a `bytes_used` field, then set the event_payload_key to "bytes_used".
attr_accessor :event_payload_key
def initialize(event_payload_key: nil)
@event_payload_key = event_payload_key
end
end
# Fields that specify how to map a meter event to a customer.
attr_accessor :customer_mapping
# The default settings to aggregate a meter's events with.
attr_accessor :default_aggregation
# The meters name. Not visible to the customer.
attr_accessor :display_name
# The name of the meter event to record usage for. Corresponds with the `event_name` field on meter events.
attr_accessor :event_name
# The time window to pre-aggregate meter events for, if any.
attr_accessor :event_time_window
# Specifies which fields in the response should be expanded.
attr_accessor :expand
# Fields that specify how to calculate a meter event's value.
attr_accessor :value_settings
def initialize(
customer_mapping: nil,
default_aggregation: nil,
display_name: nil,
event_name: nil,
event_time_window: nil,
expand: nil,
value_settings: nil
)
@customer_mapping = customer_mapping
@default_aggregation = default_aggregation
@display_name = display_name
@event_name = event_name
@event_time_window = event_time_window
@expand = expand
@value_settings = value_settings
end
end
class UpdateParams < Stripe::RequestParams
# The meters name. Not visible to the customer.
attr_accessor :display_name
# Specifies which fields in the response should be expanded.
attr_accessor :expand
def initialize(display_name: nil, expand: nil)
@display_name = display_name
@expand = expand
end
end
class DeactivateParams < Stripe::RequestParams
# Specifies which fields in the response should be expanded.
attr_accessor :expand
def initialize(expand: nil)
@expand = expand
end
end
class ReactivateParams < Stripe::RequestParams
# Specifies which fields in the response should be expanded.
attr_accessor :expand
def initialize(expand: nil)
@expand = expand
end
end
# Time at which the object was created. Measured in seconds since the Unix epoch.
attr_reader :created
# Attribute for field customer_mapping
attr_reader :customer_mapping
# Attribute for field default_aggregation
attr_reader :default_aggregation
# The meter's name.
attr_reader :display_name
# The name of the meter event to record usage for. Corresponds with the `event_name` field on meter events.
attr_reader :event_name
# The time window to pre-aggregate meter events for, if any.
attr_reader :event_time_window
# Unique identifier for the object.
attr_reader :id
# Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
attr_reader :livemode
# String representing the object's type. Objects of the same type share the same value.
attr_reader :object
# The meter's status.
attr_reader :status
# Attribute for field status_transitions
attr_reader :status_transitions
# Time at which the object was last updated. Measured in seconds since the Unix epoch.
attr_reader :updated
# Attribute for field value_settings
attr_reader :value_settings
# Creates a billing meter.
# Creates a billing meter
def self.create(params = {}, opts = {})
request_stripe_object(method: :post, path: "/v1/billing/meters", params: params, opts: opts)
end
# When a meter is deactivated, no more meter events will be accepted for this meter. You can't attach a deactivated meter to a price.
# Deactivates a billing meter
def deactivate(params = {}, opts = {})
request_stripe_object(
method: :post,
@ -205,7 +34,7 @@ module Stripe
)
end
# When a meter is deactivated, no more meter events will be accepted for this meter. You can't attach a deactivated meter to a price.
# Deactivates a billing meter
def self.deactivate(id, params = {}, opts = {})
request_stripe_object(
method: :post,
@ -216,11 +45,11 @@ module Stripe
end
# Retrieve a list of billing meters.
def self.list(params = {}, opts = {})
request_stripe_object(method: :get, path: "/v1/billing/meters", params: params, opts: opts)
def self.list(filters = {}, opts = {})
request_stripe_object(method: :get, path: "/v1/billing/meters", params: filters, opts: opts)
end
# When a meter is reactivated, events for this meter can be accepted and you can attach the meter to a price.
# Reactivates a billing meter
def reactivate(params = {}, opts = {})
request_stripe_object(
method: :post,
@ -230,7 +59,7 @@ module Stripe
)
end
# When a meter is reactivated, events for this meter can be accepted and you can attach the meter to a price.
# Reactivates a billing meter
def self.reactivate(id, params = {}, opts = {})
request_stripe_object(
method: :post,
@ -240,7 +69,7 @@ module Stripe
)
end
# Updates a billing meter.
# Updates a billing meter
def self.update(id, params = {}, opts = {})
request_stripe_object(
method: :post,

View File

@ -3,7 +3,8 @@
module Stripe
module Billing
# Meter events represent actions that customers take in your system. You can use meter events to bill a customer based on their usage. Meter events are associated with billing meters, which define both the contents of the event's payload and how to aggregate those events.
# A billing meter event represents a customer's usage of a product. Meter events are used to bill a customer based on their usage.
# Meter events are associated with billing meters, which define the shape of the event's payload and how those events are aggregated for billing.
class MeterEvent < APIResource
extend Stripe::APIOperations::Create
@ -12,42 +13,7 @@ module Stripe
"billing.meter_event"
end
class CreateParams < Stripe::RequestParams
# The name of the meter event. Corresponds with the `event_name` field on a meter.
attr_accessor :event_name
# Specifies which fields in the response should be expanded.
attr_accessor :expand
# A unique identifier for the event. If not provided, one is generated. We recommend using UUID-like identifiers. We will enforce uniqueness within a rolling period of at least 24 hours. The enforcement of uniqueness primarily addresses issues arising from accidental retries or other problems occurring within extremely brief time intervals. This approach helps prevent duplicate entries and ensures data integrity in high-frequency operations.
attr_accessor :identifier
# The payload of the event. This must contain the fields corresponding to a meter's `customer_mapping.event_payload_key` (default is `stripe_customer_id`) and `value_settings.event_payload_key` (default is `value`). Read more about the [payload](https://docs.stripe.com/billing/subscriptions/usage-based/recording-usage#payload-key-overrides).
attr_accessor :payload
# The time of the event. Measured in seconds since the Unix epoch. Must be within the past 35 calendar days or up to 5 minutes in the future. Defaults to current timestamp if not specified.
attr_accessor :timestamp
def initialize(event_name: nil, expand: nil, identifier: nil, payload: nil, timestamp: nil)
@event_name = event_name
@expand = expand
@identifier = identifier
@payload = payload
@timestamp = timestamp
end
end
# Time at which the object was created. Measured in seconds since the Unix epoch.
attr_reader :created
# The name of the meter event. Corresponds with the `event_name` field on a meter.
attr_reader :event_name
# A unique identifier for the event.
attr_reader :identifier
# Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
attr_reader :livemode
# String representing the object's type. Objects of the same type share the same value.
attr_reader :object
# The payload of the event. This contains the fields corresponding to a meter's `customer_mapping.event_payload_key` (default is `stripe_customer_id`) and `value_settings.event_payload_key` (default is `value`). Read more about the [payload](https://stripe.com/docs/billing/subscriptions/usage-based/recording-usage#payload-key-overrides).
attr_reader :payload
# The timestamp passed in when creating the event. Measured in seconds since the Unix epoch.
attr_reader :timestamp
# Creates a billing meter event.
# Creates a billing meter event
def self.create(params = {}, opts = {})
request_stripe_object(
method: :post,

View File

@ -12,50 +12,7 @@ module Stripe
"billing.meter_event_adjustment"
end
class Cancel < Stripe::StripeObject
# Unique identifier for the event.
attr_reader :identifier
end
class CreateParams < Stripe::RequestParams
class Cancel < Stripe::RequestParams
# Unique identifier for the event. You can only cancel events within 24 hours of Stripe receiving them.
attr_accessor :identifier
def initialize(identifier: nil)
@identifier = identifier
end
end
# Specifies which event to cancel.
attr_accessor :cancel
# The name of the meter event. Corresponds with the `event_name` field on a meter.
attr_accessor :event_name
# Specifies which fields in the response should be expanded.
attr_accessor :expand
# Specifies whether to cancel a single event or a range of events for a time period. Time period cancellation is not supported yet.
attr_accessor :type
def initialize(cancel: nil, event_name: nil, expand: nil, type: nil)
@cancel = cancel
@event_name = event_name
@expand = expand
@type = type
end
end
# Specifies which event to cancel.
attr_reader :cancel
# The name of the meter event. Corresponds with the `event_name` field on a meter.
attr_reader :event_name
# Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
attr_reader :livemode
# String representing the object's type. Objects of the same type share the same value.
attr_reader :object
# The meter event adjustment's status.
attr_reader :status
# Specifies whether to cancel a single event or a range of events for a time period. Time period cancellation is not supported yet.
attr_reader :type
# Creates a billing meter event adjustment.
# Creates a billing meter event adjustment
def self.create(params = {}, opts = {})
request_stripe_object(
method: :post,

View File

@ -5,28 +5,11 @@ module Stripe
module Billing
# A billing meter event summary represents an aggregated view of a customer's billing meter events within a specified timeframe. It indicates how much
# usage was accrued by a customer for that period.
#
# Note: Meters events are aggregated asynchronously so the meter event summaries provide an eventually consistent view of the reported usage.
class MeterEventSummary < APIResource
OBJECT_NAME = "billing.meter_event_summary"
def self.object_name
"billing.meter_event_summary"
end
# Aggregated value of all the events within `start_time` (inclusive) and `end_time` (inclusive). The aggregation strategy is defined on meter via `default_aggregation`.
attr_reader :aggregated_value
# End timestamp for this event summary (exclusive). Must be aligned with minute boundaries.
attr_reader :end_time
# Unique identifier for the object.
attr_reader :id
# Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
attr_reader :livemode
# The meter associated with this event summary.
attr_reader :meter
# String representing the object's type. Objects of the same type share the same value.
attr_reader :object
# Start timestamp for this event summary (inclusive). Must be aligned with minute boundaries.
attr_reader :start_time
end
end
end

View File

@ -14,559 +14,6 @@ module Stripe
"billing_portal.configuration"
end
class BusinessProfile < Stripe::StripeObject
# The messaging shown to customers in the portal.
attr_reader :headline
# A link to the businesss publicly available privacy policy.
attr_reader :privacy_policy_url
# A link to the businesss publicly available terms of service.
attr_reader :terms_of_service_url
end
class Features < Stripe::StripeObject
class CustomerUpdate < Stripe::StripeObject
# The types of customer updates that are supported. When empty, customers are not updateable.
attr_reader :allowed_updates
# Whether the feature is enabled.
attr_reader :enabled
end
class InvoiceHistory < Stripe::StripeObject
# Whether the feature is enabled.
attr_reader :enabled
end
class PaymentMethodUpdate < Stripe::StripeObject
# Whether the feature is enabled.
attr_reader :enabled
end
class SubscriptionCancel < Stripe::StripeObject
class CancellationReason < Stripe::StripeObject
# Whether the feature is enabled.
attr_reader :enabled
# Which cancellation reasons will be given as options to the customer.
attr_reader :options
end
# Attribute for field cancellation_reason
attr_reader :cancellation_reason
# Whether the feature is enabled.
attr_reader :enabled
# Whether to cancel subscriptions immediately or at the end of the billing period.
attr_reader :mode
# Whether to create prorations when canceling subscriptions. Possible values are `none` and `create_prorations`.
attr_reader :proration_behavior
end
class SubscriptionUpdate < Stripe::StripeObject
class Product < Stripe::StripeObject
# The list of price IDs which, when subscribed to, a subscription can be updated.
attr_reader :prices
# The product ID.
attr_reader :product
end
class ScheduleAtPeriodEnd < Stripe::StripeObject
class Condition < Stripe::StripeObject
# The type of condition.
attr_reader :type
end
# List of conditions. When any condition is true, an update will be scheduled at the end of the current period.
attr_reader :conditions
end
# The types of subscription updates that are supported for items listed in the `products` attribute. When empty, subscriptions are not updateable.
attr_reader :default_allowed_updates
# Whether the feature is enabled.
attr_reader :enabled
# The list of up to 10 products that support subscription updates.
attr_reader :products
# Determines how to handle prorations resulting from subscription updates. Valid values are `none`, `create_prorations`, and `always_invoice`. Defaults to a value of `none` if you don't set it during creation.
attr_reader :proration_behavior
# Attribute for field schedule_at_period_end
attr_reader :schedule_at_period_end
end
# Attribute for field customer_update
attr_reader :customer_update
# Attribute for field invoice_history
attr_reader :invoice_history
# Attribute for field payment_method_update
attr_reader :payment_method_update
# Attribute for field subscription_cancel
attr_reader :subscription_cancel
# Attribute for field subscription_update
attr_reader :subscription_update
end
class LoginPage < Stripe::StripeObject
# If `true`, a shareable `url` will be generated that will take your customers to a hosted login page for the customer portal.
#
# If `false`, the previously generated `url`, if any, will be deactivated.
attr_reader :enabled
# A shareable URL to the hosted portal login page. Your customers will be able to log in with their [email](https://stripe.com/docs/api/customers/object#customer_object-email) and receive a link to their customer portal.
attr_reader :url
end
class ListParams < Stripe::RequestParams
# Only return configurations that are active or inactive (e.g., pass `true` to only list active configurations).
attr_accessor :active
# A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.
attr_accessor :ending_before
# Specifies which fields in the response should be expanded.
attr_accessor :expand
# Only return the default or non-default configurations (e.g., pass `true` to only list the default configuration).
attr_accessor :is_default
# A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.
attr_accessor :limit
# A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.
attr_accessor :starting_after
def initialize(
active: nil,
ending_before: nil,
expand: nil,
is_default: nil,
limit: nil,
starting_after: nil
)
@active = active
@ending_before = ending_before
@expand = expand
@is_default = is_default
@limit = limit
@starting_after = starting_after
end
end
class CreateParams < Stripe::RequestParams
class BusinessProfile < Stripe::RequestParams
# The messaging shown to customers in the portal.
attr_accessor :headline
# A link to the businesss publicly available privacy policy.
attr_accessor :privacy_policy_url
# A link to the businesss publicly available terms of service.
attr_accessor :terms_of_service_url
def initialize(headline: nil, privacy_policy_url: nil, terms_of_service_url: nil)
@headline = headline
@privacy_policy_url = privacy_policy_url
@terms_of_service_url = terms_of_service_url
end
end
class Features < Stripe::RequestParams
class CustomerUpdate < Stripe::RequestParams
# The types of customer updates that are supported. When empty, customers are not updateable.
attr_accessor :allowed_updates
# Whether the feature is enabled.
attr_accessor :enabled
def initialize(allowed_updates: nil, enabled: nil)
@allowed_updates = allowed_updates
@enabled = enabled
end
end
class InvoiceHistory < Stripe::RequestParams
# Whether the feature is enabled.
attr_accessor :enabled
def initialize(enabled: nil)
@enabled = enabled
end
end
class PaymentMethodUpdate < Stripe::RequestParams
# Whether the feature is enabled.
attr_accessor :enabled
def initialize(enabled: nil)
@enabled = enabled
end
end
class SubscriptionCancel < Stripe::RequestParams
class CancellationReason < Stripe::RequestParams
# Whether the feature is enabled.
attr_accessor :enabled
# Which cancellation reasons will be given as options to the customer.
attr_accessor :options
def initialize(enabled: nil, options: nil)
@enabled = enabled
@options = options
end
end
# Whether the cancellation reasons will be collected in the portal and which options are exposed to the customer
attr_accessor :cancellation_reason
# Whether the feature is enabled.
attr_accessor :enabled
# Whether to cancel subscriptions immediately or at the end of the billing period.
attr_accessor :mode
# Whether to create prorations when canceling subscriptions. Possible values are `none` and `create_prorations`, which is only compatible with `mode=immediately`. Passing `always_invoice` will result in an error. No prorations are generated when canceling a subscription at the end of its natural billing period.
attr_accessor :proration_behavior
def initialize(
cancellation_reason: nil,
enabled: nil,
mode: nil,
proration_behavior: nil
)
@cancellation_reason = cancellation_reason
@enabled = enabled
@mode = mode
@proration_behavior = proration_behavior
end
end
class SubscriptionUpdate < Stripe::RequestParams
class Product < Stripe::RequestParams
# The list of price IDs for the product that a subscription can be updated to.
attr_accessor :prices
# The product id.
attr_accessor :product
def initialize(prices: nil, product: nil)
@prices = prices
@product = product
end
end
class ScheduleAtPeriodEnd < Stripe::RequestParams
class Condition < Stripe::RequestParams
# The type of condition.
attr_accessor :type
def initialize(type: nil)
@type = type
end
end
# List of conditions. When any condition is true, the update will be scheduled at the end of the current period.
attr_accessor :conditions
def initialize(conditions: nil)
@conditions = conditions
end
end
# The types of subscription updates that are supported. When empty, subscriptions are not updateable.
attr_accessor :default_allowed_updates
# Whether the feature is enabled.
attr_accessor :enabled
# The list of up to 10 products that support subscription updates.
attr_accessor :products
# Determines how to handle prorations resulting from subscription updates. Valid values are `none`, `create_prorations`, and `always_invoice`.
attr_accessor :proration_behavior
# Setting to control when an update should be scheduled at the end of the period instead of applying immediately.
attr_accessor :schedule_at_period_end
def initialize(
default_allowed_updates: nil,
enabled: nil,
products: nil,
proration_behavior: nil,
schedule_at_period_end: nil
)
@default_allowed_updates = default_allowed_updates
@enabled = enabled
@products = products
@proration_behavior = proration_behavior
@schedule_at_period_end = schedule_at_period_end
end
end
# Information about updating the customer details in the portal.
attr_accessor :customer_update
# Information about showing the billing history in the portal.
attr_accessor :invoice_history
# Information about updating payment methods in the portal.
attr_accessor :payment_method_update
# Information about canceling subscriptions in the portal.
attr_accessor :subscription_cancel
# Information about updating subscriptions in the portal.
attr_accessor :subscription_update
def initialize(
customer_update: nil,
invoice_history: nil,
payment_method_update: nil,
subscription_cancel: nil,
subscription_update: nil
)
@customer_update = customer_update
@invoice_history = invoice_history
@payment_method_update = payment_method_update
@subscription_cancel = subscription_cancel
@subscription_update = subscription_update
end
end
class LoginPage < Stripe::RequestParams
# Set to `true` to generate a shareable URL [`login_page.url`](https://stripe.com/docs/api/customer_portal/configuration#portal_configuration_object-login_page-url) that will take your customers to a hosted login page for the customer portal.
attr_accessor :enabled
def initialize(enabled: nil)
@enabled = enabled
end
end
# The business information shown to customers in the portal.
attr_accessor :business_profile
# The default URL to redirect customers to when they click on the portal's link to return to your website. This can be [overriden](https://stripe.com/docs/api/customer_portal/sessions/create#create_portal_session-return_url) when creating the session.
attr_accessor :default_return_url
# Specifies which fields in the response should be expanded.
attr_accessor :expand
# Information about the features available in the portal.
attr_accessor :features
# The hosted login page for this configuration. Learn more about the portal login page in our [integration docs](https://stripe.com/docs/billing/subscriptions/integrating-customer-portal#share).
attr_accessor :login_page
# Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
attr_accessor :metadata
def initialize(
business_profile: nil,
default_return_url: nil,
expand: nil,
features: nil,
login_page: nil,
metadata: nil
)
@business_profile = business_profile
@default_return_url = default_return_url
@expand = expand
@features = features
@login_page = login_page
@metadata = metadata
end
end
class UpdateParams < Stripe::RequestParams
class BusinessProfile < Stripe::RequestParams
# The messaging shown to customers in the portal.
attr_accessor :headline
# A link to the businesss publicly available privacy policy.
attr_accessor :privacy_policy_url
# A link to the businesss publicly available terms of service.
attr_accessor :terms_of_service_url
def initialize(headline: nil, privacy_policy_url: nil, terms_of_service_url: nil)
@headline = headline
@privacy_policy_url = privacy_policy_url
@terms_of_service_url = terms_of_service_url
end
end
class Features < Stripe::RequestParams
class CustomerUpdate < Stripe::RequestParams
# The types of customer updates that are supported. When empty, customers are not updateable.
attr_accessor :allowed_updates
# Whether the feature is enabled.
attr_accessor :enabled
def initialize(allowed_updates: nil, enabled: nil)
@allowed_updates = allowed_updates
@enabled = enabled
end
end
class InvoiceHistory < Stripe::RequestParams
# Whether the feature is enabled.
attr_accessor :enabled
def initialize(enabled: nil)
@enabled = enabled
end
end
class PaymentMethodUpdate < Stripe::RequestParams
# Whether the feature is enabled.
attr_accessor :enabled
def initialize(enabled: nil)
@enabled = enabled
end
end
class SubscriptionCancel < Stripe::RequestParams
class CancellationReason < Stripe::RequestParams
# Whether the feature is enabled.
attr_accessor :enabled
# Which cancellation reasons will be given as options to the customer.
attr_accessor :options
def initialize(enabled: nil, options: nil)
@enabled = enabled
@options = options
end
end
# Whether the cancellation reasons will be collected in the portal and which options are exposed to the customer
attr_accessor :cancellation_reason
# Whether the feature is enabled.
attr_accessor :enabled
# Whether to cancel subscriptions immediately or at the end of the billing period.
attr_accessor :mode
# Whether to create prorations when canceling subscriptions. Possible values are `none` and `create_prorations`, which is only compatible with `mode=immediately`. Passing `always_invoice` will result in an error. No prorations are generated when canceling a subscription at the end of its natural billing period.
attr_accessor :proration_behavior
def initialize(
cancellation_reason: nil,
enabled: nil,
mode: nil,
proration_behavior: nil
)
@cancellation_reason = cancellation_reason
@enabled = enabled
@mode = mode
@proration_behavior = proration_behavior
end
end
class SubscriptionUpdate < Stripe::RequestParams
class Product < Stripe::RequestParams
# The list of price IDs for the product that a subscription can be updated to.
attr_accessor :prices
# The product id.
attr_accessor :product
def initialize(prices: nil, product: nil)
@prices = prices
@product = product
end
end
class ScheduleAtPeriodEnd < Stripe::RequestParams
class Condition < Stripe::RequestParams
# The type of condition.
attr_accessor :type
def initialize(type: nil)
@type = type
end
end
# List of conditions. When any condition is true, the update will be scheduled at the end of the current period.
attr_accessor :conditions
def initialize(conditions: nil)
@conditions = conditions
end
end
# The types of subscription updates that are supported. When empty, subscriptions are not updateable.
attr_accessor :default_allowed_updates
# Whether the feature is enabled.
attr_accessor :enabled
# The list of up to 10 products that support subscription updates.
attr_accessor :products
# Determines how to handle prorations resulting from subscription updates. Valid values are `none`, `create_prorations`, and `always_invoice`.
attr_accessor :proration_behavior
# Setting to control when an update should be scheduled at the end of the period instead of applying immediately.
attr_accessor :schedule_at_period_end
def initialize(
default_allowed_updates: nil,
enabled: nil,
products: nil,
proration_behavior: nil,
schedule_at_period_end: nil
)
@default_allowed_updates = default_allowed_updates
@enabled = enabled
@products = products
@proration_behavior = proration_behavior
@schedule_at_period_end = schedule_at_period_end
end
end
# Information about updating the customer details in the portal.
attr_accessor :customer_update
# Information about showing the billing history in the portal.
attr_accessor :invoice_history
# Information about updating payment methods in the portal.
attr_accessor :payment_method_update
# Information about canceling subscriptions in the portal.
attr_accessor :subscription_cancel
# Information about updating subscriptions in the portal.
attr_accessor :subscription_update
def initialize(
customer_update: nil,
invoice_history: nil,
payment_method_update: nil,
subscription_cancel: nil,
subscription_update: nil
)
@customer_update = customer_update
@invoice_history = invoice_history
@payment_method_update = payment_method_update
@subscription_cancel = subscription_cancel
@subscription_update = subscription_update
end
end
class LoginPage < Stripe::RequestParams
# Set to `true` to generate a shareable URL [`login_page.url`](https://stripe.com/docs/api/customer_portal/configuration#portal_configuration_object-login_page-url) that will take your customers to a hosted login page for the customer portal.
#
# Set to `false` to deactivate the `login_page.url`.
attr_accessor :enabled
def initialize(enabled: nil)
@enabled = enabled
end
end
# Whether the configuration is active and can be used to create portal sessions.
attr_accessor :active
# The business information shown to customers in the portal.
attr_accessor :business_profile
# The default URL to redirect customers to when they click on the portal's link to return to your website. This can be [overriden](https://stripe.com/docs/api/customer_portal/sessions/create#create_portal_session-return_url) when creating the session.
attr_accessor :default_return_url
# Specifies which fields in the response should be expanded.
attr_accessor :expand
# Information about the features available in the portal.
attr_accessor :features
# The hosted login page for this configuration. Learn more about the portal login page in our [integration docs](https://stripe.com/docs/billing/subscriptions/integrating-customer-portal#share).
attr_accessor :login_page
# Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
attr_accessor :metadata
def initialize(
active: nil,
business_profile: nil,
default_return_url: nil,
expand: nil,
features: nil,
login_page: nil,
metadata: nil
)
@active = active
@business_profile = business_profile
@default_return_url = default_return_url
@expand = expand
@features = features
@login_page = login_page
@metadata = metadata
end
end
# Whether the configuration is active and can be used to create portal sessions.
attr_reader :active
# ID of the Connect Application that created the configuration.
attr_reader :application
# Attribute for field business_profile
attr_reader :business_profile
# Time at which the object was created. Measured in seconds since the Unix epoch.
attr_reader :created
# The default URL to redirect customers to when they click on the portal's link to return to your website. This can be [overriden](https://stripe.com/docs/api/customer_portal/sessions/create#create_portal_session-return_url) when creating the session.
attr_reader :default_return_url
# Attribute for field features
attr_reader :features
# Unique identifier for the object.
attr_reader :id
# Whether the configuration is the default. If `true`, this configuration can be managed in the Dashboard and portal sessions will use this configuration unless it is overriden when creating the session.
attr_reader :is_default
# Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
attr_reader :livemode
# Attribute for field login_page
attr_reader :login_page
# Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
attr_reader :metadata
# String representing the object's type. Objects of the same type share the same value.
attr_reader :object
# Time at which the object was last updated. Measured in seconds since the Unix epoch.
attr_reader :updated
# Creates a configuration that describes the functionality and behavior of a PortalSession
def self.create(params = {}, opts = {})
request_stripe_object(
@ -578,20 +25,20 @@ module Stripe
end
# Returns a list of configurations that describe the functionality of the customer portal.
def self.list(params = {}, opts = {})
def self.list(filters = {}, opts = {})
request_stripe_object(
method: :get,
path: "/v1/billing_portal/configurations",
params: params,
params: filters,
opts: opts
)
end
# Updates a configuration that describes the functionality of the customer portal.
def self.update(configuration, params = {}, opts = {})
def self.update(id, params = {}, opts = {})
request_stripe_object(
method: :post,
path: format("/v1/billing_portal/configurations/%<configuration>s", { configuration: CGI.escape(configuration) }),
path: format("/v1/billing_portal/configurations/%<id>s", { id: CGI.escape(id) }),
params: params,
opts: opts
)

View File

@ -16,7 +16,7 @@ module Stripe
# Create sessions on-demand when customers intend to manage their subscriptions
# and billing details.
#
# Related guide: [Customer management](https://docs.stripe.com/customer-management)
# Learn more in the [integration guide](https://stripe.com/docs/billing/subscriptions/integrating-customer-portal).
class Session < APIResource
extend Stripe::APIOperations::Create
@ -25,277 +25,6 @@ module Stripe
"billing_portal.session"
end
class Flow < Stripe::StripeObject
class AfterCompletion < Stripe::StripeObject
class HostedConfirmation < Stripe::StripeObject
# A custom message to display to the customer after the flow is completed.
attr_reader :custom_message
end
class Redirect < Stripe::StripeObject
# The URL the customer will be redirected to after the flow is completed.
attr_reader :return_url
end
# Configuration when `after_completion.type=hosted_confirmation`.
attr_reader :hosted_confirmation
# Configuration when `after_completion.type=redirect`.
attr_reader :redirect
# The specified type of behavior after the flow is completed.
attr_reader :type
end
class SubscriptionCancel < Stripe::StripeObject
class Retention < Stripe::StripeObject
class CouponOffer < Stripe::StripeObject
# The ID of the coupon to be offered.
attr_reader :coupon
end
# Configuration when `retention.type=coupon_offer`.
attr_reader :coupon_offer
# Type of retention strategy that will be used.
attr_reader :type
end
# Specify a retention strategy to be used in the cancellation flow.
attr_reader :retention
# The ID of the subscription to be canceled.
attr_reader :subscription
end
class SubscriptionUpdate < Stripe::StripeObject
# The ID of the subscription to be updated.
attr_reader :subscription
end
class SubscriptionUpdateConfirm < Stripe::StripeObject
class Discount < Stripe::StripeObject
# The ID of the coupon to apply to this subscription update.
attr_reader :coupon
# The ID of a promotion code to apply to this subscription update.
attr_reader :promotion_code
end
class Item < Stripe::StripeObject
# The ID of the [subscription item](https://stripe.com/docs/api/subscriptions/object#subscription_object-items-data-id) to be updated.
attr_reader :id
# The price the customer should subscribe to through this flow. The price must also be included in the configuration's [`features.subscription_update.products`](https://stripe.com/docs/api/customer_portal/configuration#portal_configuration_object-features-subscription_update-products).
attr_reader :price
# [Quantity](https://stripe.com/docs/subscriptions/quantities) for this item that the customer should subscribe to through this flow.
attr_reader :quantity
end
# The coupon or promotion code to apply to this subscription update. Currently, only up to one may be specified.
attr_reader :discounts
# The [subscription item](https://stripe.com/docs/api/subscription_items) to be updated through this flow. Currently, only up to one may be specified and subscriptions with multiple items are not updatable.
attr_reader :items
# The ID of the subscription to be updated.
attr_reader :subscription
end
# Attribute for field after_completion
attr_reader :after_completion
# Configuration when `flow.type=subscription_cancel`.
attr_reader :subscription_cancel
# Configuration when `flow.type=subscription_update`.
attr_reader :subscription_update
# Configuration when `flow.type=subscription_update_confirm`.
attr_reader :subscription_update_confirm
# Type of flow that the customer will go through.
attr_reader :type
end
class CreateParams < Stripe::RequestParams
class FlowData < Stripe::RequestParams
class AfterCompletion < Stripe::RequestParams
class HostedConfirmation < Stripe::RequestParams
# A custom message to display to the customer after the flow is completed.
attr_accessor :custom_message
def initialize(custom_message: nil)
@custom_message = custom_message
end
end
class Redirect < Stripe::RequestParams
# The URL the customer will be redirected to after the flow is completed.
attr_accessor :return_url
def initialize(return_url: nil)
@return_url = return_url
end
end
# Configuration when `after_completion.type=hosted_confirmation`.
attr_accessor :hosted_confirmation
# Configuration when `after_completion.type=redirect`.
attr_accessor :redirect
# The specified behavior after the flow is completed.
attr_accessor :type
def initialize(hosted_confirmation: nil, redirect: nil, type: nil)
@hosted_confirmation = hosted_confirmation
@redirect = redirect
@type = type
end
end
class SubscriptionCancel < Stripe::RequestParams
class Retention < Stripe::RequestParams
class CouponOffer < Stripe::RequestParams
# The ID of the coupon to be offered.
attr_accessor :coupon
def initialize(coupon: nil)
@coupon = coupon
end
end
# Configuration when `retention.type=coupon_offer`.
attr_accessor :coupon_offer
# Type of retention strategy to use with the customer.
attr_accessor :type
def initialize(coupon_offer: nil, type: nil)
@coupon_offer = coupon_offer
@type = type
end
end
# Specify a retention strategy to be used in the cancellation flow.
attr_accessor :retention
# The ID of the subscription to be canceled.
attr_accessor :subscription
def initialize(retention: nil, subscription: nil)
@retention = retention
@subscription = subscription
end
end
class SubscriptionUpdate < Stripe::RequestParams
# The ID of the subscription to be updated.
attr_accessor :subscription
def initialize(subscription: nil)
@subscription = subscription
end
end
class SubscriptionUpdateConfirm < Stripe::RequestParams
class Discount < Stripe::RequestParams
# The ID of the coupon to apply to this subscription update.
attr_accessor :coupon
# The ID of a promotion code to apply to this subscription update.
attr_accessor :promotion_code
def initialize(coupon: nil, promotion_code: nil)
@coupon = coupon
@promotion_code = promotion_code
end
end
class Item < Stripe::RequestParams
# The ID of the [subscription item](https://stripe.com/docs/api/subscriptions/object#subscription_object-items-data-id) to be updated.
attr_accessor :id
# The price the customer should subscribe to through this flow. The price must also be included in the configuration's [`features.subscription_update.products`](https://stripe.com/docs/api/customer_portal/configuration#portal_configuration_object-features-subscription_update-products).
attr_accessor :price
# [Quantity](https://stripe.com/docs/subscriptions/quantities) for this item that the customer should subscribe to through this flow.
attr_accessor :quantity
def initialize(id: nil, price: nil, quantity: nil)
@id = id
@price = price
@quantity = quantity
end
end
# The coupon or promotion code to apply to this subscription update. Currently, only up to one may be specified.
attr_accessor :discounts
# The [subscription item](https://stripe.com/docs/api/subscription_items) to be updated through this flow. Currently, only up to one may be specified and subscriptions with multiple items are not updatable.
attr_accessor :items
# The ID of the subscription to be updated.
attr_accessor :subscription
def initialize(discounts: nil, items: nil, subscription: nil)
@discounts = discounts
@items = items
@subscription = subscription
end
end
# Behavior after the flow is completed.
attr_accessor :after_completion
# Configuration when `flow_data.type=subscription_cancel`.
attr_accessor :subscription_cancel
# Configuration when `flow_data.type=subscription_update`.
attr_accessor :subscription_update
# Configuration when `flow_data.type=subscription_update_confirm`.
attr_accessor :subscription_update_confirm
# Type of flow that the customer will go through.
attr_accessor :type
def initialize(
after_completion: nil,
subscription_cancel: nil,
subscription_update: nil,
subscription_update_confirm: nil,
type: nil
)
@after_completion = after_completion
@subscription_cancel = subscription_cancel
@subscription_update = subscription_update
@subscription_update_confirm = subscription_update_confirm
@type = type
end
end
# The ID of an existing [configuration](https://stripe.com/docs/api/customer_portal/configuration) to use for this session, describing its functionality and features. If not specified, the session uses the default configuration.
attr_accessor :configuration
# The ID of an existing customer.
attr_accessor :customer
# Specifies which fields in the response should be expanded.
attr_accessor :expand
# Information about a specific flow for the customer to go through. See the [docs](https://stripe.com/docs/customer-management/portal-deep-links) to learn more about using customer portal deep links and flows.
attr_accessor :flow_data
# The IETF language tag of the locale customer portal is displayed in. If blank or auto, the customers `preferred_locales` or browsers locale is used.
attr_accessor :locale
# The `on_behalf_of` account to use for this session. When specified, only subscriptions and invoices with this `on_behalf_of` account appear in the portal. For more information, see the [docs](https://stripe.com/docs/connect/separate-charges-and-transfers#settlement-merchant). Use the [Accounts API](https://stripe.com/docs/api/accounts/object#account_object-settings-branding) to modify the `on_behalf_of` account's branding settings, which the portal displays.
attr_accessor :on_behalf_of
# The default URL to redirect customers to when they click on the portal's link to return to your website.
attr_accessor :return_url
def initialize(
configuration: nil,
customer: nil,
expand: nil,
flow_data: nil,
locale: nil,
on_behalf_of: nil,
return_url: nil
)
@configuration = configuration
@customer = customer
@expand = expand
@flow_data = flow_data
@locale = locale
@on_behalf_of = on_behalf_of
@return_url = return_url
end
end
# The configuration used by this session, describing the features available.
attr_reader :configuration
# Time at which the object was created. Measured in seconds since the Unix epoch.
attr_reader :created
# The ID of the customer for this session.
attr_reader :customer
# Information about a specific flow for the customer to go through. See the [docs](https://stripe.com/docs/customer-management/portal-deep-links) to learn more about using customer portal deep links and flows.
attr_reader :flow
# Unique identifier for the object.
attr_reader :id
# Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
attr_reader :livemode
# The IETF language tag of the locale Customer Portal is displayed in. If blank or auto, the customers `preferred_locales` or browsers locale is used.
attr_reader :locale
# String representing the object's type. Objects of the same type share the same value.
attr_reader :object
# The account for which the session was created on behalf of. When specified, only subscriptions and invoices with this `on_behalf_of` account appear in the portal. For more information, see the [docs](https://stripe.com/docs/connect/separate-charges-and-transfers#settlement-merchant). Use the [Accounts API](https://stripe.com/docs/api/accounts/object#account_object-settings-branding) to modify the `on_behalf_of` account's branding settings, which the portal displays.
attr_reader :on_behalf_of
# The URL to redirect customers to when they click on the portal's link to return to your website.
attr_reader :return_url
# The short-lived URL of the session that gives customers access to the customer portal.
attr_reader :url
# Creates a session of the customer portal.
def self.create(params = {}, opts = {})
request_stripe_object(

View File

@ -13,90 +13,6 @@ module Stripe
"capability"
end
class FutureRequirements < Stripe::StripeObject
class Alternative < Stripe::StripeObject
# Fields that can be provided to satisfy all fields in `original_fields_due`.
attr_reader :alternative_fields_due
# Fields that are due and can be satisfied by providing all fields in `alternative_fields_due`.
attr_reader :original_fields_due
end
class Error < Stripe::StripeObject
# The code for the type of error.
attr_reader :code
# An informative message that indicates the error type and provides additional details about the error.
attr_reader :reason
# The specific user onboarding requirement field (in the requirements hash) that needs to be resolved.
attr_reader :requirement
end
# Fields that are due and can be satisfied by providing the corresponding alternative fields instead.
attr_reader :alternatives
# Date on which `future_requirements` becomes the main `requirements` hash and `future_requirements` becomes empty. After the transition, `currently_due` requirements may immediately become `past_due`, but the account may also be given a grace period depending on the capability's enablement state prior to transitioning.
attr_reader :current_deadline
# Fields that need to be collected to keep the capability enabled. If not collected by `future_requirements[current_deadline]`, these fields will transition to the main `requirements` hash.
attr_reader :currently_due
# This is typed as an enum for consistency with `requirements.disabled_reason`, but it safe to assume `future_requirements.disabled_reason` is null because fields in `future_requirements` will never disable the account.
attr_reader :disabled_reason
# Fields that are `currently_due` and need to be collected again because validation or verification failed.
attr_reader :errors
# Fields you must collect when all thresholds are reached. As they become required, they appear in `currently_due` as well.
attr_reader :eventually_due
# Fields that weren't collected by `requirements.current_deadline`. These fields need to be collected to enable the capability on the account. New fields will never appear here; `future_requirements.past_due` will always be a subset of `requirements.past_due`.
attr_reader :past_due
# Fields that might become required depending on the results of verification or review. It's an empty array unless an asynchronous verification is pending. If verification fails, these fields move to `eventually_due` or `currently_due`. Fields might appear in `eventually_due` or `currently_due` and in `pending_verification` if verification fails but another verification is still pending.
attr_reader :pending_verification
end
class Requirements < Stripe::StripeObject
class Alternative < Stripe::StripeObject
# Fields that can be provided to satisfy all fields in `original_fields_due`.
attr_reader :alternative_fields_due
# Fields that are due and can be satisfied by providing all fields in `alternative_fields_due`.
attr_reader :original_fields_due
end
class Error < Stripe::StripeObject
# The code for the type of error.
attr_reader :code
# An informative message that indicates the error type and provides additional details about the error.
attr_reader :reason
# The specific user onboarding requirement field (in the requirements hash) that needs to be resolved.
attr_reader :requirement
end
# Fields that are due and can be satisfied by providing the corresponding alternative fields instead.
attr_reader :alternatives
# The date by which all required account information must be both submitted and verified. This includes fields listed in `currently_due` as well as those in `pending_verification`. If any required information is missing or unverified by this date, the account may be disabled. Note that `current_deadline` may change if additional `currently_due` requirements are requested.
attr_reader :current_deadline
# Fields that need to be collected to keep the capability enabled. If not collected by `current_deadline`, these fields appear in `past_due` as well, and the capability is disabled.
attr_reader :currently_due
# Description of why the capability is disabled. [Learn more about handling verification issues](https://stripe.com/docs/connect/handling-api-verification).
attr_reader :disabled_reason
# Fields that are `currently_due` and need to be collected again because validation or verification failed.
attr_reader :errors
# Fields you must collect when all thresholds are reached. As they become required, they appear in `currently_due` as well, and `current_deadline` becomes set.
attr_reader :eventually_due
# Fields that weren't collected by `current_deadline`. These fields need to be collected to enable the capability on the account.
attr_reader :past_due
# Fields that might become required depending on the results of verification or review. It's an empty array unless an asynchronous verification is pending. If verification fails, these fields move to `eventually_due`, `currently_due`, or `past_due`. Fields might appear in `eventually_due`, `currently_due`, or `past_due` and in `pending_verification` if verification fails but another verification is still pending.
attr_reader :pending_verification
end
# The account for which the capability enables functionality.
attr_reader :account
# Attribute for field future_requirements
attr_reader :future_requirements
# The identifier for the capability.
attr_reader :id
# String representing the object's type. Objects of the same type share the same value.
attr_reader :object
# Whether the capability has been requested.
attr_reader :requested
# Time at which the capability was requested. Measured in seconds since the Unix epoch.
attr_reader :requested_at
# Attribute for field requirements
attr_reader :requirements
# The status of the capability.
attr_reader :status
def resource_url
if !respond_to?(:account) || account.nil?
raise NotImplementedError,

View File

@ -0,0 +1,49 @@
# File generated from our OpenAPI spec
# frozen_string_literal: true
module Stripe
module Capital
# This is an object representing an offer of financing from
# Stripe Capital to a Connect subaccount.
class FinancingOffer < APIResource
extend Stripe::APIOperations::List
OBJECT_NAME = "capital.financing_offer"
def self.object_name
"capital.financing_offer"
end
# Retrieves the financing offers available for Connected accounts that belong to your platform.
def self.list(filters = {}, opts = {})
request_stripe_object(
method: :get,
path: "/v1/capital/financing_offers",
params: filters,
opts: opts
)
end
# Acknowledges that platform has received and delivered the financing_offer to
# the intended merchant recipient.
def mark_delivered(params = {}, opts = {})
request_stripe_object(
method: :post,
path: format("/v1/capital/financing_offers/%<financing_offer>s/mark_delivered", { financing_offer: CGI.escape(self["id"]) }),
params: params,
opts: opts
)
end
# Acknowledges that platform has received and delivered the financing_offer to
# the intended merchant recipient.
def self.mark_delivered(financing_offer, params = {}, opts = {})
request_stripe_object(
method: :post,
path: format("/v1/capital/financing_offers/%<financing_offer>s/mark_delivered", { financing_offer: CGI.escape(financing_offer) }),
params: params,
opts: opts
)
end
end
end
end

View File

@ -0,0 +1,15 @@
# File generated from our OpenAPI spec
# frozen_string_literal: true
module Stripe
module Capital
# A financing object describes an account's current financing state. Used by Connect
# platforms to read the state of Capital offered to their connected accounts.
class FinancingSummary < SingletonAPIResource
OBJECT_NAME = "capital.financing_summary"
def self.object_name
"capital.financing_summary"
end
end
end
end

View File

@ -0,0 +1,27 @@
# File generated from our OpenAPI spec
# frozen_string_literal: true
module Stripe
module Capital
# This is an object representing the details of a transaction on a Capital financing object.
class FinancingTransaction < APIResource
extend Stripe::APIOperations::List
OBJECT_NAME = "capital.financing_transaction"
def self.object_name
"capital.financing_transaction"
end
# Returns a list of financing transactions. The transactions are returned in sorted order,
# with the most recent transactions appearing first.
def self.list(filters = {}, opts = {})
request_stripe_object(
method: :get,
path: "/v1/capital/financing_transactions",
params: filters,
opts: opts
)
end
end
end
end

View File

@ -17,83 +17,6 @@ module Stripe
"card"
end
class Networks < Stripe::StripeObject
# The preferred network for co-branded cards. Can be `cartes_bancaires`, `mastercard`, `visa` or `invalid_preference` if requested network is not valid for the card.
attr_reader :preferred
end
# Attribute for field account
attr_reader :account
# City/District/Suburb/Town/Village.
attr_reader :address_city
# Billing address country, if provided when creating card.
attr_reader :address_country
# Address line 1 (Street address/PO Box/Company name).
attr_reader :address_line1
# If `address_line1` was provided, results of the check: `pass`, `fail`, `unavailable`, or `unchecked`.
attr_reader :address_line1_check
# Address line 2 (Apartment/Suite/Unit/Building).
attr_reader :address_line2
# State/County/Province/Region.
attr_reader :address_state
# ZIP or postal code.
attr_reader :address_zip
# If `address_zip` was provided, results of the check: `pass`, `fail`, `unavailable`, or `unchecked`.
attr_reader :address_zip_check
# This field indicates whether this payment method can be shown again to its customer in a checkout flow. Stripe products such as Checkout and Elements use this field to determine whether a payment method can be shown as a saved payment method in a checkout flow. The field defaults to “unspecified”.
attr_reader :allow_redisplay
# A set of available payout methods for this card. Only values from this set should be passed as the `method` when creating a payout.
attr_reader :available_payout_methods
# Card brand. Can be `American Express`, `Diners Club`, `Discover`, `Eftpos Australia`, `Girocard`, `JCB`, `MasterCard`, `UnionPay`, `Visa`, or `Unknown`.
attr_reader :brand
# Two-letter ISO code representing the country of the card. You could use this attribute to get a sense of the international breakdown of cards you've collected.
attr_reader :country
# Three-letter [ISO code for currency](https://www.iso.org/iso-4217-currency-codes.html) in lowercase. Must be a [supported currency](https://docs.stripe.com/currencies). Only applicable on accounts (not customers or recipients). The card can be used as a transfer destination for funds in this currency. This property is only available when returned as an [External Account](/api/external_account_cards/object) where [controller.is_controller](/api/accounts/object#account_object-controller-is_controller) is `true`.
attr_reader :currency
# The customer that this card belongs to. This attribute will not be in the card object if the card belongs to an account or recipient instead.
attr_reader :customer
# If a CVC was provided, results of the check: `pass`, `fail`, `unavailable`, or `unchecked`. A result of unchecked indicates that CVC was provided but hasn't been checked yet. Checks are typically performed when attaching a card to a Customer object, or when creating a charge. For more details, see [Check if a card is valid without a charge](https://support.stripe.com/questions/check-if-a-card-is-valid-without-a-charge).
attr_reader :cvc_check
# Whether this card is the default external account for its currency. This property is only available for accounts where [controller.requirement_collection](/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts.
attr_reader :default_for_currency
# A high-level description of the type of cards issued in this range. (For internal use only and not typically available in standard API requests.)
attr_reader :description
# (For tokenized numbers only.) The last four digits of the device account number.
attr_reader :dynamic_last4
# Two-digit number representing the card's expiration month.
attr_reader :exp_month
# Four-digit number representing the card's expiration year.
attr_reader :exp_year
# Uniquely identifies this particular card number. You can use this attribute to check whether two customers whove signed up with you are using the same card number, for example. For payment methods that tokenize card information (Apple Pay, Google Pay), the tokenized number might be provided instead of the underlying card number.
#
# *As of May 1, 2021, card fingerprint in India for Connect changed to allow two fingerprints for the same card---one for India and one for the rest of the world.*
attr_reader :fingerprint
# Card funding type. Can be `credit`, `debit`, `prepaid`, or `unknown`.
attr_reader :funding
# Unique identifier for the object.
attr_reader :id
# Issuer identification number of the card. (For internal use only and not typically available in standard API requests.)
attr_reader :iin
# The name of the card's issuing bank. (For internal use only and not typically available in standard API requests.)
attr_reader :issuer
# The last four digits of the card.
attr_reader :last4
# Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
attr_reader :metadata
# Cardholder name.
attr_reader :name
# Attribute for field networks
attr_reader :networks
# String representing the object's type. Objects of the same type share the same value.
attr_reader :object
# Status of a card based on the card issuer.
attr_reader :regulated_status
# For external accounts that are cards, possible values are `new` and `errored`. If a payout fails, the status is set to `errored` and [scheduled payouts](https://stripe.com/docs/payouts#payout-schedule) are stopped until account details are updated.
attr_reader :status
# If the card number is tokenized, this is the method that was used. Can be `android_pay` (includes Google Pay), `apple_pay`, `masterpass`, `visa_checkout`, or null.
attr_reader :tokenization_method
# Always true for a deleted object
attr_reader :deleted
def resource_url
if respond_to?(:customer) && !customer.nil? && !customer.empty?
"#{Customer.resource_url}/#{CGI.escape(customer)}/sources/#{CGI.escape(id)}"
@ -119,11 +42,12 @@ module Stripe
end
def self.delete(id, params = {}, opts = {})
raise NotImplementedError,
"Card cannot be deleted without a customer ID or an account " \
"ID. Delete a card using `Customer.delete_source(" \
"'customer_id', 'card_id')` or " \
"`Account.delete_external_account('account_id', 'card_id')`"
request_stripe_object(
method: :delete,
path: "#{resource_url}/#{id}",
params: params,
opts: opts
)
end
def delete(params = {}, opts = {})
@ -135,12 +59,13 @@ module Stripe
)
end
def self.list(params = {}, opts = {})
raise NotImplementedError,
"Cards cannot be listed without a customer ID or an account " \
"ID. List cards using `Customer.list_sources(" \
"'customer_id')` or " \
"`Account.list_external_accounts('account_id')`"
def self.list(filters = {}, opts = {})
request_stripe_object(
method: :delete,
path: resource_url.to_s,
params: filters,
opts: opts
)
end
end
end

View File

@ -9,23 +9,6 @@ module Stripe
"cash_balance"
end
class Settings < Stripe::StripeObject
# The configuration for how funds that land in the customer cash balance are reconciled.
attr_reader :reconciliation_mode
# A flag to indicate if reconciliation mode returned is the user's default or is specific to this customer cash balance
attr_reader :using_merchant_default
end
# A hash of all cash balances available to this customer. You cannot delete a customer with any cash balances, even if the balance is 0. Amounts are represented in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal).
attr_reader :available
# The ID of the customer whose cash balance this object represents.
attr_reader :customer
# Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
attr_reader :livemode
# String representing the object's type. Objects of the same type share the same value.
attr_reader :object
# Attribute for field settings
attr_reader :settings
def resource_url
if !respond_to?(:customer) || customer.nil?
raise NotImplementedError,

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -15,174 +15,7 @@ module Stripe
"climate.order"
end
class Beneficiary < Stripe::StripeObject
# Publicly displayable name for the end beneficiary of carbon removal.
attr_reader :public_name
end
class DeliveryDetail < Stripe::StripeObject
class Location < Stripe::StripeObject
# The city where the supplier is located.
attr_reader :city
# Two-letter ISO code representing the country where the supplier is located.
attr_reader :country
# The geographic latitude where the supplier is located.
attr_reader :latitude
# The geographic longitude where the supplier is located.
attr_reader :longitude
# The state/county/province/region where the supplier is located.
attr_reader :region
end
# Time at which the delivery occurred. Measured in seconds since the Unix epoch.
attr_reader :delivered_at
# Specific location of this delivery.
attr_reader :location
# Quantity of carbon removal supplied by this delivery.
attr_reader :metric_tons
# Once retired, a URL to the registry entry for the tons from this delivery.
attr_reader :registry_url
# A supplier of carbon removal.
attr_reader :supplier
end
class ListParams < Stripe::RequestParams
# A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.
attr_accessor :ending_before
# Specifies which fields in the response should be expanded.
attr_accessor :expand
# A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.
attr_accessor :limit
# A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.
attr_accessor :starting_after
def initialize(ending_before: nil, expand: nil, limit: nil, starting_after: nil)
@ending_before = ending_before
@expand = expand
@limit = limit
@starting_after = starting_after
end
end
class CreateParams < Stripe::RequestParams
class Beneficiary < Stripe::RequestParams
# Publicly displayable name for the end beneficiary of carbon removal.
attr_accessor :public_name
def initialize(public_name: nil)
@public_name = public_name
end
end
# Requested amount of carbon removal units. Either this or `metric_tons` must be specified.
attr_accessor :amount
# Publicly sharable reference for the end beneficiary of carbon removal. Assumed to be the Stripe account if not set.
attr_accessor :beneficiary
# Request currency for the order as a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a supported [settlement currency for your account](https://stripe.com/docs/currencies). If omitted, the account's default currency will be used.
attr_accessor :currency
# Specifies which fields in the response should be expanded.
attr_accessor :expand
# Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
attr_accessor :metadata
# Requested number of tons for the order. Either this or `amount` must be specified.
attr_accessor :metric_tons
# Unique identifier of the Climate product.
attr_accessor :product
def initialize(
amount: nil,
beneficiary: nil,
currency: nil,
expand: nil,
metadata: nil,
metric_tons: nil,
product: nil
)
@amount = amount
@beneficiary = beneficiary
@currency = currency
@expand = expand
@metadata = metadata
@metric_tons = metric_tons
@product = product
end
end
class UpdateParams < Stripe::RequestParams
class Beneficiary < Stripe::RequestParams
# Publicly displayable name for the end beneficiary of carbon removal.
attr_accessor :public_name
def initialize(public_name: nil)
@public_name = public_name
end
end
# Publicly sharable reference for the end beneficiary of carbon removal. Assumed to be the Stripe account if not set.
attr_accessor :beneficiary
# Specifies which fields in the response should be expanded.
attr_accessor :expand
# Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
attr_accessor :metadata
def initialize(beneficiary: nil, expand: nil, metadata: nil)
@beneficiary = beneficiary
@expand = expand
@metadata = metadata
end
end
class CancelParams < Stripe::RequestParams
# Specifies which fields in the response should be expanded.
attr_accessor :expand
def initialize(expand: nil)
@expand = expand
end
end
# Total amount of [Frontier](https://frontierclimate.com/)'s service fees in the currency's smallest unit.
attr_reader :amount_fees
# Total amount of the carbon removal in the currency's smallest unit.
attr_reader :amount_subtotal
# Total amount of the order including fees in the currency's smallest unit.
attr_reader :amount_total
# Attribute for field beneficiary
attr_reader :beneficiary
# Time at which the order was canceled. Measured in seconds since the Unix epoch.
attr_reader :canceled_at
# Reason for the cancellation of this order.
attr_reader :cancellation_reason
# For delivered orders, a URL to a delivery certificate for the order.
attr_reader :certificate
# Time at which the order was confirmed. Measured in seconds since the Unix epoch.
attr_reader :confirmed_at
# Time at which the object was created. Measured in seconds since the Unix epoch.
attr_reader :created
# Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase, representing the currency for this order.
attr_reader :currency
# Time at which the order's expected_delivery_year was delayed. Measured in seconds since the Unix epoch.
attr_reader :delayed_at
# Time at which the order was delivered. Measured in seconds since the Unix epoch.
attr_reader :delivered_at
# Details about the delivery of carbon removal for this order.
attr_reader :delivery_details
# The year this order is expected to be delivered.
attr_reader :expected_delivery_year
# Unique identifier for the object.
attr_reader :id
# Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
attr_reader :livemode
# Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
attr_reader :metadata
# Quantity of carbon removal that is included in this order.
attr_reader :metric_tons
# String representing the object's type. Objects of the same type share the same value.
attr_reader :object
# Unique ID for the Climate `Product` this order is purchasing.
attr_reader :product
# Time at which the order's product was substituted for a different product. Measured in seconds since the Unix epoch.
attr_reader :product_substituted_at
# The current status of this order.
attr_reader :status
# Cancels a Climate order. You can cancel an order within 24 hours of creation. Stripe refunds the
# Cancels a Climate order. You can cancel an order within 30 days of creation. Stripe refunds the
# reservation amount_subtotal, but not the amount_fees for user-triggered cancellations. Frontier
# might cancel reservations if suppliers fail to deliver. If Frontier cancels the reservation, Stripe
# provides 90 days advance notice and refunds the amount_total.
@ -195,7 +28,7 @@ module Stripe
)
end
# Cancels a Climate order. You can cancel an order within 24 hours of creation. Stripe refunds the
# Cancels a Climate order. You can cancel an order within 30 days of creation. Stripe refunds the
# reservation amount_subtotal, but not the amount_fees for user-triggered cancellations. Frontier
# might cancel reservations if suppliers fail to deliver. If Frontier cancels the reservation, Stripe
# provides 90 days advance notice and refunds the amount_total.
@ -216,15 +49,15 @@ module Stripe
# Lists all Climate order objects. The orders are returned sorted by creation date, with the
# most recently created orders appearing first.
def self.list(params = {}, opts = {})
request_stripe_object(method: :get, path: "/v1/climate/orders", params: params, opts: opts)
def self.list(filters = {}, opts = {})
request_stripe_object(method: :get, path: "/v1/climate/orders", params: filters, opts: opts)
end
# Updates the specified order by setting the values of the parameters passed.
def self.update(order, params = {}, opts = {})
def self.update(id, params = {}, opts = {})
request_stripe_object(
method: :post,
path: format("/v1/climate/orders/%<order>s", { order: CGI.escape(order) }),
path: format("/v1/climate/orders/%<id>s", { id: CGI.escape(id) }),
params: params,
opts: opts
)

View File

@ -13,59 +13,12 @@ module Stripe
"climate.product"
end
class CurrentPricesPerMetricTon < Stripe::StripeObject
# Fees for one metric ton of carbon removal in the currency's smallest unit.
attr_reader :amount_fees
# Subtotal for one metric ton of carbon removal (excluding fees) in the currency's smallest unit.
attr_reader :amount_subtotal
# Total for one metric ton of carbon removal (including fees) in the currency's smallest unit.
attr_reader :amount_total
end
class ListParams < Stripe::RequestParams
# A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.
attr_accessor :ending_before
# Specifies which fields in the response should be expanded.
attr_accessor :expand
# A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.
attr_accessor :limit
# A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.
attr_accessor :starting_after
def initialize(ending_before: nil, expand: nil, limit: nil, starting_after: nil)
@ending_before = ending_before
@expand = expand
@limit = limit
@starting_after = starting_after
end
end
# Time at which the object was created. Measured in seconds since the Unix epoch.
attr_reader :created
# Current prices for a metric ton of carbon removal in a currency's smallest unit.
attr_reader :current_prices_per_metric_ton
# The year in which the carbon removal is expected to be delivered.
attr_reader :delivery_year
# Unique identifier for the object. For convenience, Climate product IDs are human-readable strings
# that start with `climsku_`. See [carbon removal inventory](https://stripe.com/docs/climate/orders/carbon-removal-inventory)
# for a list of available carbon removal products.
attr_reader :id
# Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
attr_reader :livemode
# The quantity of metric tons available for reservation.
attr_reader :metric_tons_available
# The Climate product's name.
attr_reader :name
# String representing the object's type. Objects of the same type share the same value.
attr_reader :object
# The carbon removal suppliers that fulfill orders for this Climate product.
attr_reader :suppliers
# Lists all available Climate product objects.
def self.list(params = {}, opts = {})
def self.list(filters = {}, opts = {})
request_stripe_object(
method: :get,
path: "/v1/climate/products",
params: params,
params: filters,
opts: opts
)
end

View File

@ -12,57 +12,12 @@ module Stripe
"climate.supplier"
end
class Location < Stripe::StripeObject
# The city where the supplier is located.
attr_reader :city
# Two-letter ISO code representing the country where the supplier is located.
attr_reader :country
# The geographic latitude where the supplier is located.
attr_reader :latitude
# The geographic longitude where the supplier is located.
attr_reader :longitude
# The state/county/province/region where the supplier is located.
attr_reader :region
end
class ListParams < Stripe::RequestParams
# A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.
attr_accessor :ending_before
# Specifies which fields in the response should be expanded.
attr_accessor :expand
# A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.
attr_accessor :limit
# A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.
attr_accessor :starting_after
def initialize(ending_before: nil, expand: nil, limit: nil, starting_after: nil)
@ending_before = ending_before
@expand = expand
@limit = limit
@starting_after = starting_after
end
end
# Unique identifier for the object.
attr_reader :id
# Link to a webpage to learn more about the supplier.
attr_reader :info_url
# Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
attr_reader :livemode
# The locations in which this supplier operates.
attr_reader :locations
# Name of this carbon removal supplier.
attr_reader :name
# String representing the objects type. Objects of the same type share the same value.
attr_reader :object
# The scientific pathway used for carbon removal.
attr_reader :removal_pathway
# Lists all available Climate supplier objects.
def self.list(params = {}, opts = {})
def self.list(filters = {}, opts = {})
request_stripe_object(
method: :get,
path: "/v1/climate/suppliers",
params: params,
params: filters,
opts: opts
)
end

File diff suppressed because it is too large Load Diff

View File

@ -1,24 +0,0 @@
# File generated from our OpenAPI spec
# frozen_string_literal: true
module Stripe
class ConnectCollectionTransfer < APIResource
OBJECT_NAME = "connect_collection_transfer"
def self.object_name
"connect_collection_transfer"
end
# Amount transferred, in cents (or local equivalent).
attr_reader :amount
# Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).
attr_reader :currency
# ID of the account that funds are being collected for.
attr_reader :destination
# Unique identifier for the object.
attr_reader :id
# Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
attr_reader :livemode
# String representing the object's type. Objects of the same type share the same value.
attr_reader :object
end
end

View File

@ -7,7 +7,7 @@ module Stripe
# Country Specs API makes these rules available to your integration.
#
# You can also view the information from this API call as [an online
# guide](https://docs.stripe.com/docs/connect/required-verification-information).
# guide](https://stripe.com/docs/connect/required-verification-information).
class CountrySpec < APIResource
extend Stripe::APIOperations::List
@ -16,63 +16,9 @@ module Stripe
"country_spec"
end
class VerificationFields < Stripe::StripeObject
class Company < Stripe::StripeObject
# Additional fields which are only required for some users.
attr_reader :additional
# Fields which every account must eventually provide.
attr_reader :minimum
end
class Individual < Stripe::StripeObject
# Additional fields which are only required for some users.
attr_reader :additional
# Fields which every account must eventually provide.
attr_reader :minimum
end
# Attribute for field company
attr_reader :company
# Attribute for field individual
attr_reader :individual
end
class ListParams < Stripe::RequestParams
# A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.
attr_accessor :ending_before
# Specifies which fields in the response should be expanded.
attr_accessor :expand
# A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.
attr_accessor :limit
# A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.
attr_accessor :starting_after
def initialize(ending_before: nil, expand: nil, limit: nil, starting_after: nil)
@ending_before = ending_before
@expand = expand
@limit = limit
@starting_after = starting_after
end
end
# The default currency for this country. This applies to both payment methods and bank accounts.
attr_reader :default_currency
# Unique identifier for the object. Represented as the ISO country code for this country.
attr_reader :id
# String representing the object's type. Objects of the same type share the same value.
attr_reader :object
# Currencies that can be accepted in the specific country (for transfers).
attr_reader :supported_bank_account_currencies
# Currencies that can be accepted in the specified country (for payments).
attr_reader :supported_payment_currencies
# Payment methods available in the specified country. You may need to enable some payment methods (e.g., [ACH](https://stripe.com/docs/ach)) on your account before they appear in this list. The `stripe` payment method refers to [charging through your platform](https://stripe.com/docs/connect/destination-charges).
attr_reader :supported_payment_methods
# Countries that can accept transfers from the specified country.
attr_reader :supported_transfer_countries
# Attribute for field verification_fields
attr_reader :verification_fields
# Lists all Country Spec objects available in the API.
def self.list(params = {}, opts = {})
request_stripe_object(method: :get, path: "/v1/country_specs", params: params, opts: opts)
def self.list(filters = {}, opts = {})
request_stripe_object(method: :get, path: "/v1/country_specs", params: filters, opts: opts)
end
end
end

View File

@ -16,194 +16,6 @@ module Stripe
"coupon"
end
class AppliesTo < Stripe::StripeObject
# A list of product IDs this coupon applies to
attr_reader :products
end
class CurrencyOptions < Stripe::StripeObject
# Amount (in the `currency` specified) that will be taken off the subtotal of any invoices for this customer.
attr_reader :amount_off
end
class DeleteParams < Stripe::RequestParams; end
class UpdateParams < Stripe::RequestParams
class CurrencyOptions < Stripe::RequestParams
# A positive integer representing the amount to subtract from an invoice total.
attr_accessor :amount_off
def initialize(amount_off: nil)
@amount_off = amount_off
end
end
# Coupons defined in each available currency option (only supported if the coupon is amount-based). Each key must be a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) and a [supported currency](https://stripe.com/docs/currencies).
attr_accessor :currency_options
# Specifies which fields in the response should be expanded.
attr_accessor :expand
# Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
attr_accessor :metadata
# Name of the coupon displayed to customers on, for instance invoices, or receipts. By default the `id` is shown if `name` is not set.
attr_accessor :name
def initialize(currency_options: nil, expand: nil, metadata: nil, name: nil)
@currency_options = currency_options
@expand = expand
@metadata = metadata
@name = name
end
end
class ListParams < Stripe::RequestParams
class Created < Stripe::RequestParams
# Minimum value to filter by (exclusive)
attr_accessor :gt
# Minimum value to filter by (inclusive)
attr_accessor :gte
# Maximum value to filter by (exclusive)
attr_accessor :lt
# Maximum value to filter by (inclusive)
attr_accessor :lte
def initialize(gt: nil, gte: nil, lt: nil, lte: nil)
@gt = gt
@gte = gte
@lt = lt
@lte = lte
end
end
# A filter on the list, based on the object `created` field. The value can be a string with an integer Unix timestamp, or it can be a dictionary with a number of different query options.
attr_accessor :created
# A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.
attr_accessor :ending_before
# Specifies which fields in the response should be expanded.
attr_accessor :expand
# A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.
attr_accessor :limit
# A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.
attr_accessor :starting_after
def initialize(created: nil, ending_before: nil, expand: nil, limit: nil, starting_after: nil)
@created = created
@ending_before = ending_before
@expand = expand
@limit = limit
@starting_after = starting_after
end
end
class CreateParams < Stripe::RequestParams
class AppliesTo < Stripe::RequestParams
# An array of Product IDs that this Coupon will apply to.
attr_accessor :products
def initialize(products: nil)
@products = products
end
end
class CurrencyOptions < Stripe::RequestParams
# A positive integer representing the amount to subtract from an invoice total.
attr_accessor :amount_off
def initialize(amount_off: nil)
@amount_off = amount_off
end
end
# A positive integer representing the amount to subtract from an invoice total (required if `percent_off` is not passed).
attr_accessor :amount_off
# A hash containing directions for what this Coupon will apply discounts to.
attr_accessor :applies_to
# Three-letter [ISO code for the currency](https://stripe.com/docs/currencies) of the `amount_off` parameter (required if `amount_off` is passed).
attr_accessor :currency
# Coupons defined in each available currency option (only supported if `amount_off` is passed). Each key must be a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) and a [supported currency](https://stripe.com/docs/currencies).
attr_accessor :currency_options
# Specifies how long the discount will be in effect if used on a subscription. Defaults to `once`.
attr_accessor :duration
# Required only if `duration` is `repeating`, in which case it must be a positive integer that specifies the number of months the discount will be in effect.
attr_accessor :duration_in_months
# Specifies which fields in the response should be expanded.
attr_accessor :expand
# Unique string of your choice that will be used to identify this coupon when applying it to a customer. If you don't want to specify a particular code, you can leave the ID blank and we'll generate a random code for you.
attr_accessor :id
# A positive integer specifying the number of times the coupon can be redeemed before it's no longer valid. For example, you might have a 50% off coupon that the first 20 readers of your blog can use.
attr_accessor :max_redemptions
# Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
attr_accessor :metadata
# Name of the coupon displayed to customers on, for instance invoices, or receipts. By default the `id` is shown if `name` is not set.
attr_accessor :name
# A positive float larger than 0, and smaller or equal to 100, that represents the discount the coupon will apply (required if `amount_off` is not passed).
attr_accessor :percent_off
# Unix timestamp specifying the last time at which the coupon can be redeemed. After the redeem_by date, the coupon can no longer be applied to new customers.
attr_accessor :redeem_by
def initialize(
amount_off: nil,
applies_to: nil,
currency: nil,
currency_options: nil,
duration: nil,
duration_in_months: nil,
expand: nil,
id: nil,
max_redemptions: nil,
metadata: nil,
name: nil,
percent_off: nil,
redeem_by: nil
)
@amount_off = amount_off
@applies_to = applies_to
@currency = currency
@currency_options = currency_options
@duration = duration
@duration_in_months = duration_in_months
@expand = expand
@id = id
@max_redemptions = max_redemptions
@metadata = metadata
@name = name
@percent_off = percent_off
@redeem_by = redeem_by
end
end
# Amount (in the `currency` specified) that will be taken off the subtotal of any invoices for this customer.
attr_reader :amount_off
# Attribute for field applies_to
attr_reader :applies_to
# Time at which the object was created. Measured in seconds since the Unix epoch.
attr_reader :created
# If `amount_off` has been set, the three-letter [ISO code for the currency](https://stripe.com/docs/currencies) of the amount to take off.
attr_reader :currency
# Coupons defined in each available currency option. Each key must be a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) and a [supported currency](https://stripe.com/docs/currencies).
attr_reader :currency_options
# One of `forever`, `once`, or `repeating`. Describes how long a customer who applies this coupon will get the discount.
attr_reader :duration
# If `duration` is `repeating`, the number of months the coupon applies. Null if coupon `duration` is `forever` or `once`.
attr_reader :duration_in_months
# Unique identifier for the object.
attr_reader :id
# Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
attr_reader :livemode
# Maximum number of times this coupon can be redeemed, in total, across all customers, before it is no longer valid.
attr_reader :max_redemptions
# Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
attr_reader :metadata
# Name of the coupon displayed to customers on for instance invoices or receipts.
attr_reader :name
# String representing the object's type. Objects of the same type share the same value.
attr_reader :object
# Percent that will be taken off the subtotal of any invoices for this customer for the duration of the coupon. For example, a coupon with percent_off of 50 will make a $ (or local equivalent)100 invoice $ (or local equivalent)50 instead.
attr_reader :percent_off
# Date after which the coupon can no longer be redeemed.
attr_reader :redeem_by
# Number of times this coupon has been applied to a customer.
attr_reader :times_redeemed
# Taking account of the above properties, whether this coupon can still be applied to a customer.
attr_reader :valid
# Always true for a deleted object
attr_reader :deleted
# You can create coupons easily via the [coupon management](https://dashboard.stripe.com/coupons) page of the Stripe dashboard. Coupon creation is also accessible via the API if you need to create coupons on the fly.
#
# A coupon has either a percent_off or an amount_off and currency. If you set an amount_off, that amount will be subtracted from any invoice's subtotal. For example, an invoice with a subtotal of 100 will have a final total of 0 if a coupon with an amount_off of 200 is applied to it and an invoice with a subtotal of 300 will have a final total of 100 if a coupon with an amount_off of 200 is applied to it.
@ -212,10 +24,10 @@ module Stripe
end
# You can delete coupons via the [coupon management](https://dashboard.stripe.com/coupons) page of the Stripe dashboard. However, deleting a coupon does not affect any customers who have already applied the coupon; it means that new customers can't redeem the coupon. You can also delete coupons via the API.
def self.delete(coupon, params = {}, opts = {})
def self.delete(id, params = {}, opts = {})
request_stripe_object(
method: :delete,
path: format("/v1/coupons/%<coupon>s", { coupon: CGI.escape(coupon) }),
path: format("/v1/coupons/%<id>s", { id: CGI.escape(id) }),
params: params,
opts: opts
)
@ -232,15 +44,15 @@ module Stripe
end
# Returns a list of your coupons.
def self.list(params = {}, opts = {})
request_stripe_object(method: :get, path: "/v1/coupons", params: params, opts: opts)
def self.list(filters = {}, opts = {})
request_stripe_object(method: :get, path: "/v1/coupons", params: filters, opts: opts)
end
# Updates the metadata of a coupon. Other coupon details (currency, duration, amount_off) are, by design, not editable.
def self.update(coupon, params = {}, opts = {})
def self.update(id, params = {}, opts = {})
request_stripe_object(
method: :post,
path: format("/v1/coupons/%<coupon>s", { coupon: CGI.escape(coupon) }),
path: format("/v1/coupons/%<id>s", { id: CGI.escape(id) }),
params: params,
opts: opts
)

View File

@ -15,669 +15,27 @@ module Stripe
"credit_note"
end
class DiscountAmount < Stripe::StripeObject
# The amount, in cents (or local equivalent), of the discount.
attr_reader :amount
# The discount that was applied to get this discount amount.
attr_reader :discount
end
class PretaxCreditAmount < Stripe::StripeObject
# The amount, in cents (or local equivalent), of the pretax credit amount.
attr_reader :amount
# The credit balance transaction that was applied to get this pretax credit amount.
attr_reader :credit_balance_transaction
# The discount that was applied to get this pretax credit amount.
attr_reader :discount
# Type of the pretax credit amount referenced.
attr_reader :type
end
class Refund < Stripe::StripeObject
# Amount of the refund that applies to this credit note, in cents (or local equivalent).
attr_reader :amount_refunded
# ID of the refund.
attr_reader :refund
end
class ShippingCost < Stripe::StripeObject
class Tax < Stripe::StripeObject
# Amount of tax applied for this rate.
attr_reader :amount
# Tax rates can be applied to [invoices](/invoicing/taxes/tax-rates), [subscriptions](/billing/taxes/tax-rates) and [Checkout Sessions](/payments/checkout/use-manual-tax-rates) to collect tax.
#
# Related guide: [Tax rates](/billing/taxes/tax-rates)
attr_reader :rate
# The reasoning behind this tax, for example, if the product is tax exempt. The possible values for this field may be extended as new tax rules are supported.
attr_reader :taxability_reason
# The amount on which tax is calculated, in cents (or local equivalent).
attr_reader :taxable_amount
end
# Total shipping cost before any taxes are applied.
attr_reader :amount_subtotal
# Total tax amount applied due to shipping costs. If no tax was applied, defaults to 0.
attr_reader :amount_tax
# Total shipping cost after taxes are applied.
attr_reader :amount_total
# The ID of the ShippingRate for this invoice.
attr_reader :shipping_rate
# The taxes applied to the shipping rate.
attr_reader :taxes
end
class TotalTax < Stripe::StripeObject
class TaxRateDetails < Stripe::StripeObject
# Attribute for field tax_rate
attr_reader :tax_rate
end
# The amount of the tax, in cents (or local equivalent).
attr_reader :amount
# Whether this tax is inclusive or exclusive.
attr_reader :tax_behavior
# Additional details about the tax rate. Only present when `type` is `tax_rate_details`.
attr_reader :tax_rate_details
# The reasoning behind this tax, for example, if the product is tax exempt. The possible values for this field may be extended as new tax rules are supported.
attr_reader :taxability_reason
# The amount on which tax is calculated, in cents (or local equivalent).
attr_reader :taxable_amount
# The type of tax information.
attr_reader :type
end
class ListParams < Stripe::RequestParams
class Created < Stripe::RequestParams
# Minimum value to filter by (exclusive)
attr_accessor :gt
# Minimum value to filter by (inclusive)
attr_accessor :gte
# Maximum value to filter by (exclusive)
attr_accessor :lt
# Maximum value to filter by (inclusive)
attr_accessor :lte
def initialize(gt: nil, gte: nil, lt: nil, lte: nil)
@gt = gt
@gte = gte
@lt = lt
@lte = lte
end
end
# Only return credit notes that were created during the given date interval.
attr_accessor :created
# Only return credit notes for the customer specified by this customer ID.
attr_accessor :customer
# A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.
attr_accessor :ending_before
# Specifies which fields in the response should be expanded.
attr_accessor :expand
# Only return credit notes for the invoice specified by this invoice ID.
attr_accessor :invoice
# A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.
attr_accessor :limit
# A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.
attr_accessor :starting_after
def initialize(
created: nil,
customer: nil,
ending_before: nil,
expand: nil,
invoice: nil,
limit: nil,
starting_after: nil
)
@created = created
@customer = customer
@ending_before = ending_before
@expand = expand
@invoice = invoice
@limit = limit
@starting_after = starting_after
end
end
class CreateParams < Stripe::RequestParams
class Line < Stripe::RequestParams
class TaxAmount < Stripe::RequestParams
# The amount, in cents (or local equivalent), of the tax.
attr_accessor :amount
# The id of the tax rate for this tax amount. The tax rate must have been automatically created by Stripe.
attr_accessor :tax_rate
# The amount on which tax is calculated, in cents (or local equivalent).
attr_accessor :taxable_amount
def initialize(amount: nil, tax_rate: nil, taxable_amount: nil)
@amount = amount
@tax_rate = tax_rate
@taxable_amount = taxable_amount
end
end
# The line item amount to credit. Only valid when `type` is `invoice_line_item`. If invoice is set up with `automatic_tax[enabled]=true`, this amount is tax exclusive
attr_accessor :amount
# The description of the credit note line item. Only valid when the `type` is `custom_line_item`.
attr_accessor :description
# The invoice line item to credit. Only valid when the `type` is `invoice_line_item`.
attr_accessor :invoice_line_item
# The line item quantity to credit.
attr_accessor :quantity
# A list of up to 10 tax amounts for the credit note line item. Cannot be mixed with `tax_rates`.
attr_accessor :tax_amounts
# The tax rates which apply to the credit note line item. Only valid when the `type` is `custom_line_item` and cannot be mixed with `tax_amounts`.
attr_accessor :tax_rates
# Type of the credit note line item, one of `invoice_line_item` or `custom_line_item`
attr_accessor :type
# The integer unit amount in cents (or local equivalent) of the credit note line item. This `unit_amount` will be multiplied by the quantity to get the full amount to credit for this line item. Only valid when `type` is `custom_line_item`.
attr_accessor :unit_amount
# Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set.
attr_accessor :unit_amount_decimal
def initialize(
amount: nil,
description: nil,
invoice_line_item: nil,
quantity: nil,
tax_amounts: nil,
tax_rates: nil,
type: nil,
unit_amount: nil,
unit_amount_decimal: nil
)
@amount = amount
@description = description
@invoice_line_item = invoice_line_item
@quantity = quantity
@tax_amounts = tax_amounts
@tax_rates = tax_rates
@type = type
@unit_amount = unit_amount
@unit_amount_decimal = unit_amount_decimal
end
end
class Refund < Stripe::RequestParams
# Amount of the refund that applies to this credit note, in cents (or local equivalent). Defaults to the entire refund amount.
attr_accessor :amount_refunded
# ID of an existing refund to link this credit note to.
attr_accessor :refund
def initialize(amount_refunded: nil, refund: nil)
@amount_refunded = amount_refunded
@refund = refund
end
end
class ShippingCost < Stripe::RequestParams
# The ID of the shipping rate to use for this order.
attr_accessor :shipping_rate
def initialize(shipping_rate: nil)
@shipping_rate = shipping_rate
end
end
# The integer amount in cents (or local equivalent) representing the total amount of the credit note.
attr_accessor :amount
# The integer amount in cents (or local equivalent) representing the amount to credit the customer's balance, which will be automatically applied to their next invoice.
attr_accessor :credit_amount
# The date when this credit note is in effect. Same as `created` unless overwritten. When defined, this value replaces the system-generated 'Date of issue' printed on the credit note PDF.
attr_accessor :effective_at
# Type of email to send to the customer, one of `credit_note` or `none` and the default is `credit_note`.
attr_accessor :email_type
# Specifies which fields in the response should be expanded.
attr_accessor :expand
# ID of the invoice.
attr_accessor :invoice
# Line items that make up the credit note.
attr_accessor :lines
# The credit note's memo appears on the credit note PDF.
attr_accessor :memo
# Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
attr_accessor :metadata
# The integer amount in cents (or local equivalent) representing the amount that is credited outside of Stripe.
attr_accessor :out_of_band_amount
# Reason for issuing this credit note, one of `duplicate`, `fraudulent`, `order_change`, or `product_unsatisfactory`
attr_accessor :reason
# The integer amount in cents (or local equivalent) representing the amount to refund. If set, a refund will be created for the charge associated with the invoice.
attr_accessor :refund_amount
# Refunds to link to this credit note.
attr_accessor :refunds
# When shipping_cost contains the shipping_rate from the invoice, the shipping_cost is included in the credit note.
attr_accessor :shipping_cost
def initialize(
amount: nil,
credit_amount: nil,
effective_at: nil,
email_type: nil,
expand: nil,
invoice: nil,
lines: nil,
memo: nil,
metadata: nil,
out_of_band_amount: nil,
reason: nil,
refund_amount: nil,
refunds: nil,
shipping_cost: nil
)
@amount = amount
@credit_amount = credit_amount
@effective_at = effective_at
@email_type = email_type
@expand = expand
@invoice = invoice
@lines = lines
@memo = memo
@metadata = metadata
@out_of_band_amount = out_of_band_amount
@reason = reason
@refund_amount = refund_amount
@refunds = refunds
@shipping_cost = shipping_cost
end
end
class UpdateParams < Stripe::RequestParams
# Specifies which fields in the response should be expanded.
attr_accessor :expand
# Credit note memo.
attr_accessor :memo
# Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
attr_accessor :metadata
def initialize(expand: nil, memo: nil, metadata: nil)
@expand = expand
@memo = memo
@metadata = metadata
end
end
class PreviewParams < Stripe::RequestParams
class Line < Stripe::RequestParams
class TaxAmount < Stripe::RequestParams
# The amount, in cents (or local equivalent), of the tax.
attr_accessor :amount
# The id of the tax rate for this tax amount. The tax rate must have been automatically created by Stripe.
attr_accessor :tax_rate
# The amount on which tax is calculated, in cents (or local equivalent).
attr_accessor :taxable_amount
def initialize(amount: nil, tax_rate: nil, taxable_amount: nil)
@amount = amount
@tax_rate = tax_rate
@taxable_amount = taxable_amount
end
end
# The line item amount to credit. Only valid when `type` is `invoice_line_item`. If invoice is set up with `automatic_tax[enabled]=true`, this amount is tax exclusive
attr_accessor :amount
# The description of the credit note line item. Only valid when the `type` is `custom_line_item`.
attr_accessor :description
# The invoice line item to credit. Only valid when the `type` is `invoice_line_item`.
attr_accessor :invoice_line_item
# The line item quantity to credit.
attr_accessor :quantity
# A list of up to 10 tax amounts for the credit note line item. Cannot be mixed with `tax_rates`.
attr_accessor :tax_amounts
# The tax rates which apply to the credit note line item. Only valid when the `type` is `custom_line_item` and cannot be mixed with `tax_amounts`.
attr_accessor :tax_rates
# Type of the credit note line item, one of `invoice_line_item` or `custom_line_item`
attr_accessor :type
# The integer unit amount in cents (or local equivalent) of the credit note line item. This `unit_amount` will be multiplied by the quantity to get the full amount to credit for this line item. Only valid when `type` is `custom_line_item`.
attr_accessor :unit_amount
# Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set.
attr_accessor :unit_amount_decimal
def initialize(
amount: nil,
description: nil,
invoice_line_item: nil,
quantity: nil,
tax_amounts: nil,
tax_rates: nil,
type: nil,
unit_amount: nil,
unit_amount_decimal: nil
)
@amount = amount
@description = description
@invoice_line_item = invoice_line_item
@quantity = quantity
@tax_amounts = tax_amounts
@tax_rates = tax_rates
@type = type
@unit_amount = unit_amount
@unit_amount_decimal = unit_amount_decimal
end
end
class Refund < Stripe::RequestParams
# Amount of the refund that applies to this credit note, in cents (or local equivalent). Defaults to the entire refund amount.
attr_accessor :amount_refunded
# ID of an existing refund to link this credit note to.
attr_accessor :refund
def initialize(amount_refunded: nil, refund: nil)
@amount_refunded = amount_refunded
@refund = refund
end
end
class ShippingCost < Stripe::RequestParams
# The ID of the shipping rate to use for this order.
attr_accessor :shipping_rate
def initialize(shipping_rate: nil)
@shipping_rate = shipping_rate
end
end
# The integer amount in cents (or local equivalent) representing the total amount of the credit note.
attr_accessor :amount
# The integer amount in cents (or local equivalent) representing the amount to credit the customer's balance, which will be automatically applied to their next invoice.
attr_accessor :credit_amount
# The date when this credit note is in effect. Same as `created` unless overwritten. When defined, this value replaces the system-generated 'Date of issue' printed on the credit note PDF.
attr_accessor :effective_at
# Type of email to send to the customer, one of `credit_note` or `none` and the default is `credit_note`.
attr_accessor :email_type
# Specifies which fields in the response should be expanded.
attr_accessor :expand
# ID of the invoice.
attr_accessor :invoice
# Line items that make up the credit note.
attr_accessor :lines
# The credit note's memo appears on the credit note PDF.
attr_accessor :memo
# Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
attr_accessor :metadata
# The integer amount in cents (or local equivalent) representing the amount that is credited outside of Stripe.
attr_accessor :out_of_band_amount
# Reason for issuing this credit note, one of `duplicate`, `fraudulent`, `order_change`, or `product_unsatisfactory`
attr_accessor :reason
# The integer amount in cents (or local equivalent) representing the amount to refund. If set, a refund will be created for the charge associated with the invoice.
attr_accessor :refund_amount
# Refunds to link to this credit note.
attr_accessor :refunds
# When shipping_cost contains the shipping_rate from the invoice, the shipping_cost is included in the credit note.
attr_accessor :shipping_cost
def initialize(
amount: nil,
credit_amount: nil,
effective_at: nil,
email_type: nil,
expand: nil,
invoice: nil,
lines: nil,
memo: nil,
metadata: nil,
out_of_band_amount: nil,
reason: nil,
refund_amount: nil,
refunds: nil,
shipping_cost: nil
)
@amount = amount
@credit_amount = credit_amount
@effective_at = effective_at
@email_type = email_type
@expand = expand
@invoice = invoice
@lines = lines
@memo = memo
@metadata = metadata
@out_of_band_amount = out_of_band_amount
@reason = reason
@refund_amount = refund_amount
@refunds = refunds
@shipping_cost = shipping_cost
end
end
class ListPreviewLineItemsParams < Stripe::RequestParams
class Line < Stripe::RequestParams
class TaxAmount < Stripe::RequestParams
# The amount, in cents (or local equivalent), of the tax.
attr_accessor :amount
# The id of the tax rate for this tax amount. The tax rate must have been automatically created by Stripe.
attr_accessor :tax_rate
# The amount on which tax is calculated, in cents (or local equivalent).
attr_accessor :taxable_amount
def initialize(amount: nil, tax_rate: nil, taxable_amount: nil)
@amount = amount
@tax_rate = tax_rate
@taxable_amount = taxable_amount
end
end
# The line item amount to credit. Only valid when `type` is `invoice_line_item`. If invoice is set up with `automatic_tax[enabled]=true`, this amount is tax exclusive
attr_accessor :amount
# The description of the credit note line item. Only valid when the `type` is `custom_line_item`.
attr_accessor :description
# The invoice line item to credit. Only valid when the `type` is `invoice_line_item`.
attr_accessor :invoice_line_item
# The line item quantity to credit.
attr_accessor :quantity
# A list of up to 10 tax amounts for the credit note line item. Cannot be mixed with `tax_rates`.
attr_accessor :tax_amounts
# The tax rates which apply to the credit note line item. Only valid when the `type` is `custom_line_item` and cannot be mixed with `tax_amounts`.
attr_accessor :tax_rates
# Type of the credit note line item, one of `invoice_line_item` or `custom_line_item`
attr_accessor :type
# The integer unit amount in cents (or local equivalent) of the credit note line item. This `unit_amount` will be multiplied by the quantity to get the full amount to credit for this line item. Only valid when `type` is `custom_line_item`.
attr_accessor :unit_amount
# Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set.
attr_accessor :unit_amount_decimal
def initialize(
amount: nil,
description: nil,
invoice_line_item: nil,
quantity: nil,
tax_amounts: nil,
tax_rates: nil,
type: nil,
unit_amount: nil,
unit_amount_decimal: nil
)
@amount = amount
@description = description
@invoice_line_item = invoice_line_item
@quantity = quantity
@tax_amounts = tax_amounts
@tax_rates = tax_rates
@type = type
@unit_amount = unit_amount
@unit_amount_decimal = unit_amount_decimal
end
end
class Refund < Stripe::RequestParams
# Amount of the refund that applies to this credit note, in cents (or local equivalent). Defaults to the entire refund amount.
attr_accessor :amount_refunded
# ID of an existing refund to link this credit note to.
attr_accessor :refund
def initialize(amount_refunded: nil, refund: nil)
@amount_refunded = amount_refunded
@refund = refund
end
end
class ShippingCost < Stripe::RequestParams
# The ID of the shipping rate to use for this order.
attr_accessor :shipping_rate
def initialize(shipping_rate: nil)
@shipping_rate = shipping_rate
end
end
# The integer amount in cents (or local equivalent) representing the total amount of the credit note.
attr_accessor :amount
# The integer amount in cents (or local equivalent) representing the amount to credit the customer's balance, which will be automatically applied to their next invoice.
attr_accessor :credit_amount
# The date when this credit note is in effect. Same as `created` unless overwritten. When defined, this value replaces the system-generated 'Date of issue' printed on the credit note PDF.
attr_accessor :effective_at
# Type of email to send to the customer, one of `credit_note` or `none` and the default is `credit_note`.
attr_accessor :email_type
# A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.
attr_accessor :ending_before
# Specifies which fields in the response should be expanded.
attr_accessor :expand
# ID of the invoice.
attr_accessor :invoice
# A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.
attr_accessor :limit
# Line items that make up the credit note.
attr_accessor :lines
# The credit note's memo appears on the credit note PDF.
attr_accessor :memo
# Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
attr_accessor :metadata
# The integer amount in cents (or local equivalent) representing the amount that is credited outside of Stripe.
attr_accessor :out_of_band_amount
# Reason for issuing this credit note, one of `duplicate`, `fraudulent`, `order_change`, or `product_unsatisfactory`
attr_accessor :reason
# The integer amount in cents (or local equivalent) representing the amount to refund. If set, a refund will be created for the charge associated with the invoice.
attr_accessor :refund_amount
# Refunds to link to this credit note.
attr_accessor :refunds
# When shipping_cost contains the shipping_rate from the invoice, the shipping_cost is included in the credit note.
attr_accessor :shipping_cost
# A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.
attr_accessor :starting_after
def initialize(
amount: nil,
credit_amount: nil,
effective_at: nil,
email_type: nil,
ending_before: nil,
expand: nil,
invoice: nil,
limit: nil,
lines: nil,
memo: nil,
metadata: nil,
out_of_band_amount: nil,
reason: nil,
refund_amount: nil,
refunds: nil,
shipping_cost: nil,
starting_after: nil
)
@amount = amount
@credit_amount = credit_amount
@effective_at = effective_at
@email_type = email_type
@ending_before = ending_before
@expand = expand
@invoice = invoice
@limit = limit
@lines = lines
@memo = memo
@metadata = metadata
@out_of_band_amount = out_of_band_amount
@reason = reason
@refund_amount = refund_amount
@refunds = refunds
@shipping_cost = shipping_cost
@starting_after = starting_after
end
end
class VoidCreditNoteParams < Stripe::RequestParams
# Specifies which fields in the response should be expanded.
attr_accessor :expand
def initialize(expand: nil)
@expand = expand
end
end
# The integer amount in cents (or local equivalent) representing the total amount of the credit note, including tax.
attr_reader :amount
# This is the sum of all the shipping amounts.
attr_reader :amount_shipping
# Time at which the object was created. Measured in seconds since the Unix epoch.
attr_reader :created
# Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).
attr_reader :currency
# ID of the customer.
attr_reader :customer
# Customer balance transaction related to this credit note.
attr_reader :customer_balance_transaction
# The integer amount in cents (or local equivalent) representing the total amount of discount that was credited.
attr_reader :discount_amount
# The aggregate amounts calculated per discount for all line items.
attr_reader :discount_amounts
# The date when this credit note is in effect. Same as `created` unless overwritten. When defined, this value replaces the system-generated 'Date of issue' printed on the credit note PDF.
attr_reader :effective_at
# Unique identifier for the object.
attr_reader :id
# ID of the invoice.
attr_reader :invoice
# Line items that make up the credit note
attr_reader :lines
# Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
attr_reader :livemode
# Customer-facing text that appears on the credit note PDF.
attr_reader :memo
# Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
attr_reader :metadata
# A unique number that identifies this particular credit note and appears on the PDF of the credit note and its associated invoice.
attr_reader :number
# String representing the object's type. Objects of the same type share the same value.
attr_reader :object
# Amount that was credited outside of Stripe.
attr_reader :out_of_band_amount
# The link to download the PDF of the credit note.
attr_reader :pdf
# The amount of the credit note that was refunded to the customer, credited to the customer's balance, credited outside of Stripe, or any combination thereof.
attr_reader :post_payment_amount
# The amount of the credit note by which the invoice's `amount_remaining` and `amount_due` were reduced.
attr_reader :pre_payment_amount
# The pretax credit amounts (ex: discount, credit grants, etc) for all line items.
attr_reader :pretax_credit_amounts
# Reason for issuing this credit note, one of `duplicate`, `fraudulent`, `order_change`, or `product_unsatisfactory`
attr_reader :reason
# Refunds related to this credit note.
attr_reader :refunds
# The details of the cost of shipping, including the ShippingRate applied to the invoice.
attr_reader :shipping_cost
# Status of this credit note, one of `issued` or `void`. Learn more about [voiding credit notes](https://stripe.com/docs/billing/invoices/credit-notes#voiding).
attr_reader :status
# The integer amount in cents (or local equivalent) representing the amount of the credit note, excluding exclusive tax and invoice level discounts.
attr_reader :subtotal
# The integer amount in cents (or local equivalent) representing the amount of the credit note, excluding all tax and invoice level discounts.
attr_reader :subtotal_excluding_tax
# The integer amount in cents (or local equivalent) representing the total amount of the credit note, including tax and all discount.
attr_reader :total
# The integer amount in cents (or local equivalent) representing the total amount of the credit note, excluding tax, but including discounts.
attr_reader :total_excluding_tax
# The aggregate tax information for all line items.
attr_reader :total_taxes
# Type of this credit note, one of `pre_payment` or `post_payment`. A `pre_payment` credit note means it was issued when the invoice was open. A `post_payment` credit note means it was issued when the invoice was paid.
attr_reader :type
# The time that the credit note was voided.
attr_reader :voided_at
# Issue a credit note to adjust the amount of a finalized invoice. A credit note will first reduce the invoice's amount_remaining (and amount_due), but not below zero.
# This amount is indicated by the credit note's pre_payment_amount. The excess amount is indicated by post_payment_amount, and it can result in any combination of the following:
# Issue a credit note to adjust the amount of a finalized invoice. For a status=open invoice, a credit note reduces
# its amount_due. For a status=paid invoice, a credit note does not affect its amount_due. Instead, it can result
# in any combination of the following:
#
#
# Refunds: create a new refund (using refund_amount) or link existing refunds (using refunds).
# Refund: create a new refund (using refund_amount) or link an existing refund (using refund).
# Customer balance credit: credit the customer's balance (using credit_amount) which will be automatically applied to their next invoice when it's finalized.
# Outside of Stripe credit: record the amount that is or will be credited outside of Stripe (using out_of_band_amount).
#
#
# The sum of refunds, customer balance credits, and outside of Stripe credits must equal the post_payment_amount.
# For post-payment credit notes the sum of the refund, credit and outside of Stripe amounts must equal the credit note total.
#
# You may issue multiple credit notes for an invoice. Each credit note may increment the invoice's pre_payment_credit_notes_amount,
# post_payment_credit_notes_amount, or both, depending on the invoice's amount_remaining at the time of credit note creation.
# You may issue multiple credit notes for an invoice. Each credit note will increment the invoice's pre_payment_credit_notes_amount
# or post_payment_credit_notes_amount depending on its status at the time of credit note creation.
def self.create(params = {}, opts = {})
request_stripe_object(method: :post, path: "/v1/credit_notes", params: params, opts: opts)
end
# Returns a list of credit notes.
def self.list(params = {}, opts = {})
request_stripe_object(method: :get, path: "/v1/credit_notes", params: params, opts: opts)
def self.list(filters = {}, opts = {})
request_stripe_object(method: :get, path: "/v1/credit_notes", params: filters, opts: opts)
end
# When retrieving a credit note preview, you'll get a lines property containing the first handful of those items. This URL you can retrieve the full (paginated) list of line items.
@ -710,7 +68,7 @@ module Stripe
)
end
# Marks a credit note as void. Learn more about [voiding credit notes](https://docs.stripe.com/docs/billing/invoices/credit-notes#voiding).
# Marks a credit note as void. Learn more about [voiding credit notes](https://stripe.com/docs/billing/invoices/credit-notes#voiding).
def void_credit_note(params = {}, opts = {})
request_stripe_object(
method: :post,
@ -720,7 +78,7 @@ module Stripe
)
end
# Marks a credit note as void. Learn more about [voiding credit notes](https://docs.stripe.com/docs/billing/invoices/credit-notes#voiding).
# Marks a credit note as void. Learn more about [voiding credit notes](https://stripe.com/docs/billing/invoices/credit-notes#voiding).
def self.void_credit_note(id, params = {}, opts = {})
request_stripe_object(
method: :post,

View File

@ -8,72 +8,5 @@ module Stripe
def self.object_name
"credit_note_line_item"
end
class DiscountAmount < Stripe::StripeObject
# The amount, in cents (or local equivalent), of the discount.
attr_reader :amount
# The discount that was applied to get this discount amount.
attr_reader :discount
end
class PretaxCreditAmount < Stripe::StripeObject
# The amount, in cents (or local equivalent), of the pretax credit amount.
attr_reader :amount
# The credit balance transaction that was applied to get this pretax credit amount.
attr_reader :credit_balance_transaction
# The discount that was applied to get this pretax credit amount.
attr_reader :discount
# Type of the pretax credit amount referenced.
attr_reader :type
end
class Tax < Stripe::StripeObject
class TaxRateDetails < Stripe::StripeObject
# Attribute for field tax_rate
attr_reader :tax_rate
end
# The amount of the tax, in cents (or local equivalent).
attr_reader :amount
# Whether this tax is inclusive or exclusive.
attr_reader :tax_behavior
# Additional details about the tax rate. Only present when `type` is `tax_rate_details`.
attr_reader :tax_rate_details
# The reasoning behind this tax, for example, if the product is tax exempt. The possible values for this field may be extended as new tax rules are supported.
attr_reader :taxability_reason
# The amount on which tax is calculated, in cents (or local equivalent).
attr_reader :taxable_amount
# The type of tax information.
attr_reader :type
end
# The integer amount in cents (or local equivalent) representing the gross amount being credited for this line item, excluding (exclusive) tax and discounts.
attr_reader :amount
# Description of the item being credited.
attr_reader :description
# The integer amount in cents (or local equivalent) representing the discount being credited for this line item.
attr_reader :discount_amount
# The amount of discount calculated per discount for this line item
attr_reader :discount_amounts
# Unique identifier for the object.
attr_reader :id
# ID of the invoice line item being credited
attr_reader :invoice_line_item
# Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
attr_reader :livemode
# String representing the object's type. Objects of the same type share the same value.
attr_reader :object
# The pretax credit amounts (ex: discount, credit grants, etc) for this line item.
attr_reader :pretax_credit_amounts
# The number of units of product being credited.
attr_reader :quantity
# The tax rates which apply to the line item.
attr_reader :tax_rates
# The tax information of the line item.
attr_reader :taxes
# The type of the credit note line item, one of `invoice_line_item` or `custom_line_item`. When the type is `invoice_line_item` there is an additional `invoice_line_item` property on the resource the value of which is the id of the credited line item on the invoice.
attr_reader :type
# The cost of each unit of product being credited.
attr_reader :unit_amount
# Same as `unit_amount`, but contains a decimal value with at most 12 decimal places.
attr_reader :unit_amount_decimal
end
end

View File

@ -2,8 +2,9 @@
# frozen_string_literal: true
module Stripe
# This object represents a customer of your business. Use it to [create recurring charges](https://stripe.com/docs/invoicing/customer), [save payment](https://stripe.com/docs/payments/save-during-payment) and contact information,
# and track payments that belong to the same customer.
# This object represents a customer of your business. Use it to create recurring charges and track payments that belong to the same customer.
#
# Related guide: [Save a card during payment](https://stripe.com/docs/payments/save-during-payment)
class Customer < APIResource
extend Stripe::APIOperations::Create
include Stripe::APIOperations::Delete
@ -22,828 +23,6 @@ module Stripe
nested_resource_class_methods :source, operations: %i[create retrieve update delete list]
nested_resource_class_methods :tax_id, operations: %i[create retrieve delete list]
class Address < Stripe::StripeObject
# City, district, suburb, town, or village.
attr_reader :city
# Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).
attr_reader :country
# Address line 1 (e.g., street, PO Box, or company name).
attr_reader :line1
# Address line 2 (e.g., apartment, suite, unit, or building).
attr_reader :line2
# ZIP or postal code.
attr_reader :postal_code
# State, county, province, or region.
attr_reader :state
end
class InvoiceSettings < Stripe::StripeObject
class CustomField < Stripe::StripeObject
# The name of the custom field.
attr_reader :name
# The value of the custom field.
attr_reader :value
end
class RenderingOptions < Stripe::StripeObject
# How line-item prices and amounts will be displayed with respect to tax on invoice PDFs.
attr_reader :amount_tax_display
# ID of the invoice rendering template to be used for this customer's invoices. If set, the template will be used on all invoices for this customer unless a template is set directly on the invoice.
attr_reader :template
end
# Default custom fields to be displayed on invoices for this customer.
attr_reader :custom_fields
# ID of a payment method that's attached to the customer, to be used as the customer's default payment method for subscriptions and invoices.
attr_reader :default_payment_method
# Default footer to be displayed on invoices for this customer.
attr_reader :footer
# Default options for invoice PDF rendering for this customer.
attr_reader :rendering_options
end
class Shipping < Stripe::StripeObject
class Address < Stripe::StripeObject
# City, district, suburb, town, or village.
attr_reader :city
# Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).
attr_reader :country
# Address line 1 (e.g., street, PO Box, or company name).
attr_reader :line1
# Address line 2 (e.g., apartment, suite, unit, or building).
attr_reader :line2
# ZIP or postal code.
attr_reader :postal_code
# State, county, province, or region.
attr_reader :state
end
# Attribute for field address
attr_reader :address
# The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc.
attr_reader :carrier
# Recipient name.
attr_reader :name
# Recipient phone (including extension).
attr_reader :phone
# The tracking number for a physical product, obtained from the delivery service. If multiple tracking numbers were generated for this purchase, please separate them with commas.
attr_reader :tracking_number
end
class Tax < Stripe::StripeObject
class Location < Stripe::StripeObject
# The identified tax country of the customer.
attr_reader :country
# The data source used to infer the customer's location.
attr_reader :source
# The identified tax state, county, province, or region of the customer.
attr_reader :state
end
# Surfaces if automatic tax computation is possible given the current customer location information.
attr_reader :automatic_tax
# A recent IP address of the customer used for tax reporting and tax location inference.
attr_reader :ip_address
# The identified tax location of the customer.
attr_reader :location
end
class DeleteParams < Stripe::RequestParams; end
class UpdateParams < Stripe::RequestParams
class Address < Stripe::RequestParams
# City, district, suburb, town, or village.
attr_accessor :city
# A freeform text field for the country. However, in order to activate some tax features, the format should be a two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).
attr_accessor :country
# Address line 1 (e.g., street, PO Box, or company name).
attr_accessor :line1
# Address line 2 (e.g., apartment, suite, unit, or building).
attr_accessor :line2
# ZIP or postal code.
attr_accessor :postal_code
# State, county, province, or region.
attr_accessor :state
def initialize(
city: nil,
country: nil,
line1: nil,
line2: nil,
postal_code: nil,
state: nil
)
@city = city
@country = country
@line1 = line1
@line2 = line2
@postal_code = postal_code
@state = state
end
end
class CashBalance < Stripe::RequestParams
class Settings < Stripe::RequestParams
# Controls how funds transferred by the customer are applied to payment intents and invoices. Valid options are `automatic`, `manual`, or `merchant_default`. For more information about these reconciliation modes, see [Reconciliation](https://stripe.com/docs/payments/customer-balance/reconciliation).
attr_accessor :reconciliation_mode
def initialize(reconciliation_mode: nil)
@reconciliation_mode = reconciliation_mode
end
end
# Settings controlling the behavior of the customer's cash balance,
# such as reconciliation of funds received.
attr_accessor :settings
def initialize(settings: nil)
@settings = settings
end
end
class InvoiceSettings < Stripe::RequestParams
class CustomField < Stripe::RequestParams
# The name of the custom field. This may be up to 40 characters.
attr_accessor :name
# The value of the custom field. This may be up to 140 characters.
attr_accessor :value
def initialize(name: nil, value: nil)
@name = name
@value = value
end
end
class RenderingOptions < Stripe::RequestParams
# How line-item prices and amounts will be displayed with respect to tax on invoice PDFs. One of `exclude_tax` or `include_inclusive_tax`. `include_inclusive_tax` will include inclusive tax (and exclude exclusive tax) in invoice PDF amounts. `exclude_tax` will exclude all tax (inclusive and exclusive alike) from invoice PDF amounts.
attr_accessor :amount_tax_display
# ID of the invoice rendering template to use for future invoices.
attr_accessor :template
def initialize(amount_tax_display: nil, template: nil)
@amount_tax_display = amount_tax_display
@template = template
end
end
# The list of up to 4 default custom fields to be displayed on invoices for this customer. When updating, pass an empty string to remove previously-defined fields.
attr_accessor :custom_fields
# ID of a payment method that's attached to the customer, to be used as the customer's default payment method for subscriptions and invoices.
attr_accessor :default_payment_method
# Default footer to be displayed on invoices for this customer.
attr_accessor :footer
# Default options for invoice PDF rendering for this customer.
attr_accessor :rendering_options
def initialize(
custom_fields: nil,
default_payment_method: nil,
footer: nil,
rendering_options: nil
)
@custom_fields = custom_fields
@default_payment_method = default_payment_method
@footer = footer
@rendering_options = rendering_options
end
end
class Shipping < Stripe::RequestParams
class Address < Stripe::RequestParams
# City, district, suburb, town, or village.
attr_accessor :city
# A freeform text field for the country. However, in order to activate some tax features, the format should be a two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).
attr_accessor :country
# Address line 1 (e.g., street, PO Box, or company name).
attr_accessor :line1
# Address line 2 (e.g., apartment, suite, unit, or building).
attr_accessor :line2
# ZIP or postal code.
attr_accessor :postal_code
# State, county, province, or region.
attr_accessor :state
def initialize(
city: nil,
country: nil,
line1: nil,
line2: nil,
postal_code: nil,
state: nil
)
@city = city
@country = country
@line1 = line1
@line2 = line2
@postal_code = postal_code
@state = state
end
end
# Customer shipping address.
attr_accessor :address
# Customer name.
attr_accessor :name
# Customer phone (including extension).
attr_accessor :phone
def initialize(address: nil, name: nil, phone: nil)
@address = address
@name = name
@phone = phone
end
end
class Tax < Stripe::RequestParams
# A recent IP address of the customer used for tax reporting and tax location inference. Stripe recommends updating the IP address when a new PaymentMethod is attached or the address field on the customer is updated. We recommend against updating this field more frequently since it could result in unexpected tax location/reporting outcomes.
attr_accessor :ip_address
# A flag that indicates when Stripe should validate the customer tax location. Defaults to `auto`.
attr_accessor :validate_location
def initialize(ip_address: nil, validate_location: nil)
@ip_address = ip_address
@validate_location = validate_location
end
end
# The customer's address.
attr_accessor :address
# An integer amount in cents (or local equivalent) that represents the customer's current balance, which affect the customer's future invoices. A negative amount represents a credit that decreases the amount due on an invoice; a positive amount increases the amount due on an invoice.
attr_accessor :balance
# Balance information and default balance settings for this customer.
attr_accessor :cash_balance
# If you are using payment methods created via the PaymentMethods API, see the [invoice_settings.default_payment_method](https://stripe.com/docs/api/customers/update#update_customer-invoice_settings-default_payment_method) parameter.
#
# Provide the ID of a payment source already attached to this customer to make it this customer's default payment source.
#
# If you want to add a new payment source and make it the default, see the [source](https://stripe.com/docs/api/customers/update#update_customer-source) property.
attr_accessor :default_source
# An arbitrary string that you can attach to a customer object. It is displayed alongside the customer in the dashboard.
attr_accessor :description
# Customer's email address. It's displayed alongside the customer in your dashboard and can be useful for searching and tracking. This may be up to *512 characters*.
attr_accessor :email
# Specifies which fields in the response should be expanded.
attr_accessor :expand
# The prefix for the customer used to generate unique invoice numbers. Must be 312 uppercase letters or numbers.
attr_accessor :invoice_prefix
# Default invoice settings for this customer.
attr_accessor :invoice_settings
# Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
attr_accessor :metadata
# The customer's full name or business name.
attr_accessor :name
# The sequence to be used on the customer's next invoice. Defaults to 1.
attr_accessor :next_invoice_sequence
# The customer's phone number.
attr_accessor :phone
# Customer's preferred languages, ordered by preference.
attr_accessor :preferred_locales
# The customer's shipping information. Appears on invoices emailed to this customer.
attr_accessor :shipping
# Attribute for param field source
attr_accessor :source
# Tax details about the customer.
attr_accessor :tax
# The customer's tax exemption. One of `none`, `exempt`, or `reverse`.
attr_accessor :tax_exempt
# Attribute for param field validate
attr_accessor :validate
def initialize(
address: nil,
balance: nil,
cash_balance: nil,
default_source: nil,
description: nil,
email: nil,
expand: nil,
invoice_prefix: nil,
invoice_settings: nil,
metadata: nil,
name: nil,
next_invoice_sequence: nil,
phone: nil,
preferred_locales: nil,
shipping: nil,
source: nil,
tax: nil,
tax_exempt: nil,
validate: nil
)
@address = address
@balance = balance
@cash_balance = cash_balance
@default_source = default_source
@description = description
@email = email
@expand = expand
@invoice_prefix = invoice_prefix
@invoice_settings = invoice_settings
@metadata = metadata
@name = name
@next_invoice_sequence = next_invoice_sequence
@phone = phone
@preferred_locales = preferred_locales
@shipping = shipping
@source = source
@tax = tax
@tax_exempt = tax_exempt
@validate = validate
end
end
class DeleteDiscountParams < Stripe::RequestParams; end
class ListParams < Stripe::RequestParams
class Created < Stripe::RequestParams
# Minimum value to filter by (exclusive)
attr_accessor :gt
# Minimum value to filter by (inclusive)
attr_accessor :gte
# Maximum value to filter by (exclusive)
attr_accessor :lt
# Maximum value to filter by (inclusive)
attr_accessor :lte
def initialize(gt: nil, gte: nil, lt: nil, lte: nil)
@gt = gt
@gte = gte
@lt = lt
@lte = lte
end
end
# Only return customers that were created during the given date interval.
attr_accessor :created
# A case-sensitive filter on the list based on the customer's `email` field. The value must be a string.
attr_accessor :email
# A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.
attr_accessor :ending_before
# Specifies which fields in the response should be expanded.
attr_accessor :expand
# A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.
attr_accessor :limit
# A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.
attr_accessor :starting_after
# Provides a list of customers that are associated with the specified test clock. The response will not include customers with test clocks if this parameter is not set.
attr_accessor :test_clock
def initialize(
created: nil,
email: nil,
ending_before: nil,
expand: nil,
limit: nil,
starting_after: nil,
test_clock: nil
)
@created = created
@email = email
@ending_before = ending_before
@expand = expand
@limit = limit
@starting_after = starting_after
@test_clock = test_clock
end
end
class CreateParams < Stripe::RequestParams
class Address < Stripe::RequestParams
# City, district, suburb, town, or village.
attr_accessor :city
# A freeform text field for the country. However, in order to activate some tax features, the format should be a two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).
attr_accessor :country
# Address line 1 (e.g., street, PO Box, or company name).
attr_accessor :line1
# Address line 2 (e.g., apartment, suite, unit, or building).
attr_accessor :line2
# ZIP or postal code.
attr_accessor :postal_code
# State, county, province, or region.
attr_accessor :state
def initialize(
city: nil,
country: nil,
line1: nil,
line2: nil,
postal_code: nil,
state: nil
)
@city = city
@country = country
@line1 = line1
@line2 = line2
@postal_code = postal_code
@state = state
end
end
class CashBalance < Stripe::RequestParams
class Settings < Stripe::RequestParams
# Controls how funds transferred by the customer are applied to payment intents and invoices. Valid options are `automatic`, `manual`, or `merchant_default`. For more information about these reconciliation modes, see [Reconciliation](https://stripe.com/docs/payments/customer-balance/reconciliation).
attr_accessor :reconciliation_mode
def initialize(reconciliation_mode: nil)
@reconciliation_mode = reconciliation_mode
end
end
# Settings controlling the behavior of the customer's cash balance,
# such as reconciliation of funds received.
attr_accessor :settings
def initialize(settings: nil)
@settings = settings
end
end
class InvoiceSettings < Stripe::RequestParams
class CustomField < Stripe::RequestParams
# The name of the custom field. This may be up to 40 characters.
attr_accessor :name
# The value of the custom field. This may be up to 140 characters.
attr_accessor :value
def initialize(name: nil, value: nil)
@name = name
@value = value
end
end
class RenderingOptions < Stripe::RequestParams
# How line-item prices and amounts will be displayed with respect to tax on invoice PDFs. One of `exclude_tax` or `include_inclusive_tax`. `include_inclusive_tax` will include inclusive tax (and exclude exclusive tax) in invoice PDF amounts. `exclude_tax` will exclude all tax (inclusive and exclusive alike) from invoice PDF amounts.
attr_accessor :amount_tax_display
# ID of the invoice rendering template to use for future invoices.
attr_accessor :template
def initialize(amount_tax_display: nil, template: nil)
@amount_tax_display = amount_tax_display
@template = template
end
end
# The list of up to 4 default custom fields to be displayed on invoices for this customer. When updating, pass an empty string to remove previously-defined fields.
attr_accessor :custom_fields
# ID of a payment method that's attached to the customer, to be used as the customer's default payment method for subscriptions and invoices.
attr_accessor :default_payment_method
# Default footer to be displayed on invoices for this customer.
attr_accessor :footer
# Default options for invoice PDF rendering for this customer.
attr_accessor :rendering_options
def initialize(
custom_fields: nil,
default_payment_method: nil,
footer: nil,
rendering_options: nil
)
@custom_fields = custom_fields
@default_payment_method = default_payment_method
@footer = footer
@rendering_options = rendering_options
end
end
class Shipping < Stripe::RequestParams
class Address < Stripe::RequestParams
# City, district, suburb, town, or village.
attr_accessor :city
# A freeform text field for the country. However, in order to activate some tax features, the format should be a two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).
attr_accessor :country
# Address line 1 (e.g., street, PO Box, or company name).
attr_accessor :line1
# Address line 2 (e.g., apartment, suite, unit, or building).
attr_accessor :line2
# ZIP or postal code.
attr_accessor :postal_code
# State, county, province, or region.
attr_accessor :state
def initialize(
city: nil,
country: nil,
line1: nil,
line2: nil,
postal_code: nil,
state: nil
)
@city = city
@country = country
@line1 = line1
@line2 = line2
@postal_code = postal_code
@state = state
end
end
# Customer shipping address.
attr_accessor :address
# Customer name.
attr_accessor :name
# Customer phone (including extension).
attr_accessor :phone
def initialize(address: nil, name: nil, phone: nil)
@address = address
@name = name
@phone = phone
end
end
class Tax < Stripe::RequestParams
# A recent IP address of the customer used for tax reporting and tax location inference. Stripe recommends updating the IP address when a new PaymentMethod is attached or the address field on the customer is updated. We recommend against updating this field more frequently since it could result in unexpected tax location/reporting outcomes.
attr_accessor :ip_address
# A flag that indicates when Stripe should validate the customer tax location. Defaults to `deferred`.
attr_accessor :validate_location
def initialize(ip_address: nil, validate_location: nil)
@ip_address = ip_address
@validate_location = validate_location
end
end
class TaxIdDatum < Stripe::RequestParams
# Type of the tax ID, one of `ad_nrt`, `ae_trn`, `al_tin`, `am_tin`, `ao_tin`, `ar_cuit`, `au_abn`, `au_arn`, `aw_tin`, `az_tin`, `ba_tin`, `bb_tin`, `bd_bin`, `bf_ifu`, `bg_uic`, `bh_vat`, `bj_ifu`, `bo_tin`, `br_cnpj`, `br_cpf`, `bs_tin`, `by_tin`, `ca_bn`, `ca_gst_hst`, `ca_pst_bc`, `ca_pst_mb`, `ca_pst_sk`, `ca_qst`, `cd_nif`, `ch_uid`, `ch_vat`, `cl_tin`, `cm_niu`, `cn_tin`, `co_nit`, `cr_tin`, `cv_nif`, `de_stn`, `do_rcn`, `ec_ruc`, `eg_tin`, `es_cif`, `et_tin`, `eu_oss_vat`, `eu_vat`, `gb_vat`, `ge_vat`, `gn_nif`, `hk_br`, `hr_oib`, `hu_tin`, `id_npwp`, `il_vat`, `in_gst`, `is_vat`, `jp_cn`, `jp_rn`, `jp_trn`, `ke_pin`, `kg_tin`, `kh_tin`, `kr_brn`, `kz_bin`, `la_tin`, `li_uid`, `li_vat`, `ma_vat`, `md_vat`, `me_pib`, `mk_vat`, `mr_nif`, `mx_rfc`, `my_frp`, `my_itn`, `my_sst`, `ng_tin`, `no_vat`, `no_voec`, `np_pan`, `nz_gst`, `om_vat`, `pe_ruc`, `ph_tin`, `ro_tin`, `rs_pib`, `ru_inn`, `ru_kpp`, `sa_vat`, `sg_gst`, `sg_uen`, `si_tin`, `sn_ninea`, `sr_fin`, `sv_nit`, `th_vat`, `tj_tin`, `tr_tin`, `tw_vat`, `tz_vat`, `ua_vat`, `ug_tin`, `us_ein`, `uy_ruc`, `uz_tin`, `uz_vat`, `ve_rif`, `vn_tin`, `za_vat`, `zm_tin`, or `zw_tin`
attr_accessor :type
# Value of the tax ID.
attr_accessor :value
def initialize(type: nil, value: nil)
@type = type
@value = value
end
end
# The customer's address.
attr_accessor :address
# An integer amount in cents (or local equivalent) that represents the customer's current balance, which affect the customer's future invoices. A negative amount represents a credit that decreases the amount due on an invoice; a positive amount increases the amount due on an invoice.
attr_accessor :balance
# Balance information and default balance settings for this customer.
attr_accessor :cash_balance
# An arbitrary string that you can attach to a customer object. It is displayed alongside the customer in the dashboard.
attr_accessor :description
# Customer's email address. It's displayed alongside the customer in your dashboard and can be useful for searching and tracking. This may be up to *512 characters*.
attr_accessor :email
# Specifies which fields in the response should be expanded.
attr_accessor :expand
# The prefix for the customer used to generate unique invoice numbers. Must be 312 uppercase letters or numbers.
attr_accessor :invoice_prefix
# Default invoice settings for this customer.
attr_accessor :invoice_settings
# Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
attr_accessor :metadata
# The customer's full name or business name.
attr_accessor :name
# The sequence to be used on the customer's next invoice. Defaults to 1.
attr_accessor :next_invoice_sequence
# Attribute for param field payment_method
attr_accessor :payment_method
# The customer's phone number.
attr_accessor :phone
# Customer's preferred languages, ordered by preference.
attr_accessor :preferred_locales
# The customer's shipping information. Appears on invoices emailed to this customer.
attr_accessor :shipping
# Attribute for param field source
attr_accessor :source
# Tax details about the customer.
attr_accessor :tax
# The customer's tax exemption. One of `none`, `exempt`, or `reverse`.
attr_accessor :tax_exempt
# The customer's tax IDs.
attr_accessor :tax_id_data
# ID of the test clock to attach to the customer.
attr_accessor :test_clock
# Attribute for param field validate
attr_accessor :validate
def initialize(
address: nil,
balance: nil,
cash_balance: nil,
description: nil,
email: nil,
expand: nil,
invoice_prefix: nil,
invoice_settings: nil,
metadata: nil,
name: nil,
next_invoice_sequence: nil,
payment_method: nil,
phone: nil,
preferred_locales: nil,
shipping: nil,
source: nil,
tax: nil,
tax_exempt: nil,
tax_id_data: nil,
test_clock: nil,
validate: nil
)
@address = address
@balance = balance
@cash_balance = cash_balance
@description = description
@email = email
@expand = expand
@invoice_prefix = invoice_prefix
@invoice_settings = invoice_settings
@metadata = metadata
@name = name
@next_invoice_sequence = next_invoice_sequence
@payment_method = payment_method
@phone = phone
@preferred_locales = preferred_locales
@shipping = shipping
@source = source
@tax = tax
@tax_exempt = tax_exempt
@tax_id_data = tax_id_data
@test_clock = test_clock
@validate = validate
end
end
class ListPaymentMethodsParams < Stripe::RequestParams
# This field indicates whether this payment method can be shown again to its customer in a checkout flow. Stripe products such as Checkout and Elements use this field to determine whether a payment method can be shown as a saved payment method in a checkout flow.
attr_accessor :allow_redisplay
# A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.
attr_accessor :ending_before
# Specifies which fields in the response should be expanded.
attr_accessor :expand
# A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.
attr_accessor :limit
# A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.
attr_accessor :starting_after
# An optional filter on the list, based on the object `type` field. Without the filter, the list includes all current and future payment method types. If your integration expects only one type of payment method in the response, make sure to provide a type value in the request.
attr_accessor :type
def initialize(
allow_redisplay: nil,
ending_before: nil,
expand: nil,
limit: nil,
starting_after: nil,
type: nil
)
@allow_redisplay = allow_redisplay
@ending_before = ending_before
@expand = expand
@limit = limit
@starting_after = starting_after
@type = type
end
end
class RetrievePaymentMethodParams < Stripe::RequestParams
# Specifies which fields in the response should be expanded.
attr_accessor :expand
def initialize(expand: nil)
@expand = expand
end
end
class SearchParams < Stripe::RequestParams
# Specifies which fields in the response should be expanded.
attr_accessor :expand
# A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.
attr_accessor :limit
# A cursor for pagination across multiple pages of results. Don't include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results.
attr_accessor :page
# The search query string. See [search query language](https://stripe.com/docs/search#search-query-language) and the list of supported [query fields for customers](https://stripe.com/docs/search#query-fields-for-customers).
attr_accessor :query
def initialize(expand: nil, limit: nil, page: nil, query: nil)
@expand = expand
@limit = limit
@page = page
@query = query
end
end
class CreateFundingInstructionsParams < Stripe::RequestParams
class BankTransfer < Stripe::RequestParams
class EuBankTransfer < Stripe::RequestParams
# The desired country code of the bank account information. Permitted values include: `BE`, `DE`, `ES`, `FR`, `IE`, or `NL`.
attr_accessor :country
def initialize(country: nil)
@country = country
end
end
# Configuration for eu_bank_transfer funding type.
attr_accessor :eu_bank_transfer
# List of address types that should be returned in the financial_addresses response. If not specified, all valid types will be returned.
#
# Permitted values include: `sort_code`, `zengin`, `iban`, or `spei`.
attr_accessor :requested_address_types
# The type of the `bank_transfer`
attr_accessor :type
def initialize(eu_bank_transfer: nil, requested_address_types: nil, type: nil)
@eu_bank_transfer = eu_bank_transfer
@requested_address_types = requested_address_types
@type = type
end
end
# Additional parameters for `bank_transfer` funding types
attr_accessor :bank_transfer
# Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).
attr_accessor :currency
# Specifies which fields in the response should be expanded.
attr_accessor :expand
# The `funding_type` to get the instructions for.
attr_accessor :funding_type
def initialize(bank_transfer: nil, currency: nil, expand: nil, funding_type: nil)
@bank_transfer = bank_transfer
@currency = currency
@expand = expand
@funding_type = funding_type
end
end
class RetrieveParams < Stripe::RequestParams
# Specifies which fields in the response should be expanded.
attr_accessor :expand
def initialize(expand: nil)
@expand = expand
end
end
class FundCashBalanceParams < Stripe::RequestParams
# Amount to be used for this test cash balance transaction. A positive integer representing how much to fund in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) (e.g., 100 cents to fund $1.00 or 100 to fund ¥100, a zero-decimal currency).
attr_accessor :amount
# Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).
attr_accessor :currency
# Specifies which fields in the response should be expanded.
attr_accessor :expand
# A description of the test funding. This simulates free-text references supplied by customers when making bank transfers to their cash balance. You can use this to test how Stripe's [reconciliation algorithm](https://stripe.com/docs/payments/customer-balance/reconciliation) applies to different user inputs.
attr_accessor :reference
def initialize(amount: nil, currency: nil, expand: nil, reference: nil)
@amount = amount
@currency = currency
@expand = expand
@reference = reference
end
end
# The customer's address.
attr_reader :address
# The current balance, if any, that's stored on the customer. If negative, the customer has credit to apply to their next invoice. If positive, the customer has an amount owed that's added to their next invoice. The balance only considers amounts that Stripe hasn't successfully applied to any invoice. It doesn't reflect unpaid invoices. This balance is only taken into account after invoices finalize.
attr_reader :balance
# The current funds being held by Stripe on behalf of the customer. You can apply these funds towards payment intents when the source is "cash_balance". The `settings[reconciliation_mode]` field describes if these funds apply to these payment intents manually or automatically.
attr_reader :cash_balance
# Time at which the object was created. Measured in seconds since the Unix epoch.
attr_reader :created
# Three-letter [ISO code for the currency](https://stripe.com/docs/currencies) the customer can be charged in for recurring billing purposes.
attr_reader :currency
# ID of the default payment source for the customer.
#
# If you use payment methods created through the PaymentMethods API, see the [invoice_settings.default_payment_method](https://stripe.com/docs/api/customers/object#customer_object-invoice_settings-default_payment_method) field instead.
attr_reader :default_source
# Tracks the most recent state change on any invoice belonging to the customer. Paying an invoice or marking it uncollectible via the API will set this field to false. An automatic payment failure or passing the `invoice.due_date` will set this field to `true`.
#
# If an invoice becomes uncollectible by [dunning](https://stripe.com/docs/billing/automatic-collection), `delinquent` doesn't reset to `false`.
#
# If you care whether the customer has paid their most recent subscription invoice, use `subscription.status` instead. Paying or marking uncollectible any customer invoice regardless of whether it is the latest invoice for a subscription will always set this field to `false`.
attr_reader :delinquent
# An arbitrary string attached to the object. Often useful for displaying to users.
attr_reader :description
# Describes the current discount active on the customer, if there is one.
attr_reader :discount
# The customer's email address.
attr_reader :email
# Unique identifier for the object.
attr_reader :id
# The current multi-currency balances, if any, that's stored on the customer. If positive in a currency, the customer has a credit to apply to their next invoice denominated in that currency. If negative, the customer has an amount owed that's added to their next invoice denominated in that currency. These balances don't apply to unpaid invoices. They solely track amounts that Stripe hasn't successfully applied to any invoice. Stripe only applies a balance in a specific currency to an invoice after that invoice (which is in the same currency) finalizes.
attr_reader :invoice_credit_balance
# The prefix for the customer used to generate unique invoice numbers.
attr_reader :invoice_prefix
# Attribute for field invoice_settings
attr_reader :invoice_settings
# Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
attr_reader :livemode
# Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
attr_reader :metadata
# The customer's full name or business name.
attr_reader :name
# The suffix of the customer's next invoice number (for example, 0001). When the account uses account level sequencing, this parameter is ignored in API requests and the field omitted in API responses.
attr_reader :next_invoice_sequence
# String representing the object's type. Objects of the same type share the same value.
attr_reader :object
# The customer's phone number.
attr_reader :phone
# The customer's preferred locales (languages), ordered by preference.
attr_reader :preferred_locales
# Mailing and shipping address for the customer. Appears on invoices emailed to this customer.
attr_reader :shipping
# The customer's payment sources, if any.
attr_reader :sources
# The customer's current subscriptions, if any.
attr_reader :subscriptions
# Attribute for field tax
attr_reader :tax
# Describes the customer's tax exemption status, which is `none`, `exempt`, or `reverse`. When set to `reverse`, invoice and receipt PDFs include the following text: **"Reverse charge"**.
attr_reader :tax_exempt
# The customer's tax IDs.
attr_reader :tax_ids
# ID of the test clock that this customer belongs to.
attr_reader :test_clock
# Always true for a deleted object
attr_reader :deleted
# Creates a new customer object.
def self.create(params = {}, opts = {})
request_stripe_object(method: :post, path: "/v1/customers", params: params, opts: opts)
@ -874,10 +53,10 @@ module Stripe
end
# Permanently deletes a customer. It cannot be undone. Also immediately cancels any active subscriptions on the customer.
def self.delete(customer, params = {}, opts = {})
def self.delete(id, params = {}, opts = {})
request_stripe_object(
method: :delete,
path: format("/v1/customers/%<customer>s", { customer: CGI.escape(customer) }),
path: format("/v1/customers/%<id>s", { id: CGI.escape(id) }),
params: params,
opts: opts
)
@ -914,8 +93,8 @@ module Stripe
end
# Returns a list of your customers. The customers are returned sorted by creation date, with the most recent customers appearing first.
def self.list(params = {}, opts = {})
request_stripe_object(method: :get, path: "/v1/customers", params: params, opts: opts)
def self.list(filters = {}, opts = {})
request_stripe_object(method: :get, path: "/v1/customers", params: filters, opts: opts)
end
# Returns a list of PaymentMethods for a given Customer
@ -979,10 +158,10 @@ module Stripe
# Updates the specified customer by setting the values of the parameters passed. Any parameters not provided will be left unchanged. For example, if you pass the source parameter, that becomes the customer's active source (e.g., a card) to be used for all charges in the future. When you update a customer to a new valid card source by passing the source parameter: for each of the customer's current subscriptions, if the subscription bills automatically and is in the past_due state, then the latest open invoice for the subscription with automatic collection enabled will be retried. This retry will not count as an automatic retry, and will not affect the next regularly scheduled payment for the invoice. Changing the default_source for a customer will not trigger this behavior.
#
# This request accepts mostly the same arguments as the customer creation call.
def self.update(customer, params = {}, opts = {})
def self.update(id, params = {}, opts = {})
request_stripe_object(
method: :post,
path: format("/v1/customers/%<customer>s", { customer: CGI.escape(customer) }),
path: format("/v1/customers/%<id>s", { id: CGI.escape(id) }),
params: params,
opts: opts
)

View File

@ -16,35 +16,6 @@ module Stripe
"customer_balance_transaction"
end
# The amount of the transaction. A negative value is a credit for the customer's balance, and a positive value is a debit to the customer's `balance`.
attr_reader :amount
# The ID of the checkout session (if any) that created the transaction.
attr_reader :checkout_session
# Time at which the object was created. Measured in seconds since the Unix epoch.
attr_reader :created
# The ID of the credit note (if any) related to the transaction.
attr_reader :credit_note
# Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).
attr_reader :currency
# The ID of the customer the transaction belongs to.
attr_reader :customer
# An arbitrary string attached to the object. Often useful for displaying to users.
attr_reader :description
# The customer's `balance` after the transaction was applied. A negative value decreases the amount due on the customer's next invoice. A positive value increases the amount due on the customer's next invoice.
attr_reader :ending_balance
# Unique identifier for the object.
attr_reader :id
# The ID of the invoice (if any) related to the transaction.
attr_reader :invoice
# Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
attr_reader :livemode
# Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
attr_reader :metadata
# String representing the object's type. Objects of the same type share the same value.
attr_reader :object
# Transaction type: `adjustment`, `applied_to_invoice`, `credit_note`, `initial`, `invoice_overpaid`, `invoice_too_large`, `invoice_too_small`, `unspent_receiver_credit`, `unapplied_from_invoice`, `checkout_session_subscription_payment`, or `checkout_session_subscription_payment_canceled`. See the [Customer Balance page](https://stripe.com/docs/billing/customer/balance#types) to learn more about transaction types.
attr_reader :type
def resource_url
if !respond_to?(:customer) || customer.nil?
raise NotImplementedError,

View File

@ -11,114 +11,5 @@ module Stripe
def self.object_name
"customer_cash_balance_transaction"
end
class AdjustedForOverdraft < Stripe::StripeObject
# The [Balance Transaction](https://stripe.com/docs/api/balance_transactions/object) that corresponds to funds taken out of your Stripe balance.
attr_reader :balance_transaction
# The [Cash Balance Transaction](https://stripe.com/docs/api/cash_balance_transactions/object) that brought the customer balance negative, triggering the clawback of funds.
attr_reader :linked_transaction
end
class AppliedToPayment < Stripe::StripeObject
# The [Payment Intent](https://stripe.com/docs/api/payment_intents/object) that funds were applied to.
attr_reader :payment_intent
end
class Funded < Stripe::StripeObject
class BankTransfer < Stripe::StripeObject
class EuBankTransfer < Stripe::StripeObject
# The BIC of the bank of the sender of the funding.
attr_reader :bic
# The last 4 digits of the IBAN of the sender of the funding.
attr_reader :iban_last4
# The full name of the sender, as supplied by the sending bank.
attr_reader :sender_name
end
class GbBankTransfer < Stripe::StripeObject
# The last 4 digits of the account number of the sender of the funding.
attr_reader :account_number_last4
# The full name of the sender, as supplied by the sending bank.
attr_reader :sender_name
# The sort code of the bank of the sender of the funding
attr_reader :sort_code
end
class JpBankTransfer < Stripe::StripeObject
# The name of the bank of the sender of the funding.
attr_reader :sender_bank
# The name of the bank branch of the sender of the funding.
attr_reader :sender_branch
# The full name of the sender, as supplied by the sending bank.
attr_reader :sender_name
end
class UsBankTransfer < Stripe::StripeObject
# The banking network used for this funding.
attr_reader :network
# The full name of the sender, as supplied by the sending bank.
attr_reader :sender_name
end
# Attribute for field eu_bank_transfer
attr_reader :eu_bank_transfer
# Attribute for field gb_bank_transfer
attr_reader :gb_bank_transfer
# Attribute for field jp_bank_transfer
attr_reader :jp_bank_transfer
# The user-supplied reference field on the bank transfer.
attr_reader :reference
# The funding method type used to fund the customer balance. Permitted values include: `eu_bank_transfer`, `gb_bank_transfer`, `jp_bank_transfer`, `mx_bank_transfer`, or `us_bank_transfer`.
attr_reader :type
# Attribute for field us_bank_transfer
attr_reader :us_bank_transfer
end
# Attribute for field bank_transfer
attr_reader :bank_transfer
end
class RefundedFromPayment < Stripe::StripeObject
# The [Refund](https://stripe.com/docs/api/refunds/object) that moved these funds into the customer's cash balance.
attr_reader :refund
end
class TransferredToBalance < Stripe::StripeObject
# The [Balance Transaction](https://stripe.com/docs/api/balance_transactions/object) that corresponds to funds transferred to your Stripe balance.
attr_reader :balance_transaction
end
class UnappliedFromPayment < Stripe::StripeObject
# The [Payment Intent](https://stripe.com/docs/api/payment_intents/object) that funds were unapplied from.
attr_reader :payment_intent
end
# Attribute for field adjusted_for_overdraft
attr_reader :adjusted_for_overdraft
# Attribute for field applied_to_payment
attr_reader :applied_to_payment
# Time at which the object was created. Measured in seconds since the Unix epoch.
attr_reader :created
# Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).
attr_reader :currency
# The customer whose available cash balance changed as a result of this transaction.
attr_reader :customer
# The total available cash balance for the specified currency after this transaction was applied. Represented in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal).
attr_reader :ending_balance
# Attribute for field funded
attr_reader :funded
# Unique identifier for the object.
attr_reader :id
# Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
attr_reader :livemode
# The amount by which the cash balance changed, represented in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). A positive value represents funds being added to the cash balance, a negative value represents funds being removed from the cash balance.
attr_reader :net_amount
# String representing the object's type. Objects of the same type share the same value.
attr_reader :object
# Attribute for field refunded_from_payment
attr_reader :refunded_from_payment
# Attribute for field transferred_to_balance
attr_reader :transferred_to_balance
# The type of the cash balance transaction. New types may be added in future. See [Customer Balance](https://stripe.com/docs/payments/customer-balance#types) to learn more about these types.
attr_reader :type
# Attribute for field unapplied_from_payment
attr_reader :unapplied_from_payment
end
end

View File

@ -2,12 +2,8 @@
# frozen_string_literal: true
module Stripe
# A Customer Session allows you to grant Stripe's frontend SDKs (like Stripe.js) client-side access
# control over a Customer.
#
# Related guides: [Customer Session with the Payment Element](https://docs.stripe.com/payments/accept-a-payment-deferred?platform=web&type=payment#save-payment-methods),
# [Customer Session with the Pricing Table](https://docs.stripe.com/payments/checkout/pricing-table#customer-session),
# [Customer Session with the Buy Button](https://docs.stripe.com/payment-links/buy-button#pass-an-existing-customer).
# A customer session allows you to grant client access to Stripe's frontend SDKs (like StripeJs)
# control over a customer.
class CustomerSession < APIResource
extend Stripe::APIOperations::Create
@ -16,166 +12,7 @@ module Stripe
"customer_session"
end
class Components < Stripe::StripeObject
class BuyButton < Stripe::StripeObject
# Whether the buy button is enabled.
attr_reader :enabled
end
class PaymentElement < Stripe::StripeObject
class Features < Stripe::StripeObject
# A list of [`allow_redisplay`](https://docs.stripe.com/api/payment_methods/object#payment_method_object-allow_redisplay) values that controls which saved payment methods the Payment Element displays by filtering to only show payment methods with an `allow_redisplay` value that is present in this list.
#
# If not specified, defaults to ["always"]. In order to display all saved payment methods, specify ["always", "limited", "unspecified"].
attr_reader :payment_method_allow_redisplay_filters
# Controls whether or not the Payment Element shows saved payment methods. This parameter defaults to `disabled`.
attr_reader :payment_method_redisplay
# Determines the max number of saved payment methods for the Payment Element to display. This parameter defaults to `3`.
attr_reader :payment_method_redisplay_limit
# Controls whether the Payment Element displays the option to remove a saved payment method. This parameter defaults to `disabled`.
#
# Allowing buyers to remove their saved payment methods impacts subscriptions that depend on that payment method. Removing the payment method detaches the [`customer` object](https://docs.stripe.com/api/payment_methods/object#payment_method_object-customer) from that [PaymentMethod](https://docs.stripe.com/api/payment_methods).
attr_reader :payment_method_remove
# Controls whether the Payment Element displays a checkbox offering to save a new payment method. This parameter defaults to `disabled`.
#
# If a customer checks the box, the [`allow_redisplay`](https://docs.stripe.com/api/payment_methods/object#payment_method_object-allow_redisplay) value on the PaymentMethod is set to `'always'` at confirmation time. For PaymentIntents, the [`setup_future_usage`](https://docs.stripe.com/api/payment_intents/object#payment_intent_object-setup_future_usage) value is also set to the value defined in `payment_method_save_usage`.
attr_reader :payment_method_save
# When using PaymentIntents and the customer checks the save checkbox, this field determines the [`setup_future_usage`](https://docs.stripe.com/api/payment_intents/object#payment_intent_object-setup_future_usage) value used to confirm the PaymentIntent.
#
# When using SetupIntents, directly configure the [`usage`](https://docs.stripe.com/api/setup_intents/object#setup_intent_object-usage) value on SetupIntent creation.
attr_reader :payment_method_save_usage
end
# Whether the Payment Element is enabled.
attr_reader :enabled
# This hash defines whether the Payment Element supports certain features.
attr_reader :features
end
class PricingTable < Stripe::StripeObject
# Whether the pricing table is enabled.
attr_reader :enabled
end
# This hash contains whether the buy button is enabled.
attr_reader :buy_button
# This hash contains whether the Payment Element is enabled and the features it supports.
attr_reader :payment_element
# This hash contains whether the pricing table is enabled.
attr_reader :pricing_table
end
class CreateParams < Stripe::RequestParams
class Components < Stripe::RequestParams
class BuyButton < Stripe::RequestParams
# Whether the buy button is enabled.
attr_accessor :enabled
def initialize(enabled: nil)
@enabled = enabled
end
end
class PaymentElement < Stripe::RequestParams
class Features < Stripe::RequestParams
# A list of [`allow_redisplay`](https://docs.stripe.com/api/payment_methods/object#payment_method_object-allow_redisplay) values that controls which saved payment methods the Payment Element displays by filtering to only show payment methods with an `allow_redisplay` value that is present in this list.
#
# If not specified, defaults to ["always"]. In order to display all saved payment methods, specify ["always", "limited", "unspecified"].
attr_accessor :payment_method_allow_redisplay_filters
# Controls whether or not the Payment Element shows saved payment methods. This parameter defaults to `disabled`.
attr_accessor :payment_method_redisplay
# Determines the max number of saved payment methods for the Payment Element to display. This parameter defaults to `3`.
attr_accessor :payment_method_redisplay_limit
# Controls whether the Payment Element displays the option to remove a saved payment method. This parameter defaults to `disabled`.
#
# Allowing buyers to remove their saved payment methods impacts subscriptions that depend on that payment method. Removing the payment method detaches the [`customer` object](https://docs.stripe.com/api/payment_methods/object#payment_method_object-customer) from that [PaymentMethod](https://docs.stripe.com/api/payment_methods).
attr_accessor :payment_method_remove
# Controls whether the Payment Element displays a checkbox offering to save a new payment method. This parameter defaults to `disabled`.
#
# If a customer checks the box, the [`allow_redisplay`](https://docs.stripe.com/api/payment_methods/object#payment_method_object-allow_redisplay) value on the PaymentMethod is set to `'always'` at confirmation time. For PaymentIntents, the [`setup_future_usage`](https://docs.stripe.com/api/payment_intents/object#payment_intent_object-setup_future_usage) value is also set to the value defined in `payment_method_save_usage`.
attr_accessor :payment_method_save
# When using PaymentIntents and the customer checks the save checkbox, this field determines the [`setup_future_usage`](https://docs.stripe.com/api/payment_intents/object#payment_intent_object-setup_future_usage) value used to confirm the PaymentIntent.
#
# When using SetupIntents, directly configure the [`usage`](https://docs.stripe.com/api/setup_intents/object#setup_intent_object-usage) value on SetupIntent creation.
attr_accessor :payment_method_save_usage
def initialize(
payment_method_allow_redisplay_filters: nil,
payment_method_redisplay: nil,
payment_method_redisplay_limit: nil,
payment_method_remove: nil,
payment_method_save: nil,
payment_method_save_usage: nil
)
@payment_method_allow_redisplay_filters = payment_method_allow_redisplay_filters
@payment_method_redisplay = payment_method_redisplay
@payment_method_redisplay_limit = payment_method_redisplay_limit
@payment_method_remove = payment_method_remove
@payment_method_save = payment_method_save
@payment_method_save_usage = payment_method_save_usage
end
end
# Whether the Payment Element is enabled.
attr_accessor :enabled
# This hash defines whether the Payment Element supports certain features.
attr_accessor :features
def initialize(enabled: nil, features: nil)
@enabled = enabled
@features = features
end
end
class PricingTable < Stripe::RequestParams
# Whether the pricing table is enabled.
attr_accessor :enabled
def initialize(enabled: nil)
@enabled = enabled
end
end
# Configuration for buy button.
attr_accessor :buy_button
# Configuration for the Payment Element.
attr_accessor :payment_element
# Configuration for the pricing table.
attr_accessor :pricing_table
def initialize(buy_button: nil, payment_element: nil, pricing_table: nil)
@buy_button = buy_button
@payment_element = payment_element
@pricing_table = pricing_table
end
end
# Configuration for each component. Exactly 1 component must be enabled.
attr_accessor :components
# The ID of an existing customer for which to create the Customer Session.
attr_accessor :customer
# Specifies which fields in the response should be expanded.
attr_accessor :expand
def initialize(components: nil, customer: nil, expand: nil)
@components = components
@customer = customer
@expand = expand
end
end
# The client secret of this Customer Session. Used on the client to set up secure access to the given `customer`.
#
# The client secret can be used to provide access to `customer` from your frontend. It should not be stored, logged, or exposed to anyone other than the relevant customer. Make sure that you have TLS enabled on any page that includes the client secret.
attr_reader :client_secret
# Configuration for the components supported by this Customer Session.
attr_reader :components
# Time at which the object was created. Measured in seconds since the Unix epoch.
attr_reader :created
# The Customer the Customer Session was created for.
attr_reader :customer
# The timestamp at which this Customer Session will expire.
attr_reader :expires_at
# Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
attr_reader :livemode
# String representing the object's type. Objects of the same type share the same value.
attr_reader :object
# Creates a Customer Session object that includes a single-use client secret that you can use on your front-end to grant client-side API access for certain customer resources.
# Creates a customer session object that includes a single-use client secret that you can use on your front-end to grant client-side API access for certain customer resources.
def self.create(params = {}, opts = {})
request_stripe_object(
method: :post,

View File

@ -11,34 +11,5 @@ module Stripe
def self.object_name
"discount"
end
# The Checkout session that this coupon is applied to, if it is applied to a particular session in payment mode. Will not be present for subscription mode.
attr_reader :checkout_session
# A coupon contains information about a percent-off or amount-off discount you
# might want to apply to a customer. Coupons may be applied to [subscriptions](https://stripe.com/docs/api#subscriptions), [invoices](https://stripe.com/docs/api#invoices),
# [checkout sessions](https://stripe.com/docs/api/checkout/sessions), [quotes](https://stripe.com/docs/api#quotes), and more. Coupons do not work with conventional one-off [charges](https://stripe.com/docs/api#create_charge) or [payment intents](https://stripe.com/docs/api/payment_intents).
attr_reader :coupon
# The ID of the customer associated with this discount.
attr_reader :customer
# If the coupon has a duration of `repeating`, the date that this discount will end. If the coupon has a duration of `once` or `forever`, this attribute will be null.
attr_reader :end
# The ID of the discount object. Discounts cannot be fetched by ID. Use `expand[]=discounts` in API calls to expand discount IDs in an array.
attr_reader :id
# The invoice that the discount's coupon was applied to, if it was applied directly to a particular invoice.
attr_reader :invoice
# The invoice item `id` (or invoice line item `id` for invoice line items of type='subscription') that the discount's coupon was applied to, if it was applied directly to a particular invoice item or invoice line item.
attr_reader :invoice_item
# String representing the object's type. Objects of the same type share the same value.
attr_reader :object
# The promotion code applied to create this discount.
attr_reader :promotion_code
# Date that the coupon was applied.
attr_reader :start
# The subscription that this coupon is applied to, if it is applied to a particular subscription.
attr_reader :subscription
# The subscription item that this coupon is applied to, if it is applied to a particular subscription item.
attr_reader :subscription_item
# Always true for a deleted object
attr_reader :deleted
end
end

View File

@ -16,616 +16,6 @@ module Stripe
"dispute"
end
class Evidence < Stripe::StripeObject
class EnhancedEvidence < Stripe::StripeObject
class VisaCompellingEvidence3 < Stripe::StripeObject
class DisputedTransaction < Stripe::StripeObject
class ShippingAddress < Stripe::StripeObject
# City, district, suburb, town, or village.
attr_reader :city
# Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).
attr_reader :country
# Address line 1 (e.g., street, PO Box, or company name).
attr_reader :line1
# Address line 2 (e.g., apartment, suite, unit, or building).
attr_reader :line2
# ZIP or postal code.
attr_reader :postal_code
# State, county, province, or region.
attr_reader :state
end
# User Account ID used to log into business platform. Must be recognizable by the user.
attr_reader :customer_account_id
# Unique identifier of the cardholders device derived from a combination of at least two hardware and software attributes. Must be at least 20 characters.
attr_reader :customer_device_fingerprint
# Unique identifier of the cardholders device such as a device serial number (e.g., International Mobile Equipment Identity [IMEI]). Must be at least 15 characters.
attr_reader :customer_device_id
# The email address of the customer.
attr_reader :customer_email_address
# The IP address that the customer used when making the purchase.
attr_reader :customer_purchase_ip
# Categorization of disputed payment.
attr_reader :merchandise_or_services
# A description of the product or service that was sold.
attr_reader :product_description
# The address to which a physical product was shipped. All fields are required for Visa Compelling Evidence 3.0 evidence submission.
attr_reader :shipping_address
end
class PriorUndisputedTransaction < Stripe::StripeObject
class ShippingAddress < Stripe::StripeObject
# City, district, suburb, town, or village.
attr_reader :city
# Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).
attr_reader :country
# Address line 1 (e.g., street, PO Box, or company name).
attr_reader :line1
# Address line 2 (e.g., apartment, suite, unit, or building).
attr_reader :line2
# ZIP or postal code.
attr_reader :postal_code
# State, county, province, or region.
attr_reader :state
end
# Stripe charge ID for the Visa Compelling Evidence 3.0 eligible prior charge.
attr_reader :charge
# User Account ID used to log into business platform. Must be recognizable by the user.
attr_reader :customer_account_id
# Unique identifier of the cardholders device derived from a combination of at least two hardware and software attributes. Must be at least 20 characters.
attr_reader :customer_device_fingerprint
# Unique identifier of the cardholders device such as a device serial number (e.g., International Mobile Equipment Identity [IMEI]). Must be at least 15 characters.
attr_reader :customer_device_id
# The email address of the customer.
attr_reader :customer_email_address
# The IP address that the customer used when making the purchase.
attr_reader :customer_purchase_ip
# A description of the product or service that was sold.
attr_reader :product_description
# The address to which a physical product was shipped. All fields are required for Visa Compelling Evidence 3.0 evidence submission.
attr_reader :shipping_address
end
# Disputed transaction details for Visa Compelling Evidence 3.0 evidence submission.
attr_reader :disputed_transaction
# List of exactly two prior undisputed transaction objects for Visa Compelling Evidence 3.0 evidence submission.
attr_reader :prior_undisputed_transactions
end
class VisaCompliance < Stripe::StripeObject
# A field acknowledging the fee incurred when countering a Visa compliance dispute. If this field is set to true, evidence can be submitted for the compliance dispute. Stripe collects a 500 USD (or local equivalent) amount to cover the network costs associated with resolving compliance disputes. Stripe refunds the 500 USD network fee if you win the dispute.
attr_reader :fee_acknowledged
end
# Attribute for field visa_compelling_evidence_3
attr_reader :visa_compelling_evidence_3
# Attribute for field visa_compliance
attr_reader :visa_compliance
end
# Any server or activity logs showing proof that the customer accessed or downloaded the purchased digital product. This information should include IP addresses, corresponding timestamps, and any detailed recorded activity.
attr_reader :access_activity_log
# The billing address provided by the customer.
attr_reader :billing_address
# (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Your subscription cancellation policy, as shown to the customer.
attr_reader :cancellation_policy
# An explanation of how and when the customer was shown your refund policy prior to purchase.
attr_reader :cancellation_policy_disclosure
# A justification for why the customer's subscription was not canceled.
attr_reader :cancellation_rebuttal
# (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Any communication with the customer that you feel is relevant to your case. Examples include emails proving that the customer received the product or service, or demonstrating their use of or satisfaction with the product or service.
attr_reader :customer_communication
# The email address of the customer.
attr_reader :customer_email_address
# The name of the customer.
attr_reader :customer_name
# The IP address that the customer used when making the purchase.
attr_reader :customer_purchase_ip
# (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) A relevant document or contract showing the customer's signature.
attr_reader :customer_signature
# (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Documentation for the prior charge that can uniquely identify the charge, such as a receipt, shipping label, work order, etc. This document should be paired with a similar document from the disputed payment that proves the two payments are separate.
attr_reader :duplicate_charge_documentation
# An explanation of the difference between the disputed charge versus the prior charge that appears to be a duplicate.
attr_reader :duplicate_charge_explanation
# The Stripe ID for the prior charge which appears to be a duplicate of the disputed charge.
attr_reader :duplicate_charge_id
# Attribute for field enhanced_evidence
attr_reader :enhanced_evidence
# A description of the product or service that was sold.
attr_reader :product_description
# (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Any receipt or message sent to the customer notifying them of the charge.
attr_reader :receipt
# (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Your refund policy, as shown to the customer.
attr_reader :refund_policy
# Documentation demonstrating that the customer was shown your refund policy prior to purchase.
attr_reader :refund_policy_disclosure
# A justification for why the customer is not entitled to a refund.
attr_reader :refund_refusal_explanation
# The date on which the customer received or began receiving the purchased service, in a clear human-readable format.
attr_reader :service_date
# (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Documentation showing proof that a service was provided to the customer. This could include a copy of a signed contract, work order, or other form of written agreement.
attr_reader :service_documentation
# The address to which a physical product was shipped. You should try to include as complete address information as possible.
attr_reader :shipping_address
# The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc. If multiple carriers were used for this purchase, please separate them with commas.
attr_reader :shipping_carrier
# The date on which a physical product began its route to the shipping address, in a clear human-readable format.
attr_reader :shipping_date
# (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Documentation showing proof that a product was shipped to the customer at the same address the customer provided to you. This could include a copy of the shipment receipt, shipping label, etc. It should show the customer's full shipping address, if possible.
attr_reader :shipping_documentation
# The tracking number for a physical product, obtained from the delivery service. If multiple tracking numbers were generated for this purchase, please separate them with commas.
attr_reader :shipping_tracking_number
# (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Any additional evidence or statements.
attr_reader :uncategorized_file
# Any additional evidence or statements.
attr_reader :uncategorized_text
end
class EvidenceDetails < Stripe::StripeObject
class EnhancedEligibility < Stripe::StripeObject
class VisaCompellingEvidence3 < Stripe::StripeObject
# List of actions required to qualify dispute for Visa Compelling Evidence 3.0 evidence submission.
attr_reader :required_actions
# Visa Compelling Evidence 3.0 eligibility status.
attr_reader :status
end
class VisaCompliance < Stripe::StripeObject
# Visa compliance eligibility status.
attr_reader :status
end
# Attribute for field visa_compelling_evidence_3
attr_reader :visa_compelling_evidence_3
# Attribute for field visa_compliance
attr_reader :visa_compliance
end
# Date by which evidence must be submitted in order to successfully challenge dispute. Will be 0 if the customer's bank or credit card company doesn't allow a response for this particular dispute.
attr_reader :due_by
# Attribute for field enhanced_eligibility
attr_reader :enhanced_eligibility
# Whether evidence has been staged for this dispute.
attr_reader :has_evidence
# Whether the last evidence submission was submitted past the due date. Defaults to `false` if no evidence submissions have occurred. If `true`, then delivery of the latest evidence is *not* guaranteed.
attr_reader :past_due
# The number of times evidence has been submitted. Typically, you may only submit evidence once.
attr_reader :submission_count
end
class PaymentMethodDetails < Stripe::StripeObject
class AmazonPay < Stripe::StripeObject
# The AmazonPay dispute type, chargeback or claim
attr_reader :dispute_type
end
class Card < Stripe::StripeObject
# Card brand. Can be `amex`, `diners`, `discover`, `eftpos_au`, `jcb`, `link`, `mastercard`, `unionpay`, `visa`, or `unknown`.
attr_reader :brand
# The type of dispute opened. Different case types may have varying fees and financial impact.
attr_reader :case_type
# The card network's specific dispute reason code, which maps to one of Stripe's primary dispute categories to simplify response guidance. The [Network code map](https://stripe.com/docs/disputes/categories#network-code-map) lists all available dispute reason codes by network.
attr_reader :network_reason_code
end
class Klarna < Stripe::StripeObject
# The reason for the dispute as defined by Klarna
attr_reader :reason_code
end
class Paypal < Stripe::StripeObject
# The ID of the dispute in PayPal.
attr_reader :case_id
# The reason for the dispute as defined by PayPal
attr_reader :reason_code
end
# Attribute for field amazon_pay
attr_reader :amazon_pay
# Attribute for field card
attr_reader :card
# Attribute for field klarna
attr_reader :klarna
# Attribute for field paypal
attr_reader :paypal
# Payment method type.
attr_reader :type
end
class ListParams < Stripe::RequestParams
class Created < Stripe::RequestParams
# Minimum value to filter by (exclusive)
attr_accessor :gt
# Minimum value to filter by (inclusive)
attr_accessor :gte
# Maximum value to filter by (exclusive)
attr_accessor :lt
# Maximum value to filter by (inclusive)
attr_accessor :lte
def initialize(gt: nil, gte: nil, lt: nil, lte: nil)
@gt = gt
@gte = gte
@lt = lt
@lte = lte
end
end
# Only return disputes associated to the charge specified by this charge ID.
attr_accessor :charge
# Only return disputes that were created during the given date interval.
attr_accessor :created
# A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.
attr_accessor :ending_before
# Specifies which fields in the response should be expanded.
attr_accessor :expand
# A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.
attr_accessor :limit
# Only return disputes associated to the PaymentIntent specified by this PaymentIntent ID.
attr_accessor :payment_intent
# A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.
attr_accessor :starting_after
def initialize(
charge: nil,
created: nil,
ending_before: nil,
expand: nil,
limit: nil,
payment_intent: nil,
starting_after: nil
)
@charge = charge
@created = created
@ending_before = ending_before
@expand = expand
@limit = limit
@payment_intent = payment_intent
@starting_after = starting_after
end
end
class UpdateParams < Stripe::RequestParams
class Evidence < Stripe::RequestParams
class EnhancedEvidence < Stripe::RequestParams
class VisaCompellingEvidence3 < Stripe::RequestParams
class DisputedTransaction < Stripe::RequestParams
class ShippingAddress < Stripe::RequestParams
# City, district, suburb, town, or village.
attr_accessor :city
# Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).
attr_accessor :country
# Address line 1 (e.g., street, PO Box, or company name).
attr_accessor :line1
# Address line 2 (e.g., apartment, suite, unit, or building).
attr_accessor :line2
# ZIP or postal code.
attr_accessor :postal_code
# State, county, province, or region.
attr_accessor :state
def initialize(
city: nil,
country: nil,
line1: nil,
line2: nil,
postal_code: nil,
state: nil
)
@city = city
@country = country
@line1 = line1
@line2 = line2
@postal_code = postal_code
@state = state
end
end
# User Account ID used to log into business platform. Must be recognizable by the user.
attr_accessor :customer_account_id
# Unique identifier of the cardholders device derived from a combination of at least two hardware and software attributes. Must be at least 20 characters.
attr_accessor :customer_device_fingerprint
# Unique identifier of the cardholders device such as a device serial number (e.g., International Mobile Equipment Identity [IMEI]). Must be at least 15 characters.
attr_accessor :customer_device_id
# The email address of the customer.
attr_accessor :customer_email_address
# The IP address that the customer used when making the purchase.
attr_accessor :customer_purchase_ip
# Categorization of disputed payment.
attr_accessor :merchandise_or_services
# A description of the product or service that was sold.
attr_accessor :product_description
# The address to which a physical product was shipped. All fields are required for Visa Compelling Evidence 3.0 evidence submission.
attr_accessor :shipping_address
def initialize(
customer_account_id: nil,
customer_device_fingerprint: nil,
customer_device_id: nil,
customer_email_address: nil,
customer_purchase_ip: nil,
merchandise_or_services: nil,
product_description: nil,
shipping_address: nil
)
@customer_account_id = customer_account_id
@customer_device_fingerprint = customer_device_fingerprint
@customer_device_id = customer_device_id
@customer_email_address = customer_email_address
@customer_purchase_ip = customer_purchase_ip
@merchandise_or_services = merchandise_or_services
@product_description = product_description
@shipping_address = shipping_address
end
end
class PriorUndisputedTransaction < Stripe::RequestParams
class ShippingAddress < Stripe::RequestParams
# City, district, suburb, town, or village.
attr_accessor :city
# Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).
attr_accessor :country
# Address line 1 (e.g., street, PO Box, or company name).
attr_accessor :line1
# Address line 2 (e.g., apartment, suite, unit, or building).
attr_accessor :line2
# ZIP or postal code.
attr_accessor :postal_code
# State, county, province, or region.
attr_accessor :state
def initialize(
city: nil,
country: nil,
line1: nil,
line2: nil,
postal_code: nil,
state: nil
)
@city = city
@country = country
@line1 = line1
@line2 = line2
@postal_code = postal_code
@state = state
end
end
# Stripe charge ID for the Visa Compelling Evidence 3.0 eligible prior charge.
attr_accessor :charge
# User Account ID used to log into business platform. Must be recognizable by the user.
attr_accessor :customer_account_id
# Unique identifier of the cardholders device derived from a combination of at least two hardware and software attributes. Must be at least 20 characters.
attr_accessor :customer_device_fingerprint
# Unique identifier of the cardholders device such as a device serial number (e.g., International Mobile Equipment Identity [IMEI]). Must be at least 15 characters.
attr_accessor :customer_device_id
# The email address of the customer.
attr_accessor :customer_email_address
# The IP address that the customer used when making the purchase.
attr_accessor :customer_purchase_ip
# A description of the product or service that was sold.
attr_accessor :product_description
# The address to which a physical product was shipped. All fields are required for Visa Compelling Evidence 3.0 evidence submission.
attr_accessor :shipping_address
def initialize(
charge: nil,
customer_account_id: nil,
customer_device_fingerprint: nil,
customer_device_id: nil,
customer_email_address: nil,
customer_purchase_ip: nil,
product_description: nil,
shipping_address: nil
)
@charge = charge
@customer_account_id = customer_account_id
@customer_device_fingerprint = customer_device_fingerprint
@customer_device_id = customer_device_id
@customer_email_address = customer_email_address
@customer_purchase_ip = customer_purchase_ip
@product_description = product_description
@shipping_address = shipping_address
end
end
# Disputed transaction details for Visa Compelling Evidence 3.0 evidence submission.
attr_accessor :disputed_transaction
# List of exactly two prior undisputed transaction objects for Visa Compelling Evidence 3.0 evidence submission.
attr_accessor :prior_undisputed_transactions
def initialize(disputed_transaction: nil, prior_undisputed_transactions: nil)
@disputed_transaction = disputed_transaction
@prior_undisputed_transactions = prior_undisputed_transactions
end
end
class VisaCompliance < Stripe::RequestParams
# A field acknowledging the fee incurred when countering a Visa compliance dispute. If this field is set to true, evidence can be submitted for the compliance dispute. Stripe collects a 500 USD (or local equivalent) amount to cover the network costs associated with resolving compliance disputes. Stripe refunds the 500 USD network fee if you win the dispute.
attr_accessor :fee_acknowledged
def initialize(fee_acknowledged: nil)
@fee_acknowledged = fee_acknowledged
end
end
# Evidence provided for Visa Compelling Evidence 3.0 evidence submission.
attr_accessor :visa_compelling_evidence_3
# Evidence provided for Visa compliance evidence submission.
attr_accessor :visa_compliance
def initialize(visa_compelling_evidence_3: nil, visa_compliance: nil)
@visa_compelling_evidence_3 = visa_compelling_evidence_3
@visa_compliance = visa_compliance
end
end
# Any server or activity logs showing proof that the customer accessed or downloaded the purchased digital product. This information should include IP addresses, corresponding timestamps, and any detailed recorded activity. Has a maximum character count of 20,000.
attr_accessor :access_activity_log
# The billing address provided by the customer.
attr_accessor :billing_address
# (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Your subscription cancellation policy, as shown to the customer.
attr_accessor :cancellation_policy
# An explanation of how and when the customer was shown your refund policy prior to purchase. Has a maximum character count of 20,000.
attr_accessor :cancellation_policy_disclosure
# A justification for why the customer's subscription was not canceled. Has a maximum character count of 20,000.
attr_accessor :cancellation_rebuttal
# (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Any communication with the customer that you feel is relevant to your case. Examples include emails proving that the customer received the product or service, or demonstrating their use of or satisfaction with the product or service.
attr_accessor :customer_communication
# The email address of the customer.
attr_accessor :customer_email_address
# The name of the customer.
attr_accessor :customer_name
# The IP address that the customer used when making the purchase.
attr_accessor :customer_purchase_ip
# (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) A relevant document or contract showing the customer's signature.
attr_accessor :customer_signature
# (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Documentation for the prior charge that can uniquely identify the charge, such as a receipt, shipping label, work order, etc. This document should be paired with a similar document from the disputed payment that proves the two payments are separate.
attr_accessor :duplicate_charge_documentation
# An explanation of the difference between the disputed charge versus the prior charge that appears to be a duplicate. Has a maximum character count of 20,000.
attr_accessor :duplicate_charge_explanation
# The Stripe ID for the prior charge which appears to be a duplicate of the disputed charge.
attr_accessor :duplicate_charge_id
# Additional evidence for qualifying evidence programs.
attr_accessor :enhanced_evidence
# A description of the product or service that was sold. Has a maximum character count of 20,000.
attr_accessor :product_description
# (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Any receipt or message sent to the customer notifying them of the charge.
attr_accessor :receipt
# (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Your refund policy, as shown to the customer.
attr_accessor :refund_policy
# Documentation demonstrating that the customer was shown your refund policy prior to purchase. Has a maximum character count of 20,000.
attr_accessor :refund_policy_disclosure
# A justification for why the customer is not entitled to a refund. Has a maximum character count of 20,000.
attr_accessor :refund_refusal_explanation
# The date on which the customer received or began receiving the purchased service, in a clear human-readable format.
attr_accessor :service_date
# (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Documentation showing proof that a service was provided to the customer. This could include a copy of a signed contract, work order, or other form of written agreement.
attr_accessor :service_documentation
# The address to which a physical product was shipped. You should try to include as complete address information as possible.
attr_accessor :shipping_address
# The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc. If multiple carriers were used for this purchase, please separate them with commas.
attr_accessor :shipping_carrier
# The date on which a physical product began its route to the shipping address, in a clear human-readable format.
attr_accessor :shipping_date
# (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Documentation showing proof that a product was shipped to the customer at the same address the customer provided to you. This could include a copy of the shipment receipt, shipping label, etc. It should show the customer's full shipping address, if possible.
attr_accessor :shipping_documentation
# The tracking number for a physical product, obtained from the delivery service. If multiple tracking numbers were generated for this purchase, please separate them with commas.
attr_accessor :shipping_tracking_number
# (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Any additional evidence or statements.
attr_accessor :uncategorized_file
# Any additional evidence or statements. Has a maximum character count of 20,000.
attr_accessor :uncategorized_text
def initialize(
access_activity_log: nil,
billing_address: nil,
cancellation_policy: nil,
cancellation_policy_disclosure: nil,
cancellation_rebuttal: nil,
customer_communication: nil,
customer_email_address: nil,
customer_name: nil,
customer_purchase_ip: nil,
customer_signature: nil,
duplicate_charge_documentation: nil,
duplicate_charge_explanation: nil,
duplicate_charge_id: nil,
enhanced_evidence: nil,
product_description: nil,
receipt: nil,
refund_policy: nil,
refund_policy_disclosure: nil,
refund_refusal_explanation: nil,
service_date: nil,
service_documentation: nil,
shipping_address: nil,
shipping_carrier: nil,
shipping_date: nil,
shipping_documentation: nil,
shipping_tracking_number: nil,
uncategorized_file: nil,
uncategorized_text: nil
)
@access_activity_log = access_activity_log
@billing_address = billing_address
@cancellation_policy = cancellation_policy
@cancellation_policy_disclosure = cancellation_policy_disclosure
@cancellation_rebuttal = cancellation_rebuttal
@customer_communication = customer_communication
@customer_email_address = customer_email_address
@customer_name = customer_name
@customer_purchase_ip = customer_purchase_ip
@customer_signature = customer_signature
@duplicate_charge_documentation = duplicate_charge_documentation
@duplicate_charge_explanation = duplicate_charge_explanation
@duplicate_charge_id = duplicate_charge_id
@enhanced_evidence = enhanced_evidence
@product_description = product_description
@receipt = receipt
@refund_policy = refund_policy
@refund_policy_disclosure = refund_policy_disclosure
@refund_refusal_explanation = refund_refusal_explanation
@service_date = service_date
@service_documentation = service_documentation
@shipping_address = shipping_address
@shipping_carrier = shipping_carrier
@shipping_date = shipping_date
@shipping_documentation = shipping_documentation
@shipping_tracking_number = shipping_tracking_number
@uncategorized_file = uncategorized_file
@uncategorized_text = uncategorized_text
end
end
# Evidence to upload, to respond to a dispute. Updating any field in the hash will submit all fields in the hash for review. The combined character count of all fields is limited to 150,000.
attr_accessor :evidence
# Specifies which fields in the response should be expanded.
attr_accessor :expand
# Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
attr_accessor :metadata
# Whether to immediately submit evidence to the bank. If `false`, evidence is staged on the dispute. Staged evidence is visible in the API and Dashboard, and can be submitted to the bank by making another request with this attribute set to `true` (the default).
attr_accessor :submit
def initialize(evidence: nil, expand: nil, metadata: nil, submit: nil)
@evidence = evidence
@expand = expand
@metadata = metadata
@submit = submit
end
end
class CloseParams < Stripe::RequestParams
# Specifies which fields in the response should be expanded.
attr_accessor :expand
def initialize(expand: nil)
@expand = expand
end
end
# Disputed amount. Usually the amount of the charge, but it can differ (usually because of currency fluctuation or because only part of the order is disputed).
attr_reader :amount
# List of zero, one, or two balance transactions that show funds withdrawn and reinstated to your Stripe account as a result of this dispute.
attr_reader :balance_transactions
# ID of the charge that's disputed.
attr_reader :charge
# Time at which the object was created. Measured in seconds since the Unix epoch.
attr_reader :created
# Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).
attr_reader :currency
# List of eligibility types that are included in `enhanced_evidence`.
attr_reader :enhanced_eligibility_types
# Attribute for field evidence
attr_reader :evidence
# Attribute for field evidence_details
attr_reader :evidence_details
# Unique identifier for the object.
attr_reader :id
# If true, it's still possible to refund the disputed payment. After the payment has been fully refunded, no further funds are withdrawn from your Stripe account as a result of this dispute.
attr_reader :is_charge_refundable
# Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
attr_reader :livemode
# Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
attr_reader :metadata
# Network-dependent reason code for the dispute.
attr_reader :network_reason_code
# String representing the object's type. Objects of the same type share the same value.
attr_reader :object
# ID of the PaymentIntent that's disputed.
attr_reader :payment_intent
# Attribute for field payment_method_details
attr_reader :payment_method_details
# Reason given by cardholder for dispute. Possible values are `bank_cannot_process`, `check_returned`, `credit_not_processed`, `customer_initiated`, `debit_not_authorized`, `duplicate`, `fraudulent`, `general`, `incorrect_account_details`, `insufficient_funds`, `noncompliant`, `product_not_received`, `product_unacceptable`, `subscription_canceled`, or `unrecognized`. Learn more about [dispute reasons](https://stripe.com/docs/disputes/categories).
attr_reader :reason
# Current status of dispute. Possible values are `warning_needs_response`, `warning_under_review`, `warning_closed`, `needs_response`, `under_review`, `won`, or `lost`.
attr_reader :status
# Closing the dispute for a charge indicates that you do not have any evidence to submit and are essentially dismissing the dispute, acknowledging it as lost.
#
# The status of the dispute will change from needs_response to lost. Closing a dispute is irreversible.
@ -651,17 +41,17 @@ module Stripe
end
# Returns a list of your disputes.
def self.list(params = {}, opts = {})
request_stripe_object(method: :get, path: "/v1/disputes", params: params, opts: opts)
def self.list(filters = {}, opts = {})
request_stripe_object(method: :get, path: "/v1/disputes", params: filters, opts: opts)
end
# When you get a dispute, contacting your customer is always the best first step. If that doesn't work, you can submit evidence to help us resolve the dispute in your favor. You can do this in your [dashboard](https://dashboard.stripe.com/disputes), but if you prefer, you can use the API to submit evidence programmatically.
#
# Depending on your dispute type, different evidence fields will give you a better chance of winning your dispute. To figure out which evidence fields to provide, see our [guide to dispute types](https://docs.stripe.com/docs/disputes/categories).
def self.update(dispute, params = {}, opts = {})
# Depending on your dispute type, different evidence fields will give you a better chance of winning your dispute. To figure out which evidence fields to provide, see our [guide to dispute types](https://stripe.com/docs/disputes/categories).
def self.update(id, params = {}, opts = {})
request_stripe_object(
method: :post,
path: format("/v1/disputes/%<dispute>s", { dispute: CGI.escape(dispute) }),
path: format("/v1/disputes/%<id>s", { id: CGI.escape(id) }),
params: params,
opts: opts
)

View File

@ -12,49 +12,12 @@ module Stripe
"entitlements.active_entitlement"
end
class ListParams < Stripe::RequestParams
# The ID of the customer.
attr_accessor :customer
# A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.
attr_accessor :ending_before
# Specifies which fields in the response should be expanded.
attr_accessor :expand
# A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.
attr_accessor :limit
# A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.
attr_accessor :starting_after
def initialize(
customer: nil,
ending_before: nil,
expand: nil,
limit: nil,
starting_after: nil
)
@customer = customer
@ending_before = ending_before
@expand = expand
@limit = limit
@starting_after = starting_after
end
end
# The [Feature](https://stripe.com/docs/api/entitlements/feature) that the customer is entitled to.
attr_reader :feature
# Unique identifier for the object.
attr_reader :id
# Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
attr_reader :livemode
# A unique key you provide as your own system identifier. This may be up to 80 characters.
attr_reader :lookup_key
# String representing the object's type. Objects of the same type share the same value.
attr_reader :object
# Retrieve a list of active entitlements for a customer
def self.list(params = {}, opts = {})
def self.list(filters = {}, opts = {})
request_stripe_object(
method: :get,
path: "/v1/entitlements/active_entitlements",
params: params,
params: filters,
opts: opts
)
end

View File

@ -1,23 +0,0 @@
# File generated from our OpenAPI spec
# frozen_string_literal: true
module Stripe
module Entitlements
# A summary of a customer's active entitlements.
class ActiveEntitlementSummary < APIResource
OBJECT_NAME = "entitlements.active_entitlement_summary"
def self.object_name
"entitlements.active_entitlement_summary"
end
# The customer that is entitled to this feature.
attr_reader :customer
# The list of entitlements this customer has.
attr_reader :entitlements
# Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
attr_reader :livemode
# String representing the object's type. Objects of the same type share the same value.
attr_reader :object
end
end
end

View File

@ -15,87 +15,6 @@ module Stripe
"entitlements.feature"
end
class ListParams < Stripe::RequestParams
# If set, filter results to only include features with the given archive status.
attr_accessor :archived
# A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.
attr_accessor :ending_before
# Specifies which fields in the response should be expanded.
attr_accessor :expand
# A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.
attr_accessor :limit
# If set, filter results to only include features with the given lookup_key.
attr_accessor :lookup_key
# A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.
attr_accessor :starting_after
def initialize(
archived: nil,
ending_before: nil,
expand: nil,
limit: nil,
lookup_key: nil,
starting_after: nil
)
@archived = archived
@ending_before = ending_before
@expand = expand
@limit = limit
@lookup_key = lookup_key
@starting_after = starting_after
end
end
class CreateParams < Stripe::RequestParams
# Specifies which fields in the response should be expanded.
attr_accessor :expand
# A unique key you provide as your own system identifier. This may be up to 80 characters.
attr_accessor :lookup_key
# Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
attr_accessor :metadata
# The feature's name, for your own purpose, not meant to be displayable to the customer.
attr_accessor :name
def initialize(expand: nil, lookup_key: nil, metadata: nil, name: nil)
@expand = expand
@lookup_key = lookup_key
@metadata = metadata
@name = name
end
end
class UpdateParams < Stripe::RequestParams
# Inactive features cannot be attached to new products and will not be returned from the features list endpoint.
attr_accessor :active
# Specifies which fields in the response should be expanded.
attr_accessor :expand
# Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
attr_accessor :metadata
# The feature's name, for your own purpose, not meant to be displayable to the customer.
attr_accessor :name
def initialize(active: nil, expand: nil, metadata: nil, name: nil)
@active = active
@expand = expand
@metadata = metadata
@name = name
end
end
# Inactive features cannot be attached to new products and will not be returned from the features list endpoint.
attr_reader :active
# Unique identifier for the object.
attr_reader :id
# Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
attr_reader :livemode
# A unique key you provide as your own system identifier. This may be up to 80 characters.
attr_reader :lookup_key
# Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
attr_reader :metadata
# The feature's name, for your own purpose, not meant to be displayable to the customer.
attr_reader :name
# String representing the object's type. Objects of the same type share the same value.
attr_reader :object
# Creates a feature
def self.create(params = {}, opts = {})
request_stripe_object(
@ -107,11 +26,11 @@ module Stripe
end
# Retrieve a list of features
def self.list(params = {}, opts = {})
def self.list(filters = {}, opts = {})
request_stripe_object(
method: :get,
path: "/v1/entitlements/features",
params: params,
params: filters,
opts: opts
)
end

View File

@ -11,32 +11,11 @@ module Stripe
"ephemeral_key"
end
class DeleteParams < Stripe::RequestParams
# Specifies which fields in the response should be expanded.
attr_accessor :expand
def initialize(expand: nil)
@expand = expand
end
end
# Time at which the object was created. Measured in seconds since the Unix epoch.
attr_reader :created
# Time at which the key will expire. Measured in seconds since the Unix epoch.
attr_reader :expires
# Unique identifier for the object.
attr_reader :id
# Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
attr_reader :livemode
# String representing the object's type. Objects of the same type share the same value.
attr_reader :object
# The key's secret. You can use this value to make authorized requests to the Stripe API.
attr_reader :secret
# Invalidates a short-lived API key for a given resource.
def self.delete(key, params = {}, opts = {})
def self.delete(id, params = {}, opts = {})
request_stripe_object(
method: :delete,
path: format("/v1/ephemeral_keys/%<key>s", { key: CGI.escape(key) }),
path: format("/v1/ephemeral_keys/%<id>s", { id: CGI.escape(id) }),
params: params,
opts: opts
)

View File

@ -40,101 +40,9 @@ module Stripe
"event"
end
class Data < Stripe::StripeObject
# Object containing the API resource relevant to the event. For example, an `invoice.created` event will have a full [invoice object](https://stripe.com/docs/api#invoice_object) as the value of the object key.
attr_reader :object
# Object containing the names of the updated attributes and their values prior to the event (only included in events of type `*.updated`). If an array attribute has any updated elements, this object contains the entire array. In Stripe API versions 2017-04-06 or earlier, an updated array attribute in this object includes only the updated array elements.
attr_reader :previous_attributes
end
class Request < Stripe::StripeObject
# ID of the API request that caused the event. If null, the event was automatic (e.g., Stripe's automatic subscription handling). Request logs are available in the [dashboard](https://dashboard.stripe.com/logs), but currently not in the API.
attr_reader :id
# The idempotency key transmitted during the request, if any. *Note: This property is populated only for events on or after May 23, 2017*.
attr_reader :idempotency_key
end
class ListParams < Stripe::RequestParams
class Created < Stripe::RequestParams
# Minimum value to filter by (exclusive)
attr_accessor :gt
# Minimum value to filter by (inclusive)
attr_accessor :gte
# Maximum value to filter by (exclusive)
attr_accessor :lt
# Maximum value to filter by (inclusive)
attr_accessor :lte
def initialize(gt: nil, gte: nil, lt: nil, lte: nil)
@gt = gt
@gte = gte
@lt = lt
@lte = lte
end
end
# Only return events that were created during the given date interval.
attr_accessor :created
# Filter events by whether all webhooks were successfully delivered. If false, events which are still pending or have failed all delivery attempts to a webhook endpoint will be returned.
attr_accessor :delivery_success
# A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.
attr_accessor :ending_before
# Specifies which fields in the response should be expanded.
attr_accessor :expand
# A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.
attr_accessor :limit
# A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.
attr_accessor :starting_after
# A string containing a specific event name, or group of events using * as a wildcard. The list will be filtered to include only events with a matching event property.
attr_accessor :type
# An array of up to 20 strings containing specific event names. The list will be filtered to include only events with a matching event property. You may pass either `type` or `types`, but not both.
attr_accessor :types
def initialize(
created: nil,
delivery_success: nil,
ending_before: nil,
expand: nil,
limit: nil,
starting_after: nil,
type: nil,
types: nil
)
@created = created
@delivery_success = delivery_success
@ending_before = ending_before
@expand = expand
@limit = limit
@starting_after = starting_after
@type = type
@types = types
end
end
# The connected account that originates the event.
attr_reader :account
# The Stripe API version used to render `data`. This property is populated only for events on or after October 31, 2014.
attr_reader :api_version
# Authentication context needed to fetch the event or related object.
attr_reader :context
# Time at which the object was created. Measured in seconds since the Unix epoch.
attr_reader :created
# Attribute for field data
attr_reader :data
# Unique identifier for the object.
attr_reader :id
# Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
attr_reader :livemode
# String representing the object's type. Objects of the same type share the same value.
attr_reader :object
# Number of webhooks that haven't been successfully delivered (for example, to return a 20x response) to the URLs you specify.
attr_reader :pending_webhooks
# Information on the API request that triggers the event.
attr_reader :request
# Description of the event (for example, `invoice.created` or `charge.refunded`).
attr_reader :type
# List events, going back up to 30 days. Each event data is rendered according to Stripe API version at its creation time, specified in [event object](https://docs.stripe.com/api/events/object) api_version attribute (not according to your current Stripe API version or Stripe-Version header).
def self.list(params = {}, opts = {})
request_stripe_object(method: :get, path: "/v1/events", params: params, opts: opts)
def self.list(filters = {}, opts = {})
request_stripe_object(method: :get, path: "/v1/events", params: filters, opts: opts)
end
end
end

View File

@ -36,33 +36,9 @@ module Stripe
"exchange_rate"
end
class ListParams < Stripe::RequestParams
# A cursor for use in pagination. `ending_before` is the currency that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with the exchange rate for currency X your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.
attr_accessor :ending_before
# Specifies which fields in the response should be expanded.
attr_accessor :expand
# A limit on the number of objects to be returned. Limit can range between 1 and total number of supported payout currencies, and the default is the max.
attr_accessor :limit
# A cursor for use in pagination. `starting_after` is the currency that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with the exchange rate for currency X, your subsequent call can include `starting_after=X` in order to fetch the next page of the list.
attr_accessor :starting_after
def initialize(ending_before: nil, expand: nil, limit: nil, starting_after: nil)
@ending_before = ending_before
@expand = expand
@limit = limit
@starting_after = starting_after
end
end
# Unique identifier for the object. Represented as the three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) in lowercase.
attr_reader :id
# String representing the object's type. Objects of the same type share the same value.
attr_reader :object
# Hash where the keys are supported currencies and the values are the exchange rate at which the base id currency converts to the key currency.
attr_reader :rates
# Returns a list of objects that contain the rates at which foreign currencies are converted to one another. Only shows the currencies for which Stripe supports.
def self.list(params = {}, opts = {})
request_stripe_object(method: :get, path: "/v1/exchange_rates", params: params, opts: opts)
def self.list(filters = {}, opts = {})
request_stripe_object(method: :get, path: "/v1/exchange_rates", params: filters, opts: opts)
end
end
end

View File

@ -6,7 +6,7 @@ module Stripe
# files with the [create file](https://stripe.com/docs/api#create_file) request
# (for example, when uploading dispute evidence). Stripe also
# creates files independently (for example, the results of a [Sigma scheduled
# query](https://docs.stripe.com/api#scheduled_queries)).
# query](https://stripe.com/docs/api#scheduled_queries)).
#
# Related guide: [File upload guide](https://stripe.com/docs/file-upload)
class File < APIResource
@ -18,130 +18,9 @@ module Stripe
"file"
end
class ListParams < Stripe::RequestParams
class Created < Stripe::RequestParams
# Minimum value to filter by (exclusive)
attr_accessor :gt
# Minimum value to filter by (inclusive)
attr_accessor :gte
# Maximum value to filter by (exclusive)
attr_accessor :lt
# Maximum value to filter by (inclusive)
attr_accessor :lte
def initialize(gt: nil, gte: nil, lt: nil, lte: nil)
@gt = gt
@gte = gte
@lt = lt
@lte = lte
end
end
# Only return files that were created during the given date interval.
attr_accessor :created
# A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.
attr_accessor :ending_before
# Specifies which fields in the response should be expanded.
attr_accessor :expand
# A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.
attr_accessor :limit
# Filter queries by the file purpose. If you don't provide a purpose, the queries return unfiltered files.
attr_accessor :purpose
# A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.
attr_accessor :starting_after
def initialize(
created: nil,
ending_before: nil,
expand: nil,
limit: nil,
purpose: nil,
starting_after: nil
)
@created = created
@ending_before = ending_before
@expand = expand
@limit = limit
@purpose = purpose
@starting_after = starting_after
end
end
class CreateParams < Stripe::RequestParams
class FileLinkData < Stripe::RequestParams
# Set this to `true` to create a file link for the newly created file. Creating a link is only possible when the file's `purpose` is one of the following: `business_icon`, `business_logo`, `customer_signature`, `dispute_evidence`, `issuing_regulatory_reporting`, `pci_document`, `tax_document_user_upload`, or `terminal_reader_splashscreen`.
attr_accessor :create
# The link isn't available after this future timestamp.
attr_accessor :expires_at
# Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
attr_accessor :metadata
def initialize(create: nil, expires_at: nil, metadata: nil)
@create = create
@expires_at = expires_at
@metadata = metadata
end
end
# Specifies which fields in the response should be expanded.
attr_accessor :expand
# A file to upload. Make sure that the specifications follow RFC 2388, which defines file transfers for the `multipart/form-data` protocol.
attr_accessor :file
# Optional parameters that automatically create a [file link](https://stripe.com/docs/api#file_links) for the newly created file.
attr_accessor :file_link_data
# The [purpose](https://stripe.com/docs/file-upload#uploading-a-file) of the uploaded file.
attr_accessor :purpose
def initialize(expand: nil, file: nil, file_link_data: nil, purpose: nil)
@expand = expand
@file = file
@file_link_data = file_link_data
@purpose = purpose
end
end
# Time at which the object was created. Measured in seconds since the Unix epoch.
attr_reader :created
# The file expires and isn't available at this time in epoch seconds.
attr_reader :expires_at
# The suitable name for saving the file to a filesystem.
attr_reader :filename
# Unique identifier for the object.
attr_reader :id
# A list of [file links](https://stripe.com/docs/api#file_links) that point at this file.
attr_reader :links
# String representing the object's type. Objects of the same type share the same value.
attr_reader :object
# The [purpose](https://stripe.com/docs/file-upload#uploading-a-file) of the uploaded file.
attr_reader :purpose
# The size of the file object in bytes.
attr_reader :size
# A suitable title for the document.
attr_reader :title
# The returned file type (for example, `csv`, `pdf`, `jpg`, or `png`).
attr_reader :type
# Use your live secret API key to download the file from this URL.
attr_reader :url
# To upload a file to Stripe, you need to send a request of type multipart/form-data. Include the file you want to upload in the request, and the parameters for creating a file.
#
# All of Stripe's officially supported Client libraries support sending multipart/form-data.
def self.create(params = {}, opts = {})
if params[:file] && !params[:file].is_a?(String) && !params[:file].respond_to?(:read)
raise ArgumentError, "file must respond to `#read`"
end
opts = { content_type: MultipartEncoder::MULTIPART_FORM_DATA }.merge(Util.normalize_opts(opts))
request_stripe_object(
method: :post,
path: "/v1/files",
params: params,
opts: opts,
base_address: :files
)
end
# Returns a list of the files that your account has access to. Stripe sorts and returns the files by their creation dates, placing the most recently created files at the top.
def self.list(params = {}, opts = {})
request_stripe_object(method: :get, path: "/v1/files", params: params, opts: opts)
def self.list(filters = {}, opts = {})
request_stripe_object(method: :get, path: "/v1/files", params: filters, opts: opts)
end
# This resource can have two different object names. In latter API
@ -156,5 +35,18 @@ module Stripe
def self.resource_url
"/v1/files"
end
def self.create(params = {}, opts = {})
if params[:file] && !params[:file].is_a?(String) && !params[:file].respond_to?(:read)
raise ArgumentError, "file must respond to `#read`"
end
config = opts[:client]&.config || Stripe.config
opts = {
api_base: config.uploads_base,
content_type: MultipartEncoder::MULTIPART_FORM_DATA,
}.merge(Util.normalize_opts(opts))
super
end
end
end

View File

@ -15,124 +15,21 @@ module Stripe
"file_link"
end
class ListParams < Stripe::RequestParams
class Created < Stripe::RequestParams
# Minimum value to filter by (exclusive)
attr_accessor :gt
# Minimum value to filter by (inclusive)
attr_accessor :gte
# Maximum value to filter by (exclusive)
attr_accessor :lt
# Maximum value to filter by (inclusive)
attr_accessor :lte
def initialize(gt: nil, gte: nil, lt: nil, lte: nil)
@gt = gt
@gte = gte
@lt = lt
@lte = lte
end
end
# Only return links that were created during the given date interval.
attr_accessor :created
# A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.
attr_accessor :ending_before
# Specifies which fields in the response should be expanded.
attr_accessor :expand
# Filter links by their expiration status. By default, Stripe returns all links.
attr_accessor :expired
# Only return links for the given file.
attr_accessor :file
# A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.
attr_accessor :limit
# A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.
attr_accessor :starting_after
def initialize(
created: nil,
ending_before: nil,
expand: nil,
expired: nil,
file: nil,
limit: nil,
starting_after: nil
)
@created = created
@ending_before = ending_before
@expand = expand
@expired = expired
@file = file
@limit = limit
@starting_after = starting_after
end
end
class CreateParams < Stripe::RequestParams
# Specifies which fields in the response should be expanded.
attr_accessor :expand
# The link isn't usable after this future timestamp.
attr_accessor :expires_at
# The ID of the file. The file's `purpose` must be one of the following: `business_icon`, `business_logo`, `customer_signature`, `dispute_evidence`, `finance_report_run`, `financial_account_statement`, `identity_document_downloadable`, `issuing_regulatory_reporting`, `pci_document`, `selfie`, `sigma_scheduled_query`, `tax_document_user_upload`, or `terminal_reader_splashscreen`.
attr_accessor :file
# Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
attr_accessor :metadata
def initialize(expand: nil, expires_at: nil, file: nil, metadata: nil)
@expand = expand
@expires_at = expires_at
@file = file
@metadata = metadata
end
end
class UpdateParams < Stripe::RequestParams
# Specifies which fields in the response should be expanded.
attr_accessor :expand
# A future timestamp after which the link will no longer be usable, or `now` to expire the link immediately.
attr_accessor :expires_at
# Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
attr_accessor :metadata
def initialize(expand: nil, expires_at: nil, metadata: nil)
@expand = expand
@expires_at = expires_at
@metadata = metadata
end
end
# Time at which the object was created. Measured in seconds since the Unix epoch.
attr_reader :created
# Returns if the link is already expired.
attr_reader :expired
# Time that the link expires.
attr_reader :expires_at
# The file object this link points to.
attr_reader :file
# Unique identifier for the object.
attr_reader :id
# Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
attr_reader :livemode
# Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
attr_reader :metadata
# String representing the object's type. Objects of the same type share the same value.
attr_reader :object
# The publicly accessible URL to download the file.
attr_reader :url
# Creates a new file link object.
def self.create(params = {}, opts = {})
request_stripe_object(method: :post, path: "/v1/file_links", params: params, opts: opts)
end
# Returns a list of file links.
def self.list(params = {}, opts = {})
request_stripe_object(method: :get, path: "/v1/file_links", params: params, opts: opts)
def self.list(filters = {}, opts = {})
request_stripe_object(method: :get, path: "/v1/file_links", params: filters, opts: opts)
end
# Updates an existing file link object. Expired links can no longer be updated.
def self.update(link, params = {}, opts = {})
def self.update(id, params = {}, opts = {})
request_stripe_object(
method: :post,
path: format("/v1/file_links/%<link>s", { link: CGI.escape(link) }),
path: format("/v1/file_links/%<id>s", { id: CGI.escape(id) }),
params: params,
opts: opts
)

View File

@ -6,248 +6,14 @@ module Stripe
# A Financial Connections Account represents an account that exists outside of Stripe, to which you have been granted some degree of access.
class Account < APIResource
extend Stripe::APIOperations::List
extend Stripe::APIOperations::NestedResource
OBJECT_NAME = "financial_connections.account"
def self.object_name
"financial_connections.account"
end
class AccountHolder < Stripe::StripeObject
# The ID of the Stripe account this account belongs to. Should only be present if `account_holder.type` is `account`.
attr_reader :account
# ID of the Stripe customer this account belongs to. Present if and only if `account_holder.type` is `customer`.
attr_reader :customer
# Type of account holder that this account belongs to.
attr_reader :type
end
class Balance < Stripe::StripeObject
class Cash < Stripe::StripeObject
# The funds available to the account holder. Typically this is the current balance after subtracting any outbound pending transactions and adding any inbound pending transactions.
#
# Each key is a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase.
#
# Each value is a integer amount. A positive amount indicates money owed to the account holder. A negative amount indicates money owed by the account holder.
attr_reader :available
end
class Credit < Stripe::StripeObject
# The credit that has been used by the account holder.
#
# Each key is a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase.
#
# Each value is a integer amount. A positive amount indicates money owed to the account holder. A negative amount indicates money owed by the account holder.
attr_reader :used
end
# The time that the external institution calculated this balance. Measured in seconds since the Unix epoch.
attr_reader :as_of
# Attribute for field cash
attr_reader :cash
# Attribute for field credit
attr_reader :credit
# The balances owed to (or by) the account holder, before subtracting any outbound pending transactions or adding any inbound pending transactions.
#
# Each key is a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase.
#
# Each value is a integer amount. A positive amount indicates money owed to the account holder. A negative amount indicates money owed by the account holder.
attr_reader :current
# The `type` of the balance. An additional hash is included on the balance with a name matching this value.
attr_reader :type
end
class BalanceRefresh < Stripe::StripeObject
# The time at which the last refresh attempt was initiated. Measured in seconds since the Unix epoch.
attr_reader :last_attempted_at
# Time at which the next balance refresh can be initiated. This value will be `null` when `status` is `pending`. Measured in seconds since the Unix epoch.
attr_reader :next_refresh_available_at
# The status of the last refresh attempt.
attr_reader :status
end
class OwnershipRefresh < Stripe::StripeObject
# The time at which the last refresh attempt was initiated. Measured in seconds since the Unix epoch.
attr_reader :last_attempted_at
# Time at which the next ownership refresh can be initiated. This value will be `null` when `status` is `pending`. Measured in seconds since the Unix epoch.
attr_reader :next_refresh_available_at
# The status of the last refresh attempt.
attr_reader :status
end
class TransactionRefresh < Stripe::StripeObject
# Unique identifier for the object.
attr_reader :id
# The time at which the last refresh attempt was initiated. Measured in seconds since the Unix epoch.
attr_reader :last_attempted_at
# Time at which the next transaction refresh can be initiated. This value will be `null` when `status` is `pending`. Measured in seconds since the Unix epoch.
attr_reader :next_refresh_available_at
# The status of the last refresh attempt.
attr_reader :status
end
class ListParams < Stripe::RequestParams
class AccountHolder < Stripe::RequestParams
# The ID of the Stripe account whose accounts will be retrieved.
attr_accessor :account
# The ID of the Stripe customer whose accounts will be retrieved.
attr_accessor :customer
def initialize(account: nil, customer: nil)
@account = account
@customer = customer
end
end
# If present, only return accounts that belong to the specified account holder. `account_holder[customer]` and `account_holder[account]` are mutually exclusive.
attr_accessor :account_holder
# A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.
attr_accessor :ending_before
# Specifies which fields in the response should be expanded.
attr_accessor :expand
# A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.
attr_accessor :limit
# If present, only return accounts that were collected as part of the given session.
attr_accessor :session
# A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.
attr_accessor :starting_after
def initialize(
account_holder: nil,
ending_before: nil,
expand: nil,
limit: nil,
session: nil,
starting_after: nil
)
@account_holder = account_holder
@ending_before = ending_before
@expand = expand
@limit = limit
@session = session
@starting_after = starting_after
end
end
class ListOwnersParams < Stripe::RequestParams
# A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.
attr_accessor :ending_before
# Specifies which fields in the response should be expanded.
attr_accessor :expand
# A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.
attr_accessor :limit
# The ID of the ownership object to fetch owners from.
attr_accessor :ownership
# A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.
attr_accessor :starting_after
def initialize(
ending_before: nil,
expand: nil,
limit: nil,
ownership: nil,
starting_after: nil
)
@ending_before = ending_before
@expand = expand
@limit = limit
@ownership = ownership
@starting_after = starting_after
end
end
class DisconnectParams < Stripe::RequestParams
# Specifies which fields in the response should be expanded.
attr_accessor :expand
def initialize(expand: nil)
@expand = expand
end
end
class RefreshAccountParams < Stripe::RequestParams
# Specifies which fields in the response should be expanded.
attr_accessor :expand
# The list of account features that you would like to refresh.
attr_accessor :features
def initialize(expand: nil, features: nil)
@expand = expand
@features = features
end
end
class SubscribeParams < Stripe::RequestParams
# Specifies which fields in the response should be expanded.
attr_accessor :expand
# The list of account features to which you would like to subscribe.
attr_accessor :features
def initialize(expand: nil, features: nil)
@expand = expand
@features = features
end
end
class UnsubscribeParams < Stripe::RequestParams
# Specifies which fields in the response should be expanded.
attr_accessor :expand
# The list of account features from which you would like to unsubscribe.
attr_accessor :features
def initialize(expand: nil, features: nil)
@expand = expand
@features = features
end
end
# The account holder that this account belongs to.
attr_reader :account_holder
# The most recent information about the account's balance.
attr_reader :balance
# The state of the most recent attempt to refresh the account balance.
attr_reader :balance_refresh
# The type of the account. Account category is further divided in `subcategory`.
attr_reader :category
# Time at which the object was created. Measured in seconds since the Unix epoch.
attr_reader :created
# A human-readable name that has been assigned to this account, either by the account holder or by the institution.
attr_reader :display_name
# Unique identifier for the object.
attr_reader :id
# The name of the institution that holds this account.
attr_reader :institution_name
# The last 4 digits of the account number. If present, this will be 4 numeric characters.
attr_reader :last4
# Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
attr_reader :livemode
# String representing the object's type. Objects of the same type share the same value.
attr_reader :object
# The most recent information about the account's owners.
attr_reader :ownership
# The state of the most recent attempt to refresh the account owners.
attr_reader :ownership_refresh
# The list of permissions granted by this account.
attr_reader :permissions
# The status of the link to the account.
attr_reader :status
# If `category` is `cash`, one of:
#
# - `checking`
# - `savings`
# - `other`
#
# If `category` is `credit`, one of:
#
# - `mortgage`
# - `line_of_credit`
# - `credit_card`
# - `other`
#
# If `category` is `investment` or `other`, this will be `other`.
attr_reader :subcategory
# The list of data refresh subscriptions requested on this account.
attr_reader :subscriptions
# The [PaymentMethod type](https://stripe.com/docs/api/payment_methods/object#payment_method_object-type)(s) that can be created from this account.
attr_reader :supported_payment_method_types
# The state of the most recent attempt to refresh the account transactions.
attr_reader :transaction_refresh
nested_resource_class_methods :inferred_balance, operations: %i[list]
# Disables your access to a Financial Connections Account. You will no longer be able to access data associated with the account (e.g. balances, transactions).
def disconnect(params = {}, opts = {})
@ -270,11 +36,11 @@ module Stripe
end
# Returns a list of Financial Connections Account objects.
def self.list(params = {}, opts = {})
def self.list(filters = {}, opts = {})
request_stripe_object(
method: :get,
path: "/v1/financial_connections/accounts",
params: params,
params: filters,
opts: opts
)
end

View File

@ -0,0 +1,14 @@
# File generated from our OpenAPI spec
# frozen_string_literal: true
module Stripe
module FinancialConnections
# A historical balance for the account on a particular day. It may be sourced from a balance snapshot provided by a financial institution, or inferred using transactions data.
class AccountInferredBalance < APIResource
OBJECT_NAME = "financial_connections.account_inferred_balance"
def self.object_name
"financial_connections.account_inferred_balance"
end
end
end
end

View File

@ -9,23 +9,6 @@ module Stripe
def self.object_name
"financial_connections.account_owner"
end
# The email address of the owner.
attr_reader :email
# Unique identifier for the object.
attr_reader :id
# The full name of the owner.
attr_reader :name
# String representing the object's type. Objects of the same type share the same value.
attr_reader :object
# The ownership object that this owner belongs to.
attr_reader :ownership
# The raw phone number of the owner.
attr_reader :phone
# The raw physical address of the owner.
attr_reader :raw_address
# The timestamp of the refresh that updated this owner.
attr_reader :refreshed_at
end
end
end

Some files were not shown because too many files have changed in this diff Show More