pay-lago 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (140) hide show
  1. checksums.yaml +7 -0
  2. data/.github/workflows/main.yml +27 -0
  3. data/.gitignore +28 -0
  4. data/.rspec +3 -0
  5. data/.standard.yml +3 -0
  6. data/CHANGELOG.md +2 -0
  7. data/CODE_OF_CONDUCT.md +84 -0
  8. data/Gemfile +25 -0
  9. data/Gemfile.lock +292 -0
  10. data/LICENSE.txt +21 -0
  11. data/README.md +85 -0
  12. data/Rakefile +32 -0
  13. data/app/controllers/pay/webhooks/lago_controller.rb +41 -0
  14. data/app/models/concerns/pay/lago/pay_customer_extensions.rb +15 -0
  15. data/app/models/concerns/pay/lago/pay_extensions.rb +15 -0
  16. data/bin/console +15 -0
  17. data/bin/rails +16 -0
  18. data/bin/setup +8 -0
  19. data/config/routes.rb +5 -0
  20. data/docs/1_customers.md +18 -0
  21. data/docs/2_charges.md +72 -0
  22. data/docs/3_subscriptions.md +67 -0
  23. data/docs/4_webhooks.md +66 -0
  24. data/lib/pay/lago/attributes.rb +24 -0
  25. data/lib/pay/lago/billable.rb +148 -0
  26. data/lib/pay/lago/charge.rb +82 -0
  27. data/lib/pay/lago/engine.rb +27 -0
  28. data/lib/pay/lago/error.rb +9 -0
  29. data/lib/pay/lago/payment_method.rb +37 -0
  30. data/lib/pay/lago/subscription.rb +134 -0
  31. data/lib/pay/lago/version.rb +7 -0
  32. data/lib/pay/lago/webhook_extensions.rb +10 -0
  33. data/lib/pay/lago/webhooks/customer_payment_provider_created.rb +18 -0
  34. data/lib/pay/lago/webhooks/invoice_created.rb +15 -0
  35. data/lib/pay/lago/webhooks/invoice_drafted.rb +11 -0
  36. data/lib/pay/lago/webhooks/invoice_one_off_created.rb +15 -0
  37. data/lib/pay/lago/webhooks/invoice_payment_status_updated.rb +14 -0
  38. data/lib/pay/lago/webhooks/subscription_started.rb +12 -0
  39. data/lib/pay/lago/webhooks/subscription_terminated.rb +12 -0
  40. data/lib/pay/lago.rb +91 -0
  41. data/pay-lago.gemspec +27 -0
  42. data/sig/pay/lago.rbs +6 -0
  43. data/test/controllers/pay/webhooks/lago_controller_test.rb +37 -0
  44. data/test/dummy/.browserslistrc +1 -0
  45. data/test/dummy/Rakefile +6 -0
  46. data/test/dummy/app/assets/config/manifest.js +4 -0
  47. data/test/dummy/app/assets/images/.keep +0 -0
  48. data/test/dummy/app/assets/stylesheets/application.css +15 -0
  49. data/test/dummy/app/channels/application_cable/channel.rb +4 -0
  50. data/test/dummy/app/channels/application_cable/connection.rb +4 -0
  51. data/test/dummy/app/controllers/application_controller.rb +4 -0
  52. data/test/dummy/app/controllers/concerns/.keep +0 -0
  53. data/test/dummy/app/controllers/main_controller.rb +4 -0
  54. data/test/dummy/app/controllers/payment_methods_controller.rb +5 -0
  55. data/test/dummy/app/helpers/application_helper.rb +2 -0
  56. data/test/dummy/app/helpers/current_helper.rb +9 -0
  57. data/test/dummy/app/javascript/application.js +9 -0
  58. data/test/dummy/app/javascript/controllers/application.js +10 -0
  59. data/test/dummy/app/javascript/controllers/index.js +11 -0
  60. data/test/dummy/app/jobs/application_job.rb +2 -0
  61. data/test/dummy/app/mailers/application_mailer.rb +4 -0
  62. data/test/dummy/app/models/account.rb +3 -0
  63. data/test/dummy/app/models/application_record.rb +3 -0
  64. data/test/dummy/app/models/concerns/.keep +0 -0
  65. data/test/dummy/app/models/team.rb +10 -0
  66. data/test/dummy/app/models/user.rb +3 -0
  67. data/test/dummy/app/views/layouts/application.html.erb +36 -0
  68. data/test/dummy/app/views/layouts/mailer.html.erb +13 -0
  69. data/test/dummy/app/views/layouts/mailer.text.erb +1 -0
  70. data/test/dummy/app/webhooks/charge_succeeded.rb +5 -0
  71. data/test/dummy/bin/importmap +4 -0
  72. data/test/dummy/bin/rails +4 -0
  73. data/test/dummy/bin/rake +4 -0
  74. data/test/dummy/bin/setup +33 -0
  75. data/test/dummy/bin/webpack +18 -0
  76. data/test/dummy/bin/webpack-dev-server +18 -0
  77. data/test/dummy/config/application.rb +25 -0
  78. data/test/dummy/config/boot.rb +6 -0
  79. data/test/dummy/config/cable.yml +9 -0
  80. data/test/dummy/config/database.yml +3 -0
  81. data/test/dummy/config/environment.rb +5 -0
  82. data/test/dummy/config/environments/development.rb +70 -0
  83. data/test/dummy/config/environments/production.rb +86 -0
  84. data/test/dummy/config/environments/test.rb +60 -0
  85. data/test/dummy/config/importmap.rb +8 -0
  86. data/test/dummy/config/initializers/application_controller_renderer.rb +6 -0
  87. data/test/dummy/config/initializers/assets.rb +11 -0
  88. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  89. data/test/dummy/config/initializers/cookies_serializer.rb +5 -0
  90. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  91. data/test/dummy/config/initializers/inflections.rb +16 -0
  92. data/test/dummy/config/initializers/mime_types.rb +4 -0
  93. data/test/dummy/config/initializers/pay.rb +11 -0
  94. data/test/dummy/config/initializers/session_store.rb +3 -0
  95. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  96. data/test/dummy/config/locales/en.yml +23 -0
  97. data/test/dummy/config/puma.rb +47 -0
  98. data/test/dummy/config/routes.rb +4 -0
  99. data/test/dummy/config/secrets.yml +22 -0
  100. data/test/dummy/config/spring.rb +6 -0
  101. data/test/dummy/config/storage.yml +34 -0
  102. data/test/dummy/config.ru +6 -0
  103. data/test/dummy/db/migrate/20170205000000_create_users.rb +22 -0
  104. data/test/dummy/db/schema.rb +125 -0
  105. data/test/dummy/lib/assets/.keep +0 -0
  106. data/test/dummy/log/.keep +0 -0
  107. data/test/dummy/public/404.html +67 -0
  108. data/test/dummy/public/422.html +67 -0
  109. data/test/dummy/public/500.html +66 -0
  110. data/test/dummy/public/apple-touch-icon-precomposed.png +0 -0
  111. data/test/dummy/public/apple-touch-icon.png +0 -0
  112. data/test/dummy/public/favicon.ico +0 -0
  113. data/test/dummy/vendor/javascript/.keep +0 -0
  114. data/test/fixtures/accounts.yml +2 -0
  115. data/test/fixtures/pay/customers.yml +7 -0
  116. data/test/fixtures/teams.yml +4 -0
  117. data/test/fixtures/users.yml +11 -0
  118. data/test/pay/lago/billable_test.rb +42 -0
  119. data/test/pay/lago/charge_test.rb +23 -0
  120. data/test/pay/lago/subscription_test.rb +48 -0
  121. data/test/support/fixtures/lago/invoice.one_off_created.json +120 -0
  122. data/test/support/vcr.rb +28 -0
  123. data/test/test_helper.rb +66 -0
  124. data/test/vcr_cassettes/test_add_payment_method_to_lago.yml +56 -0
  125. data/test/vcr_cassettes/test_can_get_lago_processor_customer.yml +56 -0
  126. data/test/vcr_cassettes/test_can_make_a_lago_processor_charge.yml +163 -0
  127. data/test/vcr_cassettes/test_generates_lago_processor_id.yml +107 -0
  128. data/test/vcr_cassettes/test_lago_cannot_change_quantity.yml +108 -0
  129. data/test/vcr_cassettes/test_lago_processor_cancel.yml +212 -0
  130. data/test/vcr_cassettes/test_lago_processor_charge.yml +325 -0
  131. data/test/vcr_cassettes/test_lago_processor_on_grace_period__is_always_false.yml +108 -0
  132. data/test/vcr_cassettes/test_lago_processor_pause_raises_an_error.yml +108 -0
  133. data/test/vcr_cassettes/test_lago_processor_paused__is_always_false.yml +108 -0
  134. data/test/vcr_cassettes/test_lago_processor_refund_with_premium.yml +378 -0
  135. data/test/vcr_cassettes/test_lago_processor_refund_without_premium.yml +375 -0
  136. data/test/vcr_cassettes/test_lago_processor_resume_raises_an_error.yml +108 -0
  137. data/test/vcr_cassettes/test_lago_processor_subscribe.yml +108 -0
  138. data/test/vcr_cassettes/test_lago_processor_subscription.yml +160 -0
  139. data/test/vcr_cassettes/test_lago_processor_swap.yml +212 -0
  140. metadata +212 -0
