File Coverage

lib/Net/API/Stripe/Billing/Invoice/StatusTransition.pm
Criterion Covered Total %
statement 19 23 82.6
branch n/a
condition n/a
subroutine 7 11 63.6
pod 4 4 100.0
total 30 38 78.9


line stmt bran cond sub pod time code
1             ##----------------------------------------------------------------------------
2             ## Stripe API - ~/lib/Net/API/Stripe/Billing/Invoice/StatusTransition.pm
3             ## Version v0.100.0
4             ## Copyright(c) 2019 DEGUEST Pte. Ltd.
5             ## Author: Jacques Deguest <jack@deguest.jp>
6             ## Created 2019/11/02
7             ## Modified 2020/05/15
8             ##
9             ##----------------------------------------------------------------------------
10             package Net::API::Stripe::Billing::Invoice::StatusTransition;
11             BEGIN
12             {
13 2     2   20938575 use strict;
  2         13  
  2         64  
14 2     2   12 use warnings;
  2         2  
  2         70  
15 2     2   11 use parent qw( Net::API::Stripe::Generic );
  2         3  
  2         83  
16 2     2   151 use vars qw( $VERSION );
  2         4  
  2         121  
17 2     2   39 our( $VERSION ) = 'v0.100.0';
18             };
19              
20 2     2   11 use strict;
  2         4  
  2         36  
21 2     2   9 use warnings;
  2         4  
  2         239  
