Class: Orb::Models::Invoice

Inherits:
Internal::Type::BaseModel show all
Defined in:
lib/orb/models/invoice.rb

Defined Under Namespace

Modules: InvoiceSource, Status Classes: AutoCollection, CreditNote, CustomerBalanceTransaction, LineItem, PaymentAttempt

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Internal::Type::BaseModel

==, #==, #[], coerce, #deconstruct_keys, #deep_to_h, dump, fields, hash, #hash, inherited, inspect, #inspect, known_fields, optional, recursively_to_h, required, #to_h, #to_json, #to_s, to_sorbet_type, #to_yaml

Methods included from Internal::Type::Converter

#coerce, coerce, #dump, dump, inspect, #inspect, meta_info, new_coerce_state, type_info

Methods included from Internal::Util::SorbetRuntimeSupport

#const_missing, #define_sorbet_constant!, #sorbet_constant_defined?, #to_sorbet_type, to_sorbet_type

Constructor Details

#initialize(id: , credit_note_number: , memo: , reason: , total: , type: , voided_at: ) ⇒ Object

Some parameter documentations has been truncated, see CreditNote for more details.

Parameters:

  • id (String) (defaults to: )
  • credit_note_number (String) (defaults to: )
  • memo (String, nil) (defaults to: )

    An optional memo supplied on the credit note.

  • reason (String) (defaults to: )
  • total (String) (defaults to: )
  • type (String) (defaults to: )
  • voided_at (Time, nil) (defaults to: )

    If the credit note has a status of ‘void`, this gives a timestamp when the credi



# File 'lib/orb/models/invoice.rb', line 407

Instance Attribute Details

#amount_dueString

This is the final amount required to be charged to the customer and reflects the application of the customer balance to the ‘total` of the invoice.

Returns:

  • (String)


16
# File 'lib/orb/models/invoice.rb', line 16

required :amount_due, String

#auto_collectionOrb::Models::Invoice::AutoCollection



21
# File 'lib/orb/models/invoice.rb', line 21

required :auto_collection, -> { Orb::Invoice::AutoCollection }

#billing_addressOrb::Models::Address?

Returns:



26
# File 'lib/orb/models/invoice.rb', line 26

required :billing_address, -> { Orb::Address }, nil?: true

#created_atTime

The creation time of the resource in Orb.

Returns:

  • (Time)


32
# File 'lib/orb/models/invoice.rb', line 32

required :created_at, Time

#credit_notesArray<Orb::Models::Invoice::CreditNote>

A list of credit notes associated with the invoice



38
# File 'lib/orb/models/invoice.rb', line 38

required :credit_notes, -> { Orb::Internal::Type::ArrayOf[Orb::Invoice::CreditNote] }

#currencyString