@@ -0,0 +1,108 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://localhost:3000/api/v1/customers/gid:%2F%2Fdummy%2FPay::Customer%2F772847388
6
+ body:
7
+ encoding: UTF-8
8
+ string: ''
9
+ headers:
10
+ Authorization:
11
+ - Bearer 155ed033-8716-4587-9ac6-fed8ddae3317
12
+ Content-Type:
13
+ - application/json
14
+ User-Agent:
15
+ - Lago Ruby v0.44.0-beta
16
+ Accept-Encoding:
17
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
18
+ Accept:
19
+ - "*/*"
20
+ response:
21
+ status:
22
+ code: 200
23
+ message: OK
24
+ headers:
25
+ X-Frame-Options:
26
+ - SAMEORIGIN
27
+ X-Xss-Protection:
28
+ - '0'
29
+ X-Content-Type-Options:
30
+ - nosniff
31
+ X-Download-Options:
32
+ - noopen
33
+ X-Permitted-Cross-Domain-Policies:
34
+ - none
35
+ Referrer-Policy:
36
+ - strict-origin-when-cross-origin
37
+ Content-Type:
38
+ - application/json; charset=utf-8
39
+ Etag:
40
+ - W/"af429c6f51b25054dd9b23522b77d57d"
41
+ Cache-Control:
42
+ - max-age=0, private, must-revalidate
43
+ X-Request-Id:
44
+ - 32d49b55-651d-49b2-837f-c437d3c6eeeb
45
+ X-Runtime:
46
+ - '0.007339'
47
+ Vary:
48
+ - Origin
49
+ Transfer-Encoding:
50
+ - chunked
51
+ body:
52
+ encoding: UTF-8
53
+ string: '{"customer":{"lago_id":"c8bb805a-590c-444f-ae14-66589764f273","external_id":"gid://dummy/Pay::Customer/772847388","name":"Lago
54
+ User","sequential_id":4,"slug":"AMO-FBCD-004","created_at":"2023-09-18T06:42:57Z","updated_at":"2023-09-18T06:43:11Z","country":null,"address_line1":null,"address_line2":null,"state":null,"zipcode":null,"email":"test@example.com","city":null,"url":null,"phone":null,"logo_url":null,"legal_name":null,"legal_number":null,"currency":"USD","tax_identification_number":null,"timezone":null,"applicable_timezone":"UTC","net_payment_term":null,"external_salesforce_id":null,"billing_configuration":{"invoice_grace_period":null,"payment_provider":null,"vat_rate":null,"document_locale":null},"metadata":[],"taxes":[]}}'
55
+ recorded_at: Wed, 20 Sep 2023 03:19:24 GMT
56
+ - request:
57
+ method: post
58
+ uri: http://localhost:3000/api/v1/subscriptions
59
+ body:
60
+ encoding: UTF-8
61
+ string: '{"subscription":{"external_customer_id":"gid://dummy/Pay::Customer/772847388","plan_code":"default","name":"default","external_id":"gid://dummy/Pay::Subscription/913727099"}}'
62
+ headers:
63
+ Authorization:
64
+ - Bearer 155ed033-8716-4587-9ac6-fed8ddae3317
65
+ Content-Type:
66
+ - application/json
67
+ User-Agent:
68
+ - Lago Ruby v0.44.0-beta
69
+ Accept-Encoding:
70
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
71
+ Accept:
72
+ - "*/*"
73
+ response:
74
+ status:
75
+ code: 200
76
+ message: OK
77
+ headers:
78
+ X-Frame-Options:
79
+ - SAMEORIGIN
80
+ X-Xss-Protection:
81
+ - '0'
82
+ X-Content-Type-Options:
83
+ - nosniff
84
+ X-Download-Options:
85
+ - noopen
86
+ X-Permitted-Cross-Domain-Policies:
87
+ - none
88
+ Referrer-Policy:
89
+ - strict-origin-when-cross-origin
90
+ Content-Type:
91
+ - application/json; charset=utf-8
92
+ Etag:
93
+ - W/"fb3fb93434e12318f7063defd93d7c68"
94
+ Cache-Control:
95
+ - max-age=0, private, must-revalidate
96
+ X-Request-Id:
97
+ - f7dafc7c-5799-4b14-8d0e-5244bb455cc5
98
+ X-Runtime:
99
+ - 0.019935
100
+ Vary:
101
+ - Origin
102
+ Transfer-Encoding:
103
+ - chunked
104
+ body:
105
+ encoding: UTF-8
106
+ string: '{"subscription":{"lago_id":"4a849692-2b6d-48cc-a3f4-02c03a004b3b","external_id":"gid://dummy/Pay::Subscription/913727099","lago_customer_id":"c8bb805a-590c-444f-ae14-66589764f273","external_customer_id":"gid://dummy/Pay::Customer/772847388","name":"default","plan_code":"default","status":"active","billing_time":"calendar","subscription_at":"2023-09-19T00:47:59Z","started_at":"2023-09-19T00:47:59Z","terminated_at":null,"canceled_at":null,"created_at":"2023-09-19T00:47:59Z","previous_plan_code":null,"next_plan_code":null,"downgrade_plan_date":null,"subscription_date":"2023-09-19"}}'
107
+ recorded_at: Wed, 20 Sep 2023 03:19:24 GMT
108
+ recorded_with: VCR 6.2.0
@@ -0,0 +1,108 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://localhost:3000/api/v1/customers/gid:%2F%2Fdummy%2FPay::Customer%2F772847388
6
+ body:
7
+ encoding: UTF-8
8
+ string: ''
9
+ headers:
10
+ Authorization:
11
+ - Bearer 155ed033-8716-4587-9ac6-fed8ddae3317
12
+ Content-Type:
13
+ - application/json
14
+ User-Agent:
15
+ - Lago Ruby v0.44.0-beta
16
+ Accept-Encoding:
17
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
18
+ Accept:
19
+ - "*/*"
20
+ response:
21
+ status:
22
+ code: 200
23
+ message: OK
24
+ headers:
25
+ X-Frame-Options:
26
+ - SAMEORIGIN
27
+ X-Xss-Protection:
28
+ - '0'
29
+ X-Content-Type-Options:
30
+ - nosniff
31
+ X-Download-Options:
32
+ - noopen
33
+ X-Permitted-Cross-Domain-Policies:
34
+ - none
35
+ Referrer-Policy:
36
+ - strict-origin-when-cross-origin
37
+ Content-Type:
38
+ - application/json; charset=utf-8
39
+ Etag:
40
+ - W/"af429c6f51b25054dd9b23522b77d57d"
41
+ Cache-Control:
42
+ - max-age=0, private, must-revalidate
43
+ X-Request-Id:
44
+ - c8bc1ee1-b47c-4628-9336-267d02e1d120
45
+ X-Runtime:
46
+ - 0.007714
47
+ Vary:
48
+ - Origin
49
+ Transfer-Encoding:
50
+ - chunked
51
+ body:
52
+ encoding: UTF-8
53
+ string: '{"customer":{"lago_id":"c8bb805a-590c-444f-ae14-66589764f273","external_id":"gid://dummy/Pay::Customer/772847388","name":"Lago
54
+ User","sequential_id":4,"slug":"AMO-FBCD-004","created_at":"2023-09-18T06:42:57Z","updated_at":"2023-09-18T06:43:11Z","country":null,"address_line1":null,"address_line2":null,"state":null,"zipcode":null,"email":"test@example.com","city":null,"url":null,"phone":null,"logo_url":null,"legal_name":null,"legal_number":null,"currency":"USD","tax_identification_number":null,"timezone":null,"applicable_timezone":"UTC","net_payment_term":null,"external_salesforce_id":null,"billing_configuration":{"invoice_grace_period":null,"payment_provider":null,"vat_rate":null,"document_locale":null},"metadata":[],"taxes":[]}}'
55
+ recorded_at: Wed, 20 Sep 2023 03:17:30 GMT
56
+ - request:
57
+ method: post
58
+ uri: http://localhost:3000/api/v1/subscriptions
59
+ body:
60
+ encoding: UTF-8
61
+ string: '{"subscription":{"external_customer_id":"gid://dummy/Pay::Customer/772847388","plan_code":"default","name":"default","external_id":"gid://dummy/Pay::Subscription/913727099"}}'
62
+ headers:
63
+ Authorization:
64
+ - Bearer 155ed033-8716-4587-9ac6-fed8ddae3317
65
+ Content-Type:
66
+ - application/json
67
+ User-Agent:
68
+ - Lago Ruby v0.44.0-beta
69
+ Accept-Encoding:
70
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
71
+ Accept:
72
+ - "*/*"
73
+ response:
74
+ status:
75
+ code: 200
76
+ message: OK
77
+ headers:
78
+ X-Frame-Options:
79
+ - SAMEORIGIN
80
+ X-Xss-Protection:
81
+ - '0'
82
+ X-Content-Type-Options:
83
+ - nosniff
84
+ X-Download-Options:
85
+ - noopen
86
+ X-Permitted-Cross-Domain-Policies:
87
+ - none
88
+ Referrer-Policy:
89
+ - strict-origin-when-cross-origin
90
+ Content-Type:
91
+ - application/json; charset=utf-8
92
+ Etag:
93
+ - W/"fb3fb93434e12318f7063defd93d7c68"
94
+ Cache-Control:
95
+ - max-age=0, private, must-revalidate
96
+ X-Request-Id:
97
+ - c276277c-f76a-4f42-a8ec-dbb99abe2c4d
98
+ X-Runtime:
99
+ - 0.016837
100
+ Vary:
101
+ - Origin
102
+ Transfer-Encoding:
103
+ - chunked
104
+ body:
105
+ encoding: UTF-8
106
+ string: '{"subscription":{"lago_id":"4a849692-2b6d-48cc-a3f4-02c03a004b3b","external_id":"gid://dummy/Pay::Subscription/913727099","lago_customer_id":"c8bb805a-590c-444f-ae14-66589764f273","external_customer_id":"gid://dummy/Pay::Customer/772847388","name":"default","plan_code":"default","status":"active","billing_time":"calendar","subscription_at":"2023-09-19T00:47:59Z","started_at":"2023-09-19T00:47:59Z","terminated_at":null,"canceled_at":null,"created_at":"2023-09-19T00:47:59Z","previous_plan_code":null,"next_plan_code":null,"downgrade_plan_date":null,"subscription_date":"2023-09-19"}}'
107
+ recorded_at: Wed, 20 Sep 2023 03:17:30 GMT
108
+ recorded_with: VCR 6.2.0
@@ -0,0 +1,378 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://localhost:3000/api/v1/customers/gid:%2F%2Fdummy%2FPay::Customer%2F772847388
6
+ body:
7
+ encoding: UTF-8
8
+ string: ''
9
+ headers:
10
+ Authorization:
11
+ - Bearer 155ed033-8716-4587-9ac6-fed8ddae3317
12
+ Content-Type:
13
+ - application/json
14
+ User-Agent:
15
+ - Lago Ruby v0.44.0-beta
16
+ Accept-Encoding:
17
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
18
+ Accept:
19
+ - "*/*"
20
+ response:
21
+ status:
22
+ code: 200
23
+ message: OK
24
+ headers:
25
+ X-Frame-Options:
26
+ - SAMEORIGIN
27
+ X-Xss-Protection:
28
+ - '0'
29
+ X-Content-Type-Options:
30
+ - nosniff
31
+ X-Download-Options:
32
+ - noopen
33
+ X-Permitted-Cross-Domain-Policies:
34
+ - none
35
+ Referrer-Policy:
36
+ - strict-origin-when-cross-origin
37
+ Content-Type:
38
+ - application/json; charset=utf-8
39
+ Etag:
40
+ - W/"af429c6f51b25054dd9b23522b77d57d"
41
+ Cache-Control:
42
+ - max-age=0, private, must-revalidate
43
+ X-Request-Id:
44
+ - 47cc4e85-4bc2-4fea-a2d4-fed933fd53eb
45
+ X-Runtime:
46
+ - 0.015255
47
+ Vary:
48
+ - Origin
49
+ Transfer-Encoding:
50
+ - chunked
51
+ body:
52
+ encoding: UTF-8
53
+ string: '{"customer":{"lago_id":"c8bb805a-590c-444f-ae14-66589764f273","external_id":"gid://dummy/Pay::Customer/772847388","name":"Lago
54
+ User","sequential_id":4,"slug":"AMO-FBCD-004","created_at":"2023-09-18T06:42:57Z","updated_at":"2023-09-18T06:43:11Z","country":null,"address_line1":null,"address_line2":null,"state":null,"zipcode":null,"email":"test@example.com","city":null,"url":null,"phone":null,"logo_url":null,"legal_name":null,"legal_number":null,"currency":"USD","tax_identification_number":null,"timezone":null,"applicable_timezone":"UTC","net_payment_term":null,"external_salesforce_id":null,"billing_configuration":{"invoice_grace_period":null,"payment_provider":null,"vat_rate":null,"document_locale":null},"metadata":[],"taxes":[]}}'
55
+ recorded_at: Tue, 19 Sep 2023 02:11:10 GMT
56
+ - request:
57
+ method: get
58
+ uri: http://localhost:3000/api/v1/add_ons/pay_default_addon
59
+ body:
60
+ encoding: UTF-8
61
+ string: ''
62
+ headers:
63
+ Authorization:
64
+ - Bearer 155ed033-8716-4587-9ac6-fed8ddae3317
65
+ Content-Type:
66
+ - application/json
67
+ User-Agent:
68
+ - Lago Ruby v0.44.0-beta
69
+ Accept-Encoding:
70
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
71
+ Accept:
72
+ - "*/*"
73
+ response:
74
+ status:
75
+ code: 200
76
+ message: OK
77
+ headers:
78
+ X-Frame-Options:
79
+ - SAMEORIGIN
80
+ X-Xss-Protection:
81
+ - '0'
82
+ X-Content-Type-Options:
83
+ - nosniff
84
+ X-Download-Options:
85
+ - noopen
86
+ X-Permitted-Cross-Domain-Policies:
87
+ - none
88
+ Referrer-Policy:
89
+ - strict-origin-when-cross-origin
90
+ Content-Type:
91
+ - application/json; charset=utf-8
92
+ Etag:
93
+ - W/"313c360c2793ebdbf699d3669bdb5703"
94
+ Cache-Control:
95
+ - max-age=0, private, must-revalidate
96
+ X-Request-Id:
97
+ - b82e6771-afec-4eaf-abd8-152561cc58f6
98
+ X-Runtime:
99
+ - 0.018793
100
+ Vary:
101
+ - Origin
102
+ Transfer-Encoding:
103
+ - chunked
104
+ body:
105
+ encoding: UTF-8
106
+ string: '{"add_on":{"lago_id":"690e70c2-f101-4539-bda7-aefe4b1d068e","name":"Default
107
+ Charge","code":"pay_default_addon","amount_cents":100,"amount_currency":"USD","created_at":"2023-09-11T05:01:17Z","description":null,"taxes":[]}}'
108
+ recorded_at: Tue, 19 Sep 2023 02:11:10 GMT
109
+ - request:
110
+ method: post
111
+ uri: http://localhost:3000/api/v1/invoices
112
+ body:
113
+ encoding: UTF-8
114
+ string: '{"invoice":{"external_customer_id":"gid://dummy/Pay::Customer/772847388","currency":"USD","net_payment_term":null,"fees":[{"add_on_code":"pay_default_addon","unit_amount_cents":1000}]}}'
115
+ headers:
116
+ Authorization:
117
+ - Bearer 155ed033-8716-4587-9ac6-fed8ddae3317
118
+ Content-Type:
119
+ - application/json
120
+ User-Agent:
121
+ - Lago Ruby v0.44.0-beta
122
+ Accept-Encoding:
123
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
124
+ Accept:
125
+ - "*/*"
126
+ response:
127
+ status:
128
+ code: 200
129
+ message: OK
130
+ headers:
131
+ X-Frame-Options:
132
+ - SAMEORIGIN
133
+ X-Xss-Protection:
134
+ - '0'
135
+ X-Content-Type-Options:
136
+ - nosniff
137
+ X-Download-Options:
138
+ - noopen
139
+ X-Permitted-Cross-Domain-Policies:
140
+ - none
141
+ Referrer-Policy:
142
+ - strict-origin-when-cross-origin
143
+ Content-Type:
144
+ - application/json; charset=utf-8
145
+ Etag:
146
+ - W/"e01e486ff0f1356bc3e166d4d6520d76"
147
+ Cache-Control:
148
+ - max-age=0, private, must-revalidate
149
+ X-Request-Id:
150
+ - 5b33f395-d432-49b2-b5ef-047452a8f690
151
+ X-Runtime:
152
+ - 0.113760
153
+ Vary:
154
+ - Origin
155
+ Transfer-Encoding:
156
+ - chunked
157
+ body:
158
+ encoding: UTF-8
159
+ string: '{"invoice":{"lago_id":"4f388916-90d4-43a1-8b36-c4fb93cf58dc","sequential_id":12,"number":"AMO-FBCD-004-012","issuing_date":"2023-09-19","payment_due_date":"2023-09-19","net_payment_term":0,"invoice_type":"one_off","status":"finalized","payment_status":"pending","currency":"USD","fees_amount_cents":1000,"taxes_amount_cents":0,"coupons_amount_cents":0,"credit_notes_amount_cents":0,"sub_total_excluding_taxes_amount_cents":1000,"sub_total_including_taxes_amount_cents":1000,"total_amount_cents":1000,"prepaid_credit_amount_cents":0,"file_url":null,"version_number":3,"legacy":false,"amount_currency":"USD","vat_amount_currency":"USD","credit_amount_currency":"USD","total_amount_currency":"USD","amount_cents":1000,"credit_amount_cents":0,"vat_amount_cents":0,"sub_total_vat_excluded_amount_cents":1000,"sub_total_vat_included_amount_cents":1000,"customer":{"lago_id":"c8bb805a-590c-444f-ae14-66589764f273","external_id":"gid://dummy/Pay::Customer/772847388","name":"Lago
160
+ User","sequential_id":4,"slug":"AMO-FBCD-004","created_at":"2023-09-18T06:42:57Z","updated_at":"2023-09-18T06:43:11Z","country":null,"address_line1":null,"address_line2":null,"state":null,"zipcode":null,"email":"test@example.com","city":null,"url":null,"phone":null,"logo_url":null,"legal_name":null,"legal_number":null,"currency":"USD","tax_identification_number":null,"timezone":null,"applicable_timezone":"UTC","net_payment_term":null,"external_salesforce_id":null,"billing_configuration":{"invoice_grace_period":null,"payment_provider":null,"vat_rate":null,"document_locale":null},"metadata":[]},"subscriptions":[],"fees":[{"lago_id":"1c540661-8152-400f-866a-5f95b6156771","lago_group_id":null,"lago_invoice_id":"4f388916-90d4-43a1-8b36-c4fb93cf58dc","lago_true_up_fee_id":null,"lago_true_up_parent_fee_id":null,"item":{"type":"add_on","code":"pay_default_addon","name":"Default
161
+ Charge","lago_item_id":"690e70c2-f101-4539-bda7-aefe4b1d068e","item_type":"AddOn"},"pay_in_advance":false,"invoiceable":true,"amount_cents":1000,"amount_currency":"USD","taxes_amount_cents":0,"taxes_rate":0.0,"total_amount_cents":1000,"total_amount_currency":"USD","units":"1.0","description":null,"unit_amount_cents":1000,"events_count":null,"payment_status":"pending","created_at":"2023-09-19T02:11:10Z","succeeded_at":null,"failed_at":null,"refunded_at":null,"vat_amount_cents":0,"vat_amount_currency":"USD"}],"credits":[],"metadata":[],"applied_taxes":[]}}'
162
+ recorded_at: Tue, 19 Sep 2023 02:11:10 GMT
163
+ - request:
164
+ method: get
165
+ uri: http://localhost:3000/api/v1/invoices/4f388916-90d4-43a1-8b36-c4fb93cf58dc
166
+ body:
167
+ encoding: UTF-8
168
+ string: ''
169
+ headers:
170
+ Authorization:
171
+ - Bearer 155ed033-8716-4587-9ac6-fed8ddae3317
172
+ Content-Type:
173
+ - application/json
174
+ User-Agent:
175
+ - Lago Ruby v0.44.0-beta
176
+ Accept-Encoding:
177
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
178
+ Accept:
179
+ - "*/*"
180
+ response:
181
+ status:
182
+ code: 200
183
+ message: OK
184
+ headers:
185
+ X-Frame-Options:
186
+ - SAMEORIGIN
187
+ X-Xss-Protection:
188
+ - '0'
189
+ X-Content-Type-Options:
190
+ - nosniff
191
+ X-Download-Options:
192
+ - noopen
193
+ X-Permitted-Cross-Domain-Policies:
194
+ - none
195
+ Referrer-Policy:
196
+ - strict-origin-when-cross-origin
197
+ Content-Type:
198
+ - application/json; charset=utf-8
199
+ Etag:
200
+ - W/"e01e486ff0f1356bc3e166d4d6520d76"
201
+ Cache-Control:
202
+ - max-age=0, private, must-revalidate
203
+ X-Request-Id:
204
+ - f37fcdda-1907-4868-97eb-951fc9be02e6
205
+ X-Runtime:
206
+ - 0.015934
207
+ Vary:
208
+ - Origin
209
+ Transfer-Encoding:
210
+ - chunked
211
+ body:
212
+ encoding: UTF-8
213
+ string: '{"invoice":{"lago_id":"4f388916-90d4-43a1-8b36-c4fb93cf58dc","sequential_id":12,"number":"AMO-FBCD-004-012","issuing_date":"2023-09-19","payment_due_date":"2023-09-19","net_payment_term":0,"invoice_type":"one_off","status":"finalized","payment_status":"pending","currency":"USD","fees_amount_cents":1000,"taxes_amount_cents":0,"coupons_amount_cents":0,"credit_notes_amount_cents":0,"sub_total_excluding_taxes_amount_cents":1000,"sub_total_including_taxes_amount_cents":1000,"total_amount_cents":1000,"prepaid_credit_amount_cents":0,"file_url":null,"version_number":3,"legacy":false,"amount_currency":"USD","vat_amount_currency":"USD","credit_amount_currency":"USD","total_amount_currency":"USD","amount_cents":1000,"credit_amount_cents":0,"vat_amount_cents":0,"sub_total_vat_excluded_amount_cents":1000,"sub_total_vat_included_amount_cents":1000,"customer":{"lago_id":"c8bb805a-590c-444f-ae14-66589764f273","external_id":"gid://dummy/Pay::Customer/772847388","name":"Lago
214
+ User","sequential_id":4,"slug":"AMO-FBCD-004","created_at":"2023-09-18T06:42:57Z","updated_at":"2023-09-18T06:43:11Z","country":null,"address_line1":null,"address_line2":null,"state":null,"zipcode":null,"email":"test@example.com","city":null,"url":null,"phone":null,"logo_url":null,"legal_name":null,"legal_number":null,"currency":"USD","tax_identification_number":null,"timezone":null,"applicable_timezone":"UTC","net_payment_term":null,"external_salesforce_id":null,"billing_configuration":{"invoice_grace_period":null,"payment_provider":null,"vat_rate":null,"document_locale":null},"metadata":[]},"subscriptions":[],"fees":[{"lago_id":"1c540661-8152-400f-866a-5f95b6156771","lago_group_id":null,"lago_invoice_id":"4f388916-90d4-43a1-8b36-c4fb93cf58dc","lago_true_up_fee_id":null,"lago_true_up_parent_fee_id":null,"item":{"type":"add_on","code":"pay_default_addon","name":"Default
215
+ Charge","lago_item_id":"690e70c2-f101-4539-bda7-aefe4b1d068e","item_type":"AddOn"},"pay_in_advance":false,"invoiceable":true,"amount_cents":1000,"amount_currency":"USD","taxes_amount_cents":0,"taxes_rate":0.0,"total_amount_cents":1000,"total_amount_currency":"USD","units":"1.0","description":null,"unit_amount_cents":1000,"events_count":null,"payment_status":"pending","created_at":"2023-09-19T02:11:10Z","succeeded_at":null,"failed_at":null,"refunded_at":null,"vat_amount_cents":0,"vat_amount_currency":"USD"}],"credits":[],"metadata":[],"applied_taxes":[]}}'
216
+ recorded_at: Tue, 19 Sep 2023 02:11:10 GMT
217
+ - request:
218
+ method: put
219
+ uri: http://localhost:3000/api/v1/invoices/4f388916-90d4-43a1-8b36-c4fb93cf58dc
220
+ body:
221
+ encoding: UTF-8
222
+ string: '{"invoice":{"payment_status":"succeeded","net_payment_term":null}}'
223
+ headers:
224
+ Authorization:
225
+ - Bearer 155ed033-8716-4587-9ac6-fed8ddae3317
226
+ Content-Type:
227
+ - application/json
228
+ User-Agent:
229
+ - Lago Ruby v0.44.0-beta
230
+ Accept-Encoding:
231
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
232
+ Accept:
233
+ - "*/*"
234
+ response:
235
+ status:
236
+ code: 200
237
+ message: OK
238
+ headers:
239
+ X-Frame-Options:
240
+ - SAMEORIGIN
241
+ X-Xss-Protection:
242
+ - '0'
243
+ X-Content-Type-Options:
244
+ - nosniff
245
+ X-Download-Options:
246
+ - noopen
247
+ X-Permitted-Cross-Domain-Policies:
248
+ - none
249
+ Referrer-Policy:
250
+ - strict-origin-when-cross-origin
251
+ Content-Type:
252
+ - application/json; charset=utf-8
253
+ Etag:
254
+ - W/"7ebd9ce3f91cba606c3affbf2b7ee76b"
255
+ Cache-Control:
256
+ - max-age=0, private, must-revalidate
257
+ X-Request-Id:
258
+ - 0b42b9b0-ed61-4aba-8f3b-b49a52ebee95
259
+ X-Runtime:
260
+ - '0.032840'
261
+ Vary:
262
+ - Origin
263
+ Transfer-Encoding:
264
+ - chunked
265
+ body:
266
+ encoding: UTF-8
267
+ string: '{"invoice":{"lago_id":"4f388916-90d4-43a1-8b36-c4fb93cf58dc","sequential_id":12,"number":"AMO-FBCD-004-012","issuing_date":"2023-09-19","payment_due_date":"2023-09-19","net_payment_term":0,"invoice_type":"one_off","status":"finalized","payment_status":"succeeded","currency":"USD","fees_amount_cents":1000,"taxes_amount_cents":0,"coupons_amount_cents":0,"credit_notes_amount_cents":0,"sub_total_excluding_taxes_amount_cents":1000,"sub_total_including_taxes_amount_cents":1000,"total_amount_cents":1000,"prepaid_credit_amount_cents":0,"file_url":null,"version_number":3,"legacy":false,"amount_currency":"USD","vat_amount_currency":"USD","credit_amount_currency":"USD","total_amount_currency":"USD","amount_cents":1000,"credit_amount_cents":0,"vat_amount_cents":0,"sub_total_vat_excluded_amount_cents":1000,"sub_total_vat_included_amount_cents":1000,"customer":{"lago_id":"c8bb805a-590c-444f-ae14-66589764f273","external_id":"gid://dummy/Pay::Customer/772847388","name":"Lago
268
+ User","sequential_id":4,"slug":"AMO-FBCD-004","created_at":"2023-09-18T06:42:57Z","updated_at":"2023-09-18T06:43:11Z","country":null,"address_line1":null,"address_line2":null,"state":null,"zipcode":null,"email":"test@example.com","city":null,"url":null,"phone":null,"logo_url":null,"legal_name":null,"legal_number":null,"currency":"USD","tax_identification_number":null,"timezone":null,"applicable_timezone":"UTC","net_payment_term":null,"external_salesforce_id":null,"billing_configuration":{"invoice_grace_period":null,"payment_provider":null,"vat_rate":null,"document_locale":null},"metadata":[]},"subscriptions":[],"fees":[{"lago_id":"1c540661-8152-400f-866a-5f95b6156771","lago_group_id":null,"lago_invoice_id":"4f388916-90d4-43a1-8b36-c4fb93cf58dc","lago_true_up_fee_id":null,"lago_true_up_parent_fee_id":null,"item":{"type":"add_on","code":"pay_default_addon","name":"Default
269
+ Charge","lago_item_id":"690e70c2-f101-4539-bda7-aefe4b1d068e","item_type":"AddOn"},"pay_in_advance":false,"invoiceable":true,"amount_cents":1000,"amount_currency":"USD","taxes_amount_cents":0,"taxes_rate":0.0,"total_amount_cents":1000,"total_amount_currency":"USD","units":"1.0","description":null,"unit_amount_cents":1000,"events_count":null,"payment_status":"pending","created_at":"2023-09-19T02:11:10Z","succeeded_at":null,"failed_at":null,"refunded_at":null,"vat_amount_cents":0,"vat_amount_currency":"USD"}],"credits":[],"metadata":[],"applied_taxes":[]}}'
270
+ recorded_at: Tue, 19 Sep 2023 02:11:10 GMT
271
+ - request:
272
+ method: get
273
+ uri: http://localhost:3000/api/v1/invoices/4f388916-90d4-43a1-8b36-c4fb93cf58dc
274
+ body:
275
+ encoding: UTF-8
276
+ string: ''
277
+ headers:
278
+ Authorization:
279
+ - Bearer 155ed033-8716-4587-9ac6-fed8ddae3317
280
+ Content-Type:
281
+ - application/json
282
+ User-Agent:
283
+ - Lago Ruby v0.44.0-beta
284
+ Accept-Encoding:
285
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
286
+ Accept:
287
+ - "*/*"
288
+ response:
289
+ status:
290
+ code: 200
291
+ message: OK
292
+ headers:
293
+ X-Frame-Options:
294
+ - SAMEORIGIN
295
+ X-Xss-Protection:
296
+ - '0'
297
+ X-Content-Type-Options:
298
+ - nosniff
299
+ X-Download-Options:
300
+ - noopen
301
+ X-Permitted-Cross-Domain-Policies:
302
+ - none
303
+ Referrer-Policy:
304
+ - strict-origin-when-cross-origin
305
+ Content-Type:
306
+ - application/json; charset=utf-8
307
+ Etag:
308
+ - W/"80decdce22a933240c22e7d6518bf566"
309
+ Cache-Control:
310
+ - max-age=0, private, must-revalidate
311
+ X-Request-Id:
312
+ - 88a409d4-78f7-4234-8404-702b05feadaa
313
+ X-Runtime:
314
+ - 0.017269
315
+ Vary:
316
+ - Origin
317
+ Transfer-Encoding:
318
+ - chunked
319
+ body:
320
+ encoding: UTF-8
321
+ string: '{"invoice":{"lago_id":"4f388916-90d4-43a1-8b36-c4fb93cf58dc","sequential_id":12,"number":"AMO-FBCD-004-012","issuing_date":"2023-09-19","payment_due_date":"2023-09-19","net_payment_term":0,"invoice_type":"one_off","status":"finalized","payment_status":"succeeded","currency":"USD","fees_amount_cents":1000,"taxes_amount_cents":0,"coupons_amount_cents":0,"credit_notes_amount_cents":0,"sub_total_excluding_taxes_amount_cents":1000,"sub_total_including_taxes_amount_cents":1000,"total_amount_cents":1000,"prepaid_credit_amount_cents":0,"file_url":null,"version_number":3,"legacy":false,"amount_currency":"USD","vat_amount_currency":"USD","credit_amount_currency":"USD","total_amount_currency":"USD","amount_cents":1000,"credit_amount_cents":0,"vat_amount_cents":0,"sub_total_vat_excluded_amount_cents":1000,"sub_total_vat_included_amount_cents":1000,"customer":{"lago_id":"c8bb805a-590c-444f-ae14-66589764f273","external_id":"gid://dummy/Pay::Customer/772847388","name":"Lago
322
+ User","sequential_id":4,"slug":"AMO-FBCD-004","created_at":"2023-09-18T06:42:57Z","updated_at":"2023-09-18T06:43:11Z","country":null,"address_line1":null,"address_line2":null,"state":null,"zipcode":null,"email":"test@example.com","city":null,"url":null,"phone":null,"logo_url":null,"legal_name":null,"legal_number":null,"currency":"USD","tax_identification_number":null,"timezone":null,"applicable_timezone":"UTC","net_payment_term":null,"external_salesforce_id":null,"billing_configuration":{"invoice_grace_period":null,"payment_provider":null,"vat_rate":null,"document_locale":null},"metadata":[]},"subscriptions":[],"fees":[{"lago_id":"1c540661-8152-400f-866a-5f95b6156771","lago_group_id":null,"lago_invoice_id":"4f388916-90d4-43a1-8b36-c4fb93cf58dc","lago_true_up_fee_id":null,"lago_true_up_parent_fee_id":null,"item":{"type":"add_on","code":"pay_default_addon","name":"Default
323
+ Charge","lago_item_id":"690e70c2-f101-4539-bda7-aefe4b1d068e","item_type":"AddOn"},"pay_in_advance":false,"invoiceable":true,"amount_cents":1000,"amount_currency":"USD","taxes_amount_cents":0,"taxes_rate":0.0,"total_amount_cents":1000,"total_amount_currency":"USD","units":"1.0","description":null,"unit_amount_cents":1000,"events_count":null,"payment_status":"succeeded","created_at":"2023-09-19T02:11:10Z","succeeded_at":null,"failed_at":null,"refunded_at":null,"vat_amount_cents":0,"vat_amount_currency":"USD"}],"credits":[],"metadata":[],"applied_taxes":[]}}'
324
+ recorded_at: Tue, 19 Sep 2023 02:11:10 GMT
325
+ - request:
326
+ method: post
327
+ uri: http://localhost:3000/api/v1/credit_notes
328
+ body:
329
+ encoding: UTF-8
330
+ string: '{"credit_note":{"invoice_id":"4f388916-90d4-43a1-8b36-c4fb93cf58dc","refund_amount_cents":1000,"items":[{"fee_id":"1c540661-8152-400f-866a-5f95b6156771","amount_cents":1000}]}}'
331
+ headers:
332
+ Authorization:
333
+ - Bearer 155ed033-8716-4587-9ac6-fed8ddae3317
334
+ Content-Type:
335
+ - application/json
336
+ User-Agent:
337
+ - Lago Ruby v0.44.0-beta
338
+ Accept-Encoding:
339
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
340
+ Accept:
341
+ - "*/*"
342
+ response:
343
+ status:
344
+ code: 200
345
+ message: OK
346
+ headers:
347
+ X-Frame-Options:
348
+ - SAMEORIGIN
349
+ X-Xss-Protection:
350
+ - '0'
351
+ X-Content-Type-Options:
352
+ - nosniff
353
+ X-Download-Options:
354
+ - noopen
355
+ X-Permitted-Cross-Domain-Policies:
356
+ - none
357
+ Referrer-Policy:
358
+ - strict-origin-when-cross-origin
359
+ Content-Type:
360
+ - application/json; charset=utf-8
361
+ Etag:
362
+ - W/"f084da341b2503ee4acbf2c44905ebe4"
363
+ Cache-Control:
364
+ - max-age=0, private, must-revalidate
365
+ X-Request-Id:
366
+ - 9543f4a2-eadc-4b84-b4b7-18f57f50ea3c
367
+ X-Runtime:
368
+ - 0.071534
369
+ Vary:
370
+ - Origin
371
+ Transfer-Encoding:
372
+ - chunked
373
+ body:
374
+ encoding: UTF-8
375
+ string: '{"credit_note":{"lago_id":"87da2463-d694-46d9-b72e-3571db3ceb7f","sequential_id":1,"number":"AMO-FBCD-004-012-CN001","lago_invoice_id":"4f388916-90d4-43a1-8b36-c4fb93cf58dc","invoice_number":"AMO-FBCD-004-012","issuing_date":"2023-09-19","credit_status":"available","refund_status":"pending","reason":"other","description":null,"currency":"USD","total_amount_cents":1000,"taxes_amount_cents":0,"sub_total_excluding_taxes_amount_cents":1000,"balance_amount_cents":0,"credit_amount_cents":0,"refund_amount_cents":1000,"coupons_adjustment_amount_cents":0,"taxes_rate":0.0,"created_at":"2023-09-19T02:11:10Z","updated_at":"2023-09-19T02:11:10Z","file_url":null,"total_amount_currency":"USD","vat_amount_cents":0,"vat_amount_currency":"USD","sub_total_vat_excluded_amount_cents":1000,"sub_total_vat_excluded_amount_currency":"USD","balance_amount_currency":"USD","credit_amount_currency":"USD","refund_amount_currency":"USD","items":[{"lago_id":"ea0416fa-266c-43ca-a37d-2cf6f5b6b815","amount_cents":1000,"amount_currency":"USD","fee":{"lago_id":"1c540661-8152-400f-866a-5f95b6156771","lago_group_id":null,"lago_invoice_id":"4f388916-90d4-43a1-8b36-c4fb93cf58dc","lago_true_up_fee_id":null,"lago_true_up_parent_fee_id":null,"item":{"type":"add_on","code":"pay_default_addon","name":"Default
376
+ Charge","lago_item_id":"690e70c2-f101-4539-bda7-aefe4b1d068e","item_type":"AddOn"},"pay_in_advance":false,"invoiceable":true,"amount_cents":1000,"amount_currency":"USD","taxes_amount_cents":0,"taxes_rate":0.0,"total_amount_cents":1000,"total_amount_currency":"USD","units":"1.0","description":null,"unit_amount_cents":1000,"events_count":null,"payment_status":"succeeded","created_at":"2023-09-19T02:11:10Z","succeeded_at":null,"failed_at":null,"refunded_at":null,"vat_amount_cents":0,"vat_amount_currency":"USD"}}],"applied_taxes":[]}}'
377
+ recorded_at: Tue, 19 Sep 2023 02:11:10 GMT
378
+ recorded_with: VCR 6.2.0