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  }