An ISO 4217 currency string or ‘credits`

Returns:

  • (String)


44
# File 'lib/orb/models/invoice.rb', line 44

required :currency, String

#customerOrb::Models::CustomerMinified



49
# File 'lib/orb/models/invoice.rb', line 49

required :customer, -> { Orb::CustomerMinified }

#customer_balance_transactionsArray<Orb::Models::Invoice::CustomerBalanceTransaction>



54
55
# File 'lib/orb/models/invoice.rb', line 54

required :customer_balance_transactions,
-> { Orb::Internal::Type::ArrayOf[Orb::Invoice::CustomerBalanceTransaction] }

#customer_tax_idOrb::Models::CustomerTaxID?

Tax IDs are commonly required to be displayed on customer invoices, which are added to the headers of invoices.

### Supported Tax ID Countries and Types

| Country | Type | Description | | ———————- | ———— | ——————————————————————————————————- | | Albania | ‘al_tin` | Albania Tax Identification Number | | Andorra | `ad_nrt` | Andorran NRT Number | | Angola | `ao_tin` | Angola Tax Identification Number | | Argentina | `ar_cuit` | Argentinian Tax ID Number | | Armenia | `am_tin` | Armenia Tax Identification Number | | Aruba | `aw_tin` | Aruba Tax Identification Number | | Australia | `au_abn` | Australian Business Number (AU ABN) | | Australia | `au_arn` | Australian Taxation Office Reference Number | | Austria | `eu_vat` | European VAT Number | | Azerbaijan | `az_tin` | Azerbaijan Tax Identification Number | | Bahamas | `bs_tin` | Bahamas Tax Identification Number | | Bahrain | `bh_vat` | Bahraini VAT Number | | Bangladesh | `bd_bin` | Bangladesh Business Identification Number | | Barbados | `bb_tin` | Barbados Tax Identification Number | | Belarus | `by_tin` | Belarus TIN Number | | Belgium | `eu_vat` | European VAT Number | | Benin | `bj_ifu` | Benin Tax Identification Number (Identifiant Fiscal Unique) | | Bolivia | `bo_tin` | Bolivian Tax ID | | Bosnia and Herzegovina | `ba_tin` | Bosnia and Herzegovina Tax Identification Number | | Brazil | `br_cnpj` | Brazilian CNPJ Number | | Brazil | `br_cpf` | Brazilian CPF Number | | Bulgaria | `bg_uic` | Bulgaria Unified Identification Code | | Bulgaria | `eu_vat` | European VAT Number | | Burkina Faso | `bf_ifu` | Burkina Faso Tax Identification Number (Numéro d’Identifiant Fiscal Unique) | | Cambodia | ‘kh_tin` | Cambodia Tax Identification Number | | Cameroon | `cm_niu` | Cameroon Tax Identification Number (Numéro d’Identifiant fiscal Unique) | | Canada | ‘ca_bn` | Canadian BN | | Canada | `ca_gst_hst` | Canadian GST/HST Number | | Canada | `ca_pst_bc` | Canadian PST Number (British Columbia) | | Canada | `ca_pst_mb` | Canadian PST Number (Manitoba) | | Canada | `ca_pst_sk` | Canadian PST Number (Saskatchewan) | | Canada | `ca_qst` | Canadian QST Number (Québec) | | Cape Verde | `cv_nif` | Cape Verde Tax Identification Number (Número de Identificação Fiscal) | | Chile | `cl_tin` | Chilean TIN | | China | `cn_tin` | Chinese Tax ID | | Colombia | `co_nit` | Colombian NIT Number | | Congo-Kinshasa | `cd_nif` | Congo (DR) Tax Identification Number (Número de Identificação Fiscal) | | Costa Rica | `cr_tin` | Costa Rican Tax ID | | Croatia | `eu_vat` | European VAT Number | | Croatia | `hr_oib` | Croatian Personal Identification Number (OIB) | | Cyprus | `eu_vat` | European VAT Number | | Czech Republic | `eu_vat` | European VAT Number | | Denmark | `eu_vat` | European VAT Number | | Dominican Republic | `do_rcn` | Dominican RCN Number | | Ecuador | `ec_ruc` | Ecuadorian RUC Number | | Egypt | `eg_tin` | Egyptian Tax Identification Number | | El Salvador | `sv_nit` | El Salvadorian NIT Number | | Estonia | `eu_vat` | European VAT Number | | Ethiopia | `et_tin` | Ethiopia Tax Identification Number | | European Union | `eu_oss_vat` | European One Stop Shop VAT Number for non-Union scheme | | Finland | `eu_vat` | European VAT Number | | France | `eu_vat` | European VAT Number | | Georgia | `ge_vat` | Georgian VAT | | Germany | `de_stn` | German Tax Number (Steuernummer) | | Germany | `eu_vat` | European VAT Number | | Greece | `eu_vat` | European VAT Number | | Guinea | `gn_nif` | Guinea Tax Identification Number (Número de Identificação Fiscal) | | Hong Kong | `hk_br` | Hong Kong BR Number | | Hungary | `eu_vat` | European VAT Number | | Hungary | `hu_tin` | Hungary Tax Number (adószám) | | Iceland | `is_vat` | Icelandic VAT | | India | `in_gst` | Indian GST Number | | Indonesia | `id_npwp` | Indonesian NPWP Number | | Ireland | `eu_vat` | European VAT Number | | Israel | `il_vat` | Israel VAT | | Italy | `eu_vat` | European VAT Number | | Japan | `jp_cn` | Japanese Corporate Number (_Hōjin Bangō_) | | Japan | `jp_rn` | Japanese Registered Foreign Businesses’ Registration Number (_Tōroku Kokugai Jigyōsha no Tōroku Bangō_) | | Japan | ‘jp_trn` | Japanese Tax Registration Number (_Tōroku Bangō_) | | Kazakhstan | `kz_bin` | Kazakhstani Business Identification Number | | Kenya | `ke_pin` | Kenya Revenue Authority Personal Identification Number | | Kyrgyzstan | `kg_tin` | Kyrgyzstan Tax Identification Number | | Laos | `la_tin` | Laos Tax Identification Number | | Latvia | `eu_vat` | European VAT Number | | Liechtenstein | `li_uid` | Liechtensteinian UID Number | | Liechtenstein | `li_vat` | Liechtenstein VAT Number | | Lithuania | `eu_vat` | European VAT Number | | Luxembourg | `eu_vat` | European VAT Number | | Malaysia | `my_frp` | Malaysian FRP Number | | Malaysia | `my_itn` | Malaysian ITN | | Malaysia | `my_sst` | Malaysian SST Number | | Malta | `eu_vat` | European VAT Number | | Mauritania | `mr_nif` | Mauritania Tax Identification Number (Número de Identificação Fiscal) | | Mexico | `mx_rfc` | Mexican RFC Number | | Moldova | `md_vat` | Moldova VAT Number | | Montenegro | `me_pib` | Montenegro PIB Number | | Morocco | `ma_vat` | Morocco VAT Number | | Nepal | `np_pan` | Nepal PAN Number | | Netherlands | `eu_vat` | European VAT Number | | New Zealand | `nz_gst` | New Zealand GST Number | | Nigeria | `ng_tin` | Nigerian Tax Identification Number | | North Macedonia | `mk_vat` | North Macedonia VAT Number | | Northern Ireland | `eu_vat` | Northern Ireland VAT Number | | Norway | `no_vat` | Norwegian VAT Number | | Norway | `no_voec` | Norwegian VAT on e-commerce Number | | Oman | `om_vat` | Omani VAT Number | | Peru | `pe_ruc` | Peruvian RUC Number | | Philippines | `ph_tin` | Philippines Tax Identification Number | | Poland | `eu_vat` | European VAT Number | | Portugal | `eu_vat` | European VAT Number | | Romania | `eu_vat` | European VAT Number | | Romania | `ro_tin` | Romanian Tax ID Number | | Russia | `ru_inn` | Russian INN | | Russia | `ru_kpp` | Russian KPP | | Saudi Arabia | `sa_vat` | Saudi Arabia VAT | | Senegal | `sn_ninea` | Senegal NINEA Number | | Serbia | `rs_pib` | Serbian PIB Number | | Singapore | `sg_gst` | Singaporean GST | | Singapore | `sg_uen` | Singaporean UEN | | Slovakia | `eu_vat` | European VAT Number | | Slovenia | `eu_vat` | European VAT Number | | Slovenia | `si_tin` | Slovenia Tax Number (davčna številka) | | South Africa | `za_vat` | South African VAT Number | | South Korea | `kr_brn` | Korean BRN | | Spain | `es_cif` | Spanish NIF Number (previously Spanish CIF Number) | | Spain | `eu_vat` | European VAT Number | | Suriname | `sr_fin` | Suriname FIN Number | | Sweden | `eu_vat` | European VAT Number | | Switzerland | `ch_uid` | Switzerland UID Number | | Switzerland | `ch_vat` | Switzerland VAT Number | | Taiwan | `tw_vat` | Taiwanese VAT | | Tajikistan | `tj_tin` | Tajikistan Tax Identification Number | | Tanzania | `tz_vat` | Tanzania VAT Number | | Thailand | `th_vat` | Thai VAT | | Turkey | `tr_tin` | Turkish Tax Identification Number | | Uganda | `ug_tin` | Uganda Tax Identification Number | | Ukraine | `ua_vat` | Ukrainian VAT | | United Arab Emirates | `ae_trn` | United Arab Emirates TRN | | United Kingdom | `gb_vat` | United Kingdom VAT Number | | United States | `us_ein` | United States EIN | | Uruguay | `uy_ruc` | Uruguayan RUC Number | | Uzbekistan | `uz_tin` | Uzbekistan TIN Number | | Uzbekistan | `uz_vat` | Uzbekistan VAT Number | | Venezuela | `ve_rif` | Venezuelan RIF Number | | Vietnam | `vn_tin` | Vietnamese Tax ID Number | | Zambia | `zm_tin` | Zambia Tax Identification Number | | Zimbabwe | `zw_tin` | Zimbabwe Tax Identification Number |

Returns:



204
# File 'lib/orb/models/invoice.rb', line 204

required :customer_tax_id, -> { Orb::CustomerTaxID }, nil?: true

#discountObject

Deprecated.

This field is deprecated in favor of ‘discounts`. If a `discounts` list is provided, the first discount in the list will be returned. If the list is empty, `None` will be returned.