22              
23 0     0 1   sub finalized_at { return( shift->_set_get_datetime( 'finalized_at', @_ ) ); }
24              
25 0     0 1   sub marked_uncollectible_at { return( shift->_set_get_datetime( 'marked_uncollectible_at', @_ ) ); }
26              
27 0     0 1   sub paid_at { return( shift->_set_get_datetime( 'paid_at', @_ ) ); }
28              
29 0     0 1   sub voided_at { return( shift->_set_get_datetime( 'voided_at', @_ ) ); }
30              
31             1;
32              
33             __END__
34              
35             =encoding utf8
36              
37             =head1 NAME
38              
39             Net::API::Stripe::Billing::Invoice::StatusTransition - An Invoice Status Transition Object
40              
41             =head1 SYNOPSIS
42              
43             my $status_trans = $invoice->status_transitions({
44             finalized_at => '2020-03-17',
45             # marked_uncollectible_at => '2020-04-12',
46             paid_at => '2020-03-31',
47             # voided_at => '2020-04-15',
48             });
49              
50             =head1 VERSION
51              
52             v0.100.0
53              
54             =head1 DESCRIPTION
55              
56             This is instantiated by method B<status_transitions> in L<Net::API::Stripe::Billing::Invoice>
57              
58             =head1 CONSTRUCTOR
59              
60             =head2 new( %ARG )
61              
62             Creates a new L<Net::API::Stripe::Billing::Invoice::StatusTransition> object.
63             It may also take an hash like arguments, that also are method of the same name.
64              
65             =head1 METHODS
66              
67             =head2 finalized_at timestamp
68              
69             The time that the invoice draft was finalized.
70              
71             =head2 marked_uncollectible_at timestamp
72              
73             The time that the invoice was marked uncollectible.
74              
75             =head2 paid_at timestamp
76              
77             The time that the invoice was paid.
78              
79             =head2 voided_at timestamp
80              
81             The time that the invoice was voided.
82              
83             =head1 API SAMPLE
84              
85             {
86             "id": "in_fake123456789",
87             "object": "invoice",
88             "account_country": "JP",
89             "account_name": "Provider, Inc",
90             "amount_due": 8000,
91             "amount_paid": 8000,
92             "amount_remaining": 0,
93             "application_fee_amount": null,
94             "attempt_count": 1,
95             "attempted": true,
96             "auto_advance": false,
97             "billing": "charge_automatically",
98             "billing_reason": "subscription",
99             "charge": "ch_fake123456789",
100             "collection_method": "charge_automatically",
101             "created": 1507273919,
102             "currency": "jpy",
103             "custom_fields": null,
104             "customer": "cus_fake123456789",
105             "customer_address": null,
106             "customer_email": "john.doe@example.com",
107             "customer_name": null,
108             "customer_phone": null,
109             "customer_shipping": null,
110             "customer_tax_exempt": "none",
111             "customer_tax_ids": [],
112             "default_payment_method": null,
113             "default_source": null,
114             "default_tax_rates": [],
115             "description": null,
116             "discount": null,
117             "due_date": null,
118             "ending_balance": 0,
119             "footer": null,
120             "hosted_invoice_url": "https://pay.stripe.com/invoice/invst_fake123456789",
121             "invoice_pdf": "https://pay.stripe.com/invoice/invst_fake123456789/pdf",
122             "lines": {
123             "data": [
124             {
125             "id": "sli_fake123456789",
126             "object": "line_item",
127             "amount": 8000,
128             "currency": "jpy",
129             "description": "1 × Provider, Inc professional monthly membership (at ¥8,000 / month)",
130             "discountable": true,
131             "livemode": false,
132             "metadata": {},
133             "period": {
134             "end": 1559441759,
135             "start": 1556763359
136             },
137             "plan": {
138             "id": "professional-monthly-jpy",
139             "object": "plan",
140             "active": true,
141             "aggregate_usage": null,
142             "amount": 8000,
143             "amount_decimal": "8000",
144             "billing_scheme": "per_unit",
145             "created": 1541833564,
146             "currency": "jpy",
147             "interval": "month",
148             "interval_count": 1,
149             "livemode": false,
150             "metadata": {},
151             "nickname": null,
152             "product": "prod_fake123456789",
153             "tiers": null,
154             "tiers_mode": null,
155             "transform_usage": null,
156             "trial_period_days": null,
157             "usage_type": "licensed"
158             },
159             "proration": false,
160             "quantity": 1,
161             "subscription": "sub_fake123456789",
162             "subscription_item": "si_fake123456789",
163             "tax_amounts": [],
164             "tax_rates": [],
165             "type": "subscription"
166             }
167             ],
168             "has_more": false,
169             "object": "list",
170             "url": "/v1/invoices/in_fake123456789/lines"
171             },
172             "livemode": false,
173             "metadata": {},
174             "next_payment_attempt": null,
175             "number": "53DB91F-0001",
176             "paid": true,
177             "payment_intent": null,
178             "period_end": 1507273919,
179             "period_start": 1507273919,
180             "post_payment_credit_notes_amount": 0,
181             "pre_payment_credit_notes_amount": 0,
182             "receipt_number": "2066-1929",
183             "starting_balance": 0,
184             "statement_descriptor": null,
185             "status": "paid",
186             "status_transitions": {
187             "finalized_at": 1507273919,
188             "marked_uncollectible_at": null,
189             "paid_at": 1507273919,
190             "voided_at": null
191             },
192             "subscription": "sub_fake123456789",
193             "subtotal": 8000,
194             "tax": null,
195             "tax_percent": null,
196             "total": 8000,
197             "total_tax_amounts": [],
198             "webhooks_delivered_at": 1507273920
199             }
200              
201             =head1 HISTORY
202              
203             =head2 v0.1
204              
205             Initial version
206              
207             =head1 AUTHOR
208              
209             Jacques Deguest E<lt>F<jack@deguest.jp>E<gt>
210              
211             =head1 SEE ALSO
212              
213             Stripe API documentation:
214              
215             L<https://stripe.com/docs/api/invoices/object>
216              
217             =head1 COPYRIGHT & LICENSE
218              
219             Copyright (c) 2019-2020 DEGUEST Pte. Ltd.
220              
221             You can use, copy, modify and redistribute this package and associated
222             files under the same terms as Perl itself.
223              
224             =cut