Class: Einvoicing::Connect::FR::Pennylane::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/einvoicing/connect/fr/pennylane/client.rb

Constant Summary collapse

BASE_URL =
"https://app.pennylane.com/api/external/v2"
SANDBOX_URL =
"https://sandbox.pennylane.com/api/external/v2"
OAUTH_TOKEN_PATH =
"/oauth/token"
OAUTH_BASE_URL =
"https://app.pennylane.com"
OAUTH_SANDBOX_URL =
"https://sandbox.pennylane.com"

Instance Method Summary collapse

Constructor Details

#initialize(credentials:, sandbox: false) ⇒ Client

Returns a new instance of Client.



20
21
22
23
24
# File 'lib/einvoicing/connect/fr/pennylane/client.rb', line 20

def initialize(credentials:, sandbox: false)
  @credentials = credentials
  @base_url    = sandbox ? SANDBOX_URL : BASE_URL
  @oauth_base  = sandbox ? OAUTH_SANDBOX_URL : OAUTH_BASE_URL
end

Instance Method Details

#invoice_status(id) ⇒ Object

Get invoice status by Pennylane invoice ID.



35
36
37
# File 'lib/einvoicing/connect/fr/pennylane/client.rb', line 35

def invoice_status(id)
  get("/customer_invoices/#{id}")
end

#submit_einvoice(facturx_pdf, filename: "factur-x.pdf", invoice_options: nil) ⇒ Object

Submit a Factur-X PDF binary to the e-invoice import endpoint. invoice_options: optional Hash pre-filling customer/line data.



28
29
30
31
32
# File 'lib/einvoicing/connect/fr/pennylane/client.rb', line 28

def submit_einvoice(facturx_pdf, filename: "factur-x.pdf", invoice_options: nil)
  post_multipart("/customer_invoices/e_invoices/imports",
                 file: facturx_pdf, filename: filename,
                 invoice_options: invoice_options)
end