Returns:

  • (Object)


214
# File 'lib/orb/models/invoice.rb', line 214

required :discount, Orb::Internal::Type::Unknown

#discountsArray<Orb::Models::PercentageDiscount, Orb::Models::AmountDiscount, Orb::Models::TrialDiscount>



219
# File 'lib/orb/models/invoice.rb', line 219

required :discounts, -> { Orb::Internal::Type::ArrayOf[union: Orb::InvoiceLevelDiscount] }

#due_dateTime?

When the invoice payment is due. The due date is null if the invoice is not yet finalized.

Returns:

  • (Time, nil)


226
# File 'lib/orb/models/invoice.rb', line 226

required :due_date, Time, nil?: true

#eligible_to_issue_atTime?

If the invoice has a status of ‘draft`, this will be the time that the invoice will be eligible to be issued, otherwise it will be `null`. If `auto-issue` is true, the invoice will automatically begin issuing at this time.

Returns:

  • (Time, nil)


234
# File 'lib/orb/models/invoice.rb', line 234

required :eligible_to_issue_at, Time, nil?: true

#hosted_invoice_urlString?

A URL for the customer-facing invoice portal. This URL expires 30 days after the invoice’s due date, or 60 days after being re-generated through the UI.

Returns:

  • (String, nil)


241
# File 'lib/orb/models/invoice.rb', line 241

required :hosted_invoice_url, String, nil?: true

#idString

Returns:

  • (String)


9
# File 'lib/orb/models/invoice.rb', line 9

required :id, String

#invoice_dateTime

The scheduled date of the invoice

Returns:

  • (Time)


247
# File 'lib/orb/models/invoice.rb', line 247

required :invoice_date, Time

#invoice_numberString

Automatically generated invoice number to help track and reconcile invoices. Invoice numbers have a prefix such as ‘RFOBWG`. These can be sequential per account or customer.

Returns:

  • (String)


255
# File 'lib/orb/models/invoice.rb', line 255

required :invoice_number, String

#invoice_pdfString?

The link to download the PDF representation of the ‘Invoice`.

Returns:

  • (String, nil)


261
# File 'lib/orb/models/invoice.rb', line 261

required :invoice_pdf, String, nil?: true

#invoice_sourceSymbol, Orb::Models::Invoice::InvoiceSource



266
# File 'lib/orb/models/invoice.rb', line 266

required :invoice_source, enum: -> { Orb::Invoice::InvoiceSource }

#issue_failed_atTime?

If the invoice failed to issue, this will be the last time it failed to issue (even if it is now in a different state.)

Returns:

  • (Time, nil)


273
# File 'lib/orb/models/invoice.rb', line 273

required :issue_failed_at, Time, nil?: true

#issued_atTime?

If the invoice has been issued, this will be the time it transitioned to ‘issued` (even if it is now in a different state.)

Returns:

  • (Time, nil)


280
# File 'lib/orb/models/invoice.rb', line 280

required :issued_at, Time, nil?: true

#line_itemsArray<Orb::Models::Invoice::LineItem>

The breakdown of prices in this invoice.

Returns:



286
# File 'lib/orb/models/invoice.rb', line 286

required :line_items, -> { Orb::Internal::Type::ArrayOf[Orb::Invoice::LineItem] }

#maximumOrb::Models::Maximum?

Returns:



291
# File 'lib/orb/models/invoice.rb', line 291

required :maximum, -> { Orb::Maximum }, nil?: true

#maximum_amountString?

Returns:

  • (String, nil)


296
# File 'lib/orb/models/invoice.rb', line 296

required :maximum_amount, String, nil?: true

#memoString?

Free-form text which is available on the invoice PDF and the Orb invoice portal.

Returns:

  • (String, nil)


302
# File 'lib/orb/models/invoice.rb', line 302

required :memo, String, nil?: true

