github.com/plutov/paypal/v4@v4.7.1/invoicing.go (about) 1 package paypal 2 3 import ( 4 "context" 5 "fmt" 6 ) 7 8 // GenerateInvoiceNumber: generates the next invoice number that is available to the merchant. 9 // Endpoint: POST /v2/invoicing/generate-next-invoice-number 10 func (c *Client) GenerateInvoiceNumber(ctx context.Context) (*InvoiceNumber, error) { 11 12 req, err := c.NewRequest(ctx, "POST", fmt.Sprintf("%s%s", c.APIBase, "/v2/invoicing/generate-next-invoice-number"), nil) 13 nextInvoiceNumber := &InvoiceNumber{} 14 if err != nil { 15 return nextInvoiceNumber, err 16 } 17 18 if err = c.SendWithAuth(req, nextInvoiceNumber); err != nil { 19 return nextInvoiceNumber, err 20 } 21 22 return nextInvoiceNumber, nil 23 } 24 25 // GetInvoiceDetails: show invoice details for a particular invoice by ID. 26 // Endpoint: GET /v2/invoicing/invoices/{invoice_id} 27 func (c *Client) GetInvoiceDetails(ctx context.Context, invoiceID string) (*Invoice, error) { 28 req, err := c.NewRequest(ctx, "GET", fmt.Sprintf("%s%s%s", c.APIBase, "/v2/invoicing/invoices/", invoiceID), nil) 29 invoice := &Invoice{} 30 if err != nil { 31 return invoice, err 32 } 33 34 if err = c.SendWithAuth(req, invoice); err != nil { 35 return invoice, err 36 } 37 return invoice, nil 38 }