#metadataHash{Symbol=>String}

User specified key-value pairs for the resource. If not present, this defaults to an empty dictionary. Individual keys can be removed by setting the value to ‘null`, and the entire metadata mapping can be cleared by setting `metadata` to `null`.

Returns:

  • (Hash{Symbol=>String})


311
# File 'lib/orb/models/invoice.rb', line 311

required :metadata, Orb::Internal::Type::HashOf[String]

#minimumOrb::Models::Minimum?

Returns:



316
# File 'lib/orb/models/invoice.rb', line 316

required :minimum, -> { Orb::Minimum }, nil?: true

#minimum_amountString?

Returns:

  • (String, nil)


321
# File 'lib/orb/models/invoice.rb', line 321

required :minimum_amount, String, nil?: true

If the invoice has a status of ‘paid`, this gives a timestamp when the invoice was paid.

Returns:

  • (Time, nil)


328
# File 'lib/orb/models/invoice.rb', line 328

required :paid_at, Time, nil?: true

#payment_attemptsArray<Orb::Models::Invoice::PaymentAttempt>

A list of payment attempts associated with the invoice



334
# File 'lib/orb/models/invoice.rb', line 334

required :payment_attempts, -> { Orb::Internal::Type::ArrayOf[Orb::Invoice::PaymentAttempt] }

#payment_failed_atTime?

If payment was attempted on this invoice but failed, this will be the time of the most recent attempt.

Returns:

  • (Time, nil)


341
# File 'lib/orb/models/invoice.rb', line 341

required :payment_failed_at, Time, nil?: true

#payment_started_atTime?

If payment was attempted on this invoice, this will be the start time of the most recent attempt. This field is especially useful for delayed-notification payment mechanisms (like bank transfers), where payment can take 3 days or more.

Returns:

  • (Time, nil)


349
# File 'lib/orb/models/invoice.rb', line 349

required :payment_started_at, Time, nil?: true

#scheduled_issue_atTime?

If the invoice is in draft, this timestamp will reflect when the invoice is scheduled to be issued.

Returns:

  • (Time, nil)


356
# File 'lib/orb/models/invoice.rb', line 356

required :scheduled_issue_at, Time, nil?: true

#shipping_addressOrb::Models::Address?

Returns:



361
# File 'lib/orb/models/invoice.rb', line 361

required :shipping_address, -> { Orb::Address }, nil?: true

#statusSymbol, Orb::Models::Invoice::Status

Returns:



366
# File 'lib/orb/models/invoice.rb', line 366

required :status, enum: -> { Orb::Invoice::Status }

#subscriptionOrb::Models::SubscriptionMinified?



371
# File 'lib/orb/models/invoice.rb', line 371

required :subscription, -> { Orb::SubscriptionMinified }, nil?: true

#subtotalString

The total before any discounts and minimums are applied.

Returns:

  • (String)


377
# File 'lib/orb/models/invoice.rb', line 377

required :subtotal, String

#sync_failed_atTime?

If the invoice failed to sync, this will be the last time an external invoicing provider sync was attempted. This field will always be ‘null` for invoices using Orb Invoicing.

Returns:

  • (Time, nil)


385
# File 'lib/orb/models/invoice.rb', line 385

required :sync_failed_at, Time, nil?: true

#totalString

The total after any minimums and discounts have been applied.

Returns:

  • (String)


391
# File 'lib/orb/models/invoice.rb', line 391

required :total, String

#voided_atTime?

If the invoice has a status of ‘void`, this gives a timestamp when the invoice was voided.

Returns:

  • (Time, nil)


398
# File 'lib/orb/models/invoice.rb', line 398

required :voided_at, Time, nil?: true

#will_auto_issueBoolean

This is true if the invoice will be automatically issued in the future, and false otherwise.

Returns:

  • (Boolean)


405
# File 'lib/orb/models/invoice.rb', line 405

required :will_auto_issue, Orb::Internal::Type::Boolean

Class Method Details

.valuesArray<Symbol>

Returns:

  • (Array<Symbol>)


# File 'lib/orb/models/invoice.rb', line 711

.variantsArray(Orb::Models::MatrixSubLineItem, Orb::Models::TierSubLineItem, Orb::Models::OtherSubLineItem)



# File 'lib/orb/models/invoice.rb', line 966