com.paypal.api.payments.Invoice Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of rest-api-sdk Show documentation
Show all versions of rest-api-sdk Show documentation
PayPal SDK for integrating with the REST APIs
// Generated by delombok at Wed Oct 12 18:15:55 CDT 2016
package com.paypal.api.payments;
import com.paypal.api.openidconnect.Tokeninfo;
import com.paypal.base.rest.*;
import java.util.List;
import java.util.Map;
public class Invoice extends PayPalResource {
/**
* The unique invoice resource identifier.
*/
private String id;
/**
* Unique number that appears on the invoice. If left blank will be auto-incremented from the last number. 25 characters max.
*/
private String number;
/**
* The template ID used for the invoice. Useful for copy functionality.
*/
private String templateId;
/**
* URI of the invoice resource.
*/
private String uri;
/**
* Status of the invoice.
*/
private String status;
/**
* Information about the merchant who is sending the invoice.
*/
private MerchantInfo merchantInfo;
/**
* The required invoice recipient email address and any optional billing information. One recipient is supported.
*/
private List billingInfo;
/**
* For invoices sent by email, one or more email addresses to which to send a Cc: copy of the notification. Supports only email addresses under participant.
*/
private List ccInfo;
/**
* The shipping information for entities to whom items are being shipped.
*/
private ShippingInfo shippingInfo;
/**
* The list of items to include in the invoice. Maximum value is 100 items per invoice.
*/
private List items;
/**
* The date when the invoice was enabled. The date format is *yyyy*-*MM*-*dd* *z* as defined in [Internet Date/Time Format](http://tools.ietf.org/html/rfc3339#section-5.6).
*/
private String invoiceDate;
/**
* Optional. The payment deadline for the invoice. Value is either `term_type` or `due_date` but not both.
*/
private PaymentTerm paymentTerm;
/**
* Reference data, such as PO number, to add to the invoice. Maximum length is 60 characters.
*/
private String reference;
/**
* The invoice level discount, as a percent or an amount value.
*/
private Cost discount;
/**
* The shipping cost, as a percent or an amount value.
*/
private ShippingCost shippingCost;
/**
* The custom amount to apply on an invoice. If you include a label, the amount cannot be empty.
*/
private CustomAmount custom;
/**
* Indicates whether the invoice allows a partial payment. If set to `false`, invoice must be paid in full. If set to `true`, the invoice allows partial payments. Default is `false`.
*/
private Boolean allowPartialPayment;
/**
* If `allow_partial_payment` is set to `true`, the minimum amount allowed for a partial payment.
*/
private Currency minimumAmountDue;
/**
* Indicates whether tax is calculated before or after a discount. If set to `false`, the tax is calculated before a discount. If set to `true`, the tax is calculated after a discount. Default is `false`.
*/
private Boolean taxCalculatedAfterDiscount;
/**
* Indicates whether the unit price includes tax. Default is `false`.
*/
private Boolean taxInclusive;
/**
* General terms of the invoice. 4000 characters max.
*/
private String terms;
/**
* Note to the payer. 4000 characters max.
*/
private String note;
/**
* A private bookkeeping memo for the merchant. Maximum length is 150 characters.
*/
private String merchantMemo;
/**
* Full URL of an external image to use as the logo. Maximum length is 4000 characters.
*/
private String logoUrl;
/**
* The total amount of the invoice.
*/
private Currency totalAmount;
/**
* List of payment details for the invoice.
*/
private List payments;
/**
* List of refund details for the invoice.
*/
private List refunds;
/**
* Audit information for the invoice.
*/
private Metadata metadata;
/**
* Any miscellaneous invoice data. Maximum length is 4000 characters.
*/
private String additionalData;
/**
* Gratuity to include with the invoice.
*/
private Currency gratuity;
/**
* Payment summary of the invoice including amount paid through PayPal and other sources.
*/
private PaymentSummary paidAmount;
/**
* Payment summary of the invoice including amount refunded through PayPal and other sources.
*/
private PaymentSummary refundedAmount;
/**
* List of files attached to the invoice.
*/
private List attachments;
/**
* HATEOS links representing all the actions over the invoice resource based on the current invoice status.
*/
private List links;
/**
* Default Constructor
*/
public Invoice() {
}
/**
* Parameterized Constructor
*/
public Invoice(MerchantInfo merchantInfo) {
this.merchantInfo = merchantInfo;
}
/**
* @deprecated Please use {@link #getPayments()} instead.
* @return {@link List} of {@link PaymentDetail}
*/
public List getPaymentDetails() {
return this.payments;
}
/**
* @deprecated Please use {@link #setPayments(List)} instead.
* @param details
* @return {@link Invoice}
*/
public Invoice setPaymentDetails(List details) {
this.payments = details;
return this;
}
/**
* @deprecated Please use {@link #getRefunds()} instead.
* @return {@link List} of {@link RefundDetail}
*/
public List getRefundDetails() {
return this.refunds;
}
/**
* @deprecated Please use {@link #setRefunds(List)} instead.
* @param details
* @return {@link Invoice}
*/
public Invoice setRefundDetails(List details) {
this.refunds = details;
return this;
}
/**
* Creates an invoice. Include invoice details including merchant information in the request.
* @deprecated Please use {@link #create(APIContext)} instead.
* @param accessToken
* Access Token used for the API call.
* @return Invoice
* @throws PayPalRESTException
*/
public Invoice create(String accessToken) throws PayPalRESTException {
APIContext apiContext = new APIContext(accessToken);
return create(apiContext);
}
/**
* Creates an invoice. Include invoice details including merchant information in the request.
* @param apiContext
* {@link APIContext} used for the API call.
* @return Invoice
* @throws PayPalRESTException
*/
public Invoice create(APIContext apiContext) throws PayPalRESTException {
String resourcePath = "v1/invoicing/invoices";
String payLoad = this.toJSON();
return configureAndExecute(apiContext, HttpMethod.POST, resourcePath, payLoad, Invoice.class);
}
/**
* Searches for an invoice or invoices. Include a search object that specifies your search criteria in the request.
* @deprecated Please use {@link #search(APIContext, Search)} instead.
* @param accessToken
* Access Token used for the API call.
* @param search
* Search
* @return Invoices
* @throws PayPalRESTException
*/
public Invoices search(String accessToken, Search search) throws PayPalRESTException {
APIContext apiContext = new APIContext(accessToken);
return search(apiContext, search);
}
/**
* Searches for an invoice or invoices. Include a search object that specifies your search criteria in the request.
* @param apiContext
* {@link APIContext} used for the API call.
* @param search
* Search
* @return Invoices
* @throws PayPalRESTException
*/
public Invoices search(APIContext apiContext, Search search) throws PayPalRESTException {
if (search == null) {
throw new IllegalArgumentException("search cannot be null");
}
Object[] parameters = new Object[] {this.getId()};
String pattern = "v1/invoicing/search";
String resourcePath = RESTUtil.formatURIPath(pattern, parameters);
String payLoad = search.toJSON();
return configureAndExecute(apiContext, HttpMethod.POST, resourcePath, payLoad, Invoices.class);
}
/**
* Sends an invoice, by ID, to a recipient. Optionally, set the `notify_merchant` query parameter to send the merchant an invoice update notification. By default, `notify_merchant` is `true`.
* @deprecated Please use {@link #send(APIContext)} instead.
* @param accessToken
* Access Token used for the API call.
* @throws PayPalRESTException
*/
public void send(String accessToken) throws PayPalRESTException {
APIContext apiContext = new APIContext(accessToken);
send(apiContext);
}
/**
* Sends an invoice, by ID, to a recipient. Optionally, set the `notify_merchant` query parameter to send the merchant an invoice update notification. By default, `notify_merchant` is `true`.
* @param apiContext
* {@link APIContext} used for the API call.
* @throws PayPalRESTException
*/
public void send(APIContext apiContext) throws PayPalRESTException {
if (this.getId() == null) {
throw new IllegalArgumentException("Id cannot be null");
}
Object[] parameters = new Object[] {this.getId()};
String pattern = "v1/invoicing/invoices/{0}/send";
String resourcePath = RESTUtil.formatURIPath(pattern, parameters);
String payLoad = "";
configureAndExecute(apiContext, HttpMethod.POST, resourcePath, payLoad, null);
}
/**
* Sends a reminder about a specific invoice, by ID, to a recipient. Include a notification object that defines the reminder subject and other details in the JSON request body.
* @deprecated Please use {@link #remind(APIContext, Notification)} instead.
* @param accessToken
* Access Token used for the API call.
* @param notification
* Notification
* @throws PayPalRESTException
*/
public void remind(String accessToken, Notification notification) throws PayPalRESTException {
APIContext apiContext = new APIContext(accessToken);
remind(apiContext, notification);
}
/**
* Sends a reminder about a specific invoice, by ID, to a recipient. Include a notification object that defines the reminder subject and other details in the JSON request body.
* @param apiContext
* {@link APIContext} used for the API call.
* @param notification
* Notification
* @throws PayPalRESTException
*/
public void remind(APIContext apiContext, Notification notification) throws PayPalRESTException {
if (this.getId() == null) {
throw new IllegalArgumentException("Id cannot be null");
}
if (notification == null) {
throw new IllegalArgumentException("notification cannot be null");
}
Object[] parameters = new Object[] {this.getId()};
String pattern = "v1/invoicing/invoices/{0}/remind";
String resourcePath = RESTUtil.formatURIPath(pattern, parameters);
String payLoad = notification.toJSON();
configureAndExecute(apiContext, HttpMethod.POST, resourcePath, payLoad, null);
}
/**
* Cancels an invoice, by ID.
* @deprecated Please use {@link #cancel(APIContext, CancelNotification)} instead.
* @param accessToken
* Access Token used for the API call.
* @param cancelNotification
* CancelNotification
* @throws PayPalRESTException
*/
public void cancel(String accessToken, CancelNotification cancelNotification) throws PayPalRESTException {
APIContext apiContext = new APIContext(accessToken);
cancel(apiContext, cancelNotification);
}
/**
* Cancels an invoice, by ID.
* @param apiContext
* {@link APIContext} used for the API call.
* @param cancelNotification
* CancelNotification
* @throws PayPalRESTException
*/
public void cancel(APIContext apiContext, CancelNotification cancelNotification) throws PayPalRESTException {
if (this.getId() == null) {
throw new IllegalArgumentException("Id cannot be null");
}
if (cancelNotification == null) {
throw new IllegalArgumentException("cancelNotification cannot be null");
}
Object[] parameters = new Object[] {this.getId()};
String pattern = "v1/invoicing/invoices/{0}/cancel";
String resourcePath = RESTUtil.formatURIPath(pattern, parameters);
String payLoad = cancelNotification.toJSON();
configureAndExecute(apiContext, HttpMethod.POST, resourcePath, payLoad, null);
}
/**
* Marks the status of a specified invoice, by ID, as paid. Include a payment detail object that defines the payment method and other details in the JSON request body.
* @deprecated Please use {@link #recordPayment(APIContext, PaymentDetail)} instead.
* @param accessToken
* Access Token used for the API call.
* @param paymentDetail
* PaymentDetail
* @throws PayPalRESTException
*/
public void recordPayment(String accessToken, PaymentDetail paymentDetail) throws PayPalRESTException {
APIContext apiContext = new APIContext(accessToken);
recordPayment(apiContext, paymentDetail);
}
/**
* Marks the status of a specified invoice, by ID, as paid. Include a payment detail object that defines the payment method and other details in the JSON request body.
* @param apiContext
* {@link APIContext} used for the API call.
* @param paymentDetail
* PaymentDetail
* @throws PayPalRESTException
*/
public void recordPayment(APIContext apiContext, PaymentDetail paymentDetail) throws PayPalRESTException {
if (this.getId() == null) {
throw new IllegalArgumentException("Id cannot be null");
}
if (paymentDetail == null) {
throw new IllegalArgumentException("paymentDetail cannot be null");
}
Object[] parameters = new Object[] {this.getId()};
String pattern = "v1/invoicing/invoices/{0}/record-payment";
String resourcePath = RESTUtil.formatURIPath(pattern, parameters);
String payLoad = paymentDetail.toJSON();
configureAndExecute(apiContext, HttpMethod.POST, resourcePath, payLoad, null);
}
/**
* Marks the status of a specified invoice, by ID, as refunded. Include a refund detail object that defines the refund type and other details in the JSON request body.
* @deprecated Please use {@link #recordRefund(APIContext, RefundDetail)} instead.
* @param accessToken
* Access Token used for the API call.
* @param refundDetail
* RefundDetail
* @throws PayPalRESTException
*/
public void recordRefund(String accessToken, RefundDetail refundDetail) throws PayPalRESTException {
APIContext apiContext = new APIContext(accessToken);
recordRefund(apiContext, refundDetail);
}
/**
* Marks the status of a specified invoice, by ID, as refunded. Include a refund detail object that defines the refund type and other details in the JSON request body.
* @param apiContext
* {@link APIContext} used for the API call.
* @param refundDetail
* RefundDetail
* @throws PayPalRESTException
*/
public void recordRefund(APIContext apiContext, RefundDetail refundDetail) throws PayPalRESTException {
if (this.getId() == null) {
throw new IllegalArgumentException("Id cannot be null");
}
if (refundDetail == null) {
throw new IllegalArgumentException("refundDetail cannot be null");
}
Object[] parameters = new Object[] {this.getId()};
String pattern = "v1/invoicing/invoices/{0}/record-refund";
String resourcePath = RESTUtil.formatURIPath(pattern, parameters);
String payLoad = refundDetail.toJSON();
configureAndExecute(apiContext, HttpMethod.POST, resourcePath, payLoad, null);
}
/**
* Gets the details for a specified invoice, by ID.
* @deprecated Please use {@link #get(APIContext, String)} instead.
* @param accessToken
* Access Token used for the API call.
* @param invoiceId
* String
* @return Invoice
* @throws PayPalRESTException
*/
public static Invoice get(String accessToken, String invoiceId) throws PayPalRESTException {
APIContext apiContext = new APIContext(accessToken);
return get(apiContext, invoiceId);
}
/**
* Gets the details for a specified invoice, by ID.
* @param apiContext
* {@link APIContext} used for the API call.
* @param invoiceId
* String
* @return Invoice
* @throws PayPalRESTException
*/
public static Invoice get(APIContext apiContext, String invoiceId) throws PayPalRESTException {
if (invoiceId == null) {
throw new IllegalArgumentException("invoiceId cannot be null");
}
Object[] parameters = new Object[] {invoiceId};
String pattern = "v1/invoicing/invoices/{0}";
String resourcePath = RESTUtil.formatURIPath(pattern, parameters);
String payLoad = "";
return configureAndExecute(apiContext, HttpMethod.GET, resourcePath, payLoad, Invoice.class);
}
/**
* Lists some or all merchant invoices. Filters the response by any specified optional query string parameters.
* @deprecated Please use {@link #getAll(APIContext)} instead.
* @param accessToken
* Access Token used for the API call.
* @return Invoices
* @throws PayPalRESTException
*/
public static Invoices getAll(String accessToken) throws PayPalRESTException {
APIContext apiContext = new APIContext(accessToken);
return getAll(apiContext, null);
}
/**
* Lists some or all merchant invoices. Filters the response by any specified optional query string parameters.
* @param apiContext
* {@link APIContext} used for the API call.
* @return Invoices
* @throws PayPalRESTException
*/
public static Invoices getAll(APIContext apiContext) throws PayPalRESTException {
return getAll(apiContext, null);
}
/**
* Lists some or all merchant invoices. Filters the response by any specified optional query string parameters.
* @param apiContext
* {@link APIContext} used for the API call.
* @param options
* {@link Map} of query parameters. Allowed options: page, page_size, total_count_required.
* @return Invoices
* @throws PayPalRESTException
*/
public static Invoices getAll(APIContext apiContext, Map options) throws PayPalRESTException {
String pattern = "v1/invoicing/invoices";
String resourcePath = RESTUtil.formatURIPath(pattern, null, options);
String payLoad = "";
return configureAndExecute(apiContext, HttpMethod.GET, resourcePath, payLoad, Invoices.class);
}
/**
* Fully updates an invoice by passing the invoice ID to the request URI. In addition, pass a complete invoice object in the request JSON. Partial updates are not supported.
* @deprecated Please use {@link #update(APIContext)} instead.
* @param accessToken
* Access Token used for the API call.
* @return Invoice
* @throws PayPalRESTException
*/
public Invoice update(String accessToken) throws PayPalRESTException {
APIContext apiContext = new APIContext(accessToken);
return update(apiContext);
}
/**
* Fully updates an invoice by passing the invoice ID to the request URI. In addition, pass a complete invoice object in the request JSON. Partial updates are not supported.
* @param apiContext
* {@link APIContext} used for the API call.
* @return Invoice
* @throws PayPalRESTException
*/
public Invoice update(APIContext apiContext) throws PayPalRESTException {
if (this.getId() == null) {
throw new IllegalArgumentException("Id cannot be null");
}
Object[] parameters = new Object[] {this.getId()};
String pattern = "v1/invoicing/invoices/{0}";
String resourcePath = RESTUtil.formatURIPath(pattern, parameters);
String payLoad = this.toJSON();
return configureAndExecute(apiContext, HttpMethod.PUT, resourcePath, payLoad, Invoice.class);
}
/**
* Delete a particular invoice by passing the invoice ID to the request URI.
* @deprecated Please use {@link #delete(APIContext)} instead.
* @param accessToken
* Access Token used for the API call.
* @throws PayPalRESTException
*/
public void delete(String accessToken) throws PayPalRESTException {
APIContext apiContext = new APIContext(accessToken);
delete(apiContext);
}
/**
* Delete a particular invoice by passing the invoice ID to the request URI.
* @param apiContext
* {@link APIContext} used for the API call.
* @throws PayPalRESTException
*/
public void delete(APIContext apiContext) throws PayPalRESTException {
if (this.getId() == null) {
throw new IllegalArgumentException("Id cannot be null");
}
apiContext.setRequestId(null);
Object[] parameters = new Object[] {this.getId()};
String pattern = "v1/invoicing/invoices/{0}";
String resourcePath = RESTUtil.formatURIPath(pattern, parameters);
String payLoad = "";
configureAndExecute(apiContext, HttpMethod.DELETE, resourcePath, payLoad, null);
apiContext.setRequestId(null);
}
/**
* Delete external payment.
* @param apiContext
* {@link APIContext} used for the API call.
* @return
* @throws PayPalRESTException
*/
public void deleteExternalPayment(APIContext apiContext) throws PayPalRESTException {
if (this.getId() == null) {
throw new IllegalArgumentException("Id cannot be null");
}
apiContext.setMaskRequestId(true);
Object[] parameters = new Object[] {this.getId()};
String pattern = "v1/invoicing/invoices/{0}/payment-records/{1}";
String resourcePath = RESTUtil.formatURIPath(pattern, parameters);
String payLoad = "";
configureAndExecute(apiContext, HttpMethod.DELETE, resourcePath, payLoad, null);
}
/**
* Delete external refund.
* @param apiContext
* {@link APIContext} used for the API call.
* @return
* @throws PayPalRESTException
*/
public void deleteExternalRefund(APIContext apiContext) throws PayPalRESTException {
if (this.getId() == null) {
throw new IllegalArgumentException("Id cannot be null");
}
apiContext.setMaskRequestId(true);
Object[] parameters = new Object[] {this.getId()};
String pattern = "v1/invoicing/invoices/{0}/refund-records/{1}";
String resourcePath = RESTUtil.formatURIPath(pattern, parameters);
String payLoad = "";
configureAndExecute(apiContext, HttpMethod.DELETE, resourcePath, payLoad, null);
}
/**
* Generates a QR code for an invoice, by ID. The request generates a QR code that is 500 pixels in width and height. To change the dimensions of the returned code, specify optional query parameters.
* @deprecated Please use {@link #qrCode(APIContext, String, Map)} instead.
* @param apiContext
* {@link APIContext} used for the API call.
* @param invoiceId
* String
* @return object
* @throws PayPalRESTException
*/
public static Image qrCode(APIContext apiContext, String invoiceId) throws PayPalRESTException {
return qrCode(apiContext, invoiceId, null);
}
/**
* Generates a QR code for an invoice, by ID. The request generates a QR code that is 500 pixels in width and height. To change the dimensions of the returned code, specify optional query parameters.
* @param apiContext
* {@link APIContext} used for the API call.
* @param invoiceId
* String
* @param options
* {@link Map} of options. Valid values are: width, height, action.
* @return object
* @throws PayPalRESTException
*/
public static Image qrCode(APIContext apiContext, String invoiceId, Map options) throws PayPalRESTException {
if (invoiceId == null) {
throw new IllegalArgumentException("invoiceId cannot be null");
}
String pattern = "v1/invoicing/invoices/{0}/qr-code";
String resourcePath = RESTUtil.formatURIPath(pattern, options, invoiceId);
String payLoad = "";
return configureAndExecute(apiContext, HttpMethod.GET, resourcePath, payLoad, Image.class);
}
/**
* Generates the next invoice number.
* @param apiContext
* {@link APIContext} used for the API call.
* @return object
* @throws PayPalRESTException
*/
public InvoiceNumber generateNumber(APIContext apiContext) throws PayPalRESTException {
Object[] parameters = new Object[] {this.getId()};
String pattern = "v1/invoicing/invoices/next-invoice-number";
String resourcePath = RESTUtil.formatURIPath(pattern, parameters);
String payLoad = "";
return configureAndExecute(apiContext, HttpMethod.POST, resourcePath, payLoad, InvoiceNumber.class);
}
/**
* Fetches long lived refresh token from authorization code, for third party merchant invoicing use.
*
* @param context context
* @param authorizationCode authorization code
* @return {@link String} Refresh Token
* @throws PayPalRESTException
*/
public static String fetchRefreshToken(APIContext context, String authorizationCode) throws PayPalRESTException {
return Tokeninfo.createFromAuthorizationCode(context, authorizationCode).getRefreshToken();
}
/**
* The unique invoice resource identifier.
*/
@java.lang.SuppressWarnings("all")
public String getId() {
return this.id;
}
/**
* Unique number that appears on the invoice. If left blank will be auto-incremented from the last number. 25 characters max.
*/
@java.lang.SuppressWarnings("all")
public String getNumber() {
return this.number;
}
/**
* The template ID used for the invoice. Useful for copy functionality.
*/
@java.lang.SuppressWarnings("all")
public String getTemplateId() {
return this.templateId;
}
/**
* URI of the invoice resource.
*/
@java.lang.SuppressWarnings("all")
public String getUri() {
return this.uri;
}
/**
* Status of the invoice.
*/
@java.lang.SuppressWarnings("all")
public String getStatus() {
return this.status;
}
/**
* Information about the merchant who is sending the invoice.
*/
@java.lang.SuppressWarnings("all")
public MerchantInfo getMerchantInfo() {
return this.merchantInfo;
}
/**
* The required invoice recipient email address and any optional billing information. One recipient is supported.
*/
@java.lang.SuppressWarnings("all")
public List getBillingInfo() {
return this.billingInfo;
}
/**
* For invoices sent by email, one or more email addresses to which to send a Cc: copy of the notification. Supports only email addresses under participant.
*/
@java.lang.SuppressWarnings("all")
public List getCcInfo() {
return this.ccInfo;
}
/**
* The shipping information for entities to whom items are being shipped.
*/
@java.lang.SuppressWarnings("all")
public ShippingInfo getShippingInfo() {
return this.shippingInfo;
}
/**
* The list of items to include in the invoice. Maximum value is 100 items per invoice.
*/
@java.lang.SuppressWarnings("all")
public List getItems() {
return this.items;
}
/**
* The date when the invoice was enabled. The date format is *yyyy*-*MM*-*dd* *z* as defined in [Internet Date/Time Format](http://tools.ietf.org/html/rfc3339#section-5.6).
*/
@java.lang.SuppressWarnings("all")
public String getInvoiceDate() {
return this.invoiceDate;
}
/**
* Optional. The payment deadline for the invoice. Value is either `term_type` or `due_date` but not both.
*/
@java.lang.SuppressWarnings("all")
public PaymentTerm getPaymentTerm() {
return this.paymentTerm;
}
/**
* Reference data, such as PO number, to add to the invoice. Maximum length is 60 characters.
*/
@java.lang.SuppressWarnings("all")
public String getReference() {
return this.reference;
}
/**
* The invoice level discount, as a percent or an amount value.
*/
@java.lang.SuppressWarnings("all")
public Cost getDiscount() {
return this.discount;
}
/**
* The shipping cost, as a percent or an amount value.
*/
@java.lang.SuppressWarnings("all")
public ShippingCost getShippingCost() {
return this.shippingCost;
}
/**
* The custom amount to apply on an invoice. If you include a label, the amount cannot be empty.
*/
@java.lang.SuppressWarnings("all")
public CustomAmount getCustom() {
return this.custom;
}
/**
* Indicates whether the invoice allows a partial payment. If set to `false`, invoice must be paid in full. If set to `true`, the invoice allows partial payments. Default is `false`.
*/
@java.lang.SuppressWarnings("all")
public Boolean getAllowPartialPayment() {
return this.allowPartialPayment;
}
/**
* If `allow_partial_payment` is set to `true`, the minimum amount allowed for a partial payment.
*/
@java.lang.SuppressWarnings("all")
public Currency getMinimumAmountDue() {
return this.minimumAmountDue;
}
/**
* Indicates whether tax is calculated before or after a discount. If set to `false`, the tax is calculated before a discount. If set to `true`, the tax is calculated after a discount. Default is `false`.
*/
@java.lang.SuppressWarnings("all")
public Boolean getTaxCalculatedAfterDiscount() {
return this.taxCalculatedAfterDiscount;
}
/**
* Indicates whether the unit price includes tax. Default is `false`.
*/
@java.lang.SuppressWarnings("all")
public Boolean getTaxInclusive() {
return this.taxInclusive;
}
/**
* General terms of the invoice. 4000 characters max.
*/
@java.lang.SuppressWarnings("all")
public String getTerms() {
return this.terms;
}
/**
* Note to the payer. 4000 characters max.
*/
@java.lang.SuppressWarnings("all")
public String getNote() {
return this.note;
}
/**
* A private bookkeeping memo for the merchant. Maximum length is 150 characters.
*/
@java.lang.SuppressWarnings("all")
public String getMerchantMemo() {
return this.merchantMemo;
}
/**
* Full URL of an external image to use as the logo. Maximum length is 4000 characters.
*/
@java.lang.SuppressWarnings("all")
public String getLogoUrl() {
return this.logoUrl;
}
/**
* The total amount of the invoice.
*/
@java.lang.SuppressWarnings("all")
public Currency getTotalAmount() {
return this.totalAmount;
}
/**
* List of payment details for the invoice.
*/
@java.lang.SuppressWarnings("all")
public List getPayments() {
return this.payments;
}
/**
* List of refund details for the invoice.
*/
@java.lang.SuppressWarnings("all")
public List getRefunds() {
return this.refunds;
}
/**
* Audit information for the invoice.
*/
@java.lang.SuppressWarnings("all")
public Metadata getMetadata() {
return this.metadata;
}
/**
* Any miscellaneous invoice data. Maximum length is 4000 characters.
*/
@java.lang.SuppressWarnings("all")
public String getAdditionalData() {
return this.additionalData;
}
/**
* Gratuity to include with the invoice.
*/
@java.lang.SuppressWarnings("all")
public Currency getGratuity() {
return this.gratuity;
}
/**
* Payment summary of the invoice including amount paid through PayPal and other sources.
*/
@java.lang.SuppressWarnings("all")
public PaymentSummary getPaidAmount() {
return this.paidAmount;
}
/**
* Payment summary of the invoice including amount refunded through PayPal and other sources.
*/
@java.lang.SuppressWarnings("all")
public PaymentSummary getRefundedAmount() {
return this.refundedAmount;
}
/**
* List of files attached to the invoice.
*/
@java.lang.SuppressWarnings("all")
public List getAttachments() {
return this.attachments;
}
/**
* HATEOS links representing all the actions over the invoice resource based on the current invoice status.
*/
@java.lang.SuppressWarnings("all")
public List getLinks() {
return this.links;
}
/**
* The unique invoice resource identifier.
* @return this
*/
@java.lang.SuppressWarnings("all")
public Invoice setId(final String id) {
this.id = id;
return this;
}
/**
* Unique number that appears on the invoice. If left blank will be auto-incremented from the last number. 25 characters max.
* @return this
*/
@java.lang.SuppressWarnings("all")
public Invoice setNumber(final String number) {
this.number = number;
return this;
}
/**
* The template ID used for the invoice. Useful for copy functionality.
* @return this
*/
@java.lang.SuppressWarnings("all")
public Invoice setTemplateId(final String templateId) {
this.templateId = templateId;
return this;
}
/**
* URI of the invoice resource.
* @return this
*/
@java.lang.SuppressWarnings("all")
public Invoice setUri(final String uri) {
this.uri = uri;
return this;
}
/**
* Status of the invoice.
* @return this
*/
@java.lang.SuppressWarnings("all")
public Invoice setStatus(final String status) {
this.status = status;
return this;
}
/**
* Information about the merchant who is sending the invoice.
* @return this
*/
@java.lang.SuppressWarnings("all")
public Invoice setMerchantInfo(final MerchantInfo merchantInfo) {
this.merchantInfo = merchantInfo;
return this;
}
/**
* The required invoice recipient email address and any optional billing information. One recipient is supported.
* @return this
*/
@java.lang.SuppressWarnings("all")
public Invoice setBillingInfo(final List billingInfo) {
this.billingInfo = billingInfo;
return this;
}
/**
* For invoices sent by email, one or more email addresses to which to send a Cc: copy of the notification. Supports only email addresses under participant.
* @return this
*/
@java.lang.SuppressWarnings("all")
public Invoice setCcInfo(final List ccInfo) {
this.ccInfo = ccInfo;
return this;
}
/**
* The shipping information for entities to whom items are being shipped.
* @return this
*/
@java.lang.SuppressWarnings("all")
public Invoice setShippingInfo(final ShippingInfo shippingInfo) {
this.shippingInfo = shippingInfo;
return this;
}
/**
* The list of items to include in the invoice. Maximum value is 100 items per invoice.
* @return this
*/
@java.lang.SuppressWarnings("all")
public Invoice setItems(final List items) {
this.items = items;
return this;
}
/**
* The date when the invoice was enabled. The date format is *yyyy*-*MM*-*dd* *z* as defined in [Internet Date/Time Format](http://tools.ietf.org/html/rfc3339#section-5.6).
* @return this
*/
@java.lang.SuppressWarnings("all")
public Invoice setInvoiceDate(final String invoiceDate) {
this.invoiceDate = invoiceDate;
return this;
}
/**
* Optional. The payment deadline for the invoice. Value is either `term_type` or `due_date` but not both.
* @return this
*/
@java.lang.SuppressWarnings("all")
public Invoice setPaymentTerm(final PaymentTerm paymentTerm) {
this.paymentTerm = paymentTerm;
return this;
}
/**
* Reference data, such as PO number, to add to the invoice. Maximum length is 60 characters.
* @return this
*/
@java.lang.SuppressWarnings("all")
public Invoice setReference(final String reference) {
this.reference = reference;
return this;
}
/**
* The invoice level discount, as a percent or an amount value.
* @return this
*/
@java.lang.SuppressWarnings("all")
public Invoice setDiscount(final Cost discount) {
this.discount = discount;
return this;
}
/**
* The shipping cost, as a percent or an amount value.
* @return this
*/
@java.lang.SuppressWarnings("all")
public Invoice setShippingCost(final ShippingCost shippingCost) {
this.shippingCost = shippingCost;
return this;
}
/**
* The custom amount to apply on an invoice. If you include a label, the amount cannot be empty.
* @return this
*/
@java.lang.SuppressWarnings("all")
public Invoice setCustom(final CustomAmount custom) {
this.custom = custom;
return this;
}
/**
* Indicates whether the invoice allows a partial payment. If set to `false`, invoice must be paid in full. If set to `true`, the invoice allows partial payments. Default is `false`.
* @return this
*/
@java.lang.SuppressWarnings("all")
public Invoice setAllowPartialPayment(final Boolean allowPartialPayment) {
this.allowPartialPayment = allowPartialPayment;
return this;
}
/**
* If `allow_partial_payment` is set to `true`, the minimum amount allowed for a partial payment.
* @return this
*/
@java.lang.SuppressWarnings("all")
public Invoice setMinimumAmountDue(final Currency minimumAmountDue) {
this.minimumAmountDue = minimumAmountDue;
return this;
}
/**
* Indicates whether tax is calculated before or after a discount. If set to `false`, the tax is calculated before a discount. If set to `true`, the tax is calculated after a discount. Default is `false`.
* @return this
*/
@java.lang.SuppressWarnings("all")
public Invoice setTaxCalculatedAfterDiscount(final Boolean taxCalculatedAfterDiscount) {
this.taxCalculatedAfterDiscount = taxCalculatedAfterDiscount;
return this;
}
/**
* Indicates whether the unit price includes tax. Default is `false`.
* @return this
*/
@java.lang.SuppressWarnings("all")
public Invoice setTaxInclusive(final Boolean taxInclusive) {
this.taxInclusive = taxInclusive;
return this;
}
/**
* General terms of the invoice. 4000 characters max.
* @return this
*/
@java.lang.SuppressWarnings("all")
public Invoice setTerms(final String terms) {
this.terms = terms;
return this;
}
/**
* Note to the payer. 4000 characters max.
* @return this
*/
@java.lang.SuppressWarnings("all")
public Invoice setNote(final String note) {
this.note = note;
return this;
}
/**
* A private bookkeeping memo for the merchant. Maximum length is 150 characters.
* @return this
*/
@java.lang.SuppressWarnings("all")
public Invoice setMerchantMemo(final String merchantMemo) {
this.merchantMemo = merchantMemo;
return this;
}
/**
* Full URL of an external image to use as the logo. Maximum length is 4000 characters.
* @return this
*/
@java.lang.SuppressWarnings("all")
public Invoice setLogoUrl(final String logoUrl) {
this.logoUrl = logoUrl;
return this;
}
/**
* The total amount of the invoice.
* @return this
*/
@java.lang.SuppressWarnings("all")
public Invoice setTotalAmount(final Currency totalAmount) {
this.totalAmount = totalAmount;
return this;
}
/**
* List of payment details for the invoice.
* @return this
*/
@java.lang.SuppressWarnings("all")
public Invoice setPayments(final List payments) {
this.payments = payments;
return this;
}
/**
* List of refund details for the invoice.
* @return this
*/
@java.lang.SuppressWarnings("all")
public Invoice setRefunds(final List refunds) {
this.refunds = refunds;
return this;
}
/**
* Audit information for the invoice.
* @return this
*/
@java.lang.SuppressWarnings("all")
public Invoice setMetadata(final Metadata metadata) {
this.metadata = metadata;
return this;
}
/**
* Any miscellaneous invoice data. Maximum length is 4000 characters.
* @return this
*/
@java.lang.SuppressWarnings("all")
public Invoice setAdditionalData(final String additionalData) {
this.additionalData = additionalData;
return this;
}
/**
* Gratuity to include with the invoice.
* @return this
*/
@java.lang.SuppressWarnings("all")
public Invoice setGratuity(final Currency gratuity) {
this.gratuity = gratuity;
return this;
}
/**
* Payment summary of the invoice including amount paid through PayPal and other sources.
* @return this
*/
@java.lang.SuppressWarnings("all")
public Invoice setPaidAmount(final PaymentSummary paidAmount) {
this.paidAmount = paidAmount;
return this;
}
/**
* Payment summary of the invoice including amount refunded through PayPal and other sources.
* @return this
*/
@java.lang.SuppressWarnings("all")
public Invoice setRefundedAmount(final PaymentSummary refundedAmount) {
this.refundedAmount = refundedAmount;
return this;
}
/**
* List of files attached to the invoice.
* @return this
*/
@java.lang.SuppressWarnings("all")
public Invoice setAttachments(final List attachments) {
this.attachments = attachments;
return this;
}
/**
* HATEOS links representing all the actions over the invoice resource based on the current invoice status.
* @return this
*/
@java.lang.SuppressWarnings("all")
public Invoice setLinks(final List links) {
this.links = links;
return this;
}
@java.lang.Override
@java.lang.SuppressWarnings("all")
public boolean equals(final java.lang.Object o) {
if (o == this) return true;
if (!(o instanceof Invoice)) return false;
final Invoice other = (Invoice) o;
if (!other.canEqual((java.lang.Object) this)) return false;
if (!super.equals(o)) return false;
final java.lang.Object this$id = this.getId();
final java.lang.Object other$id = other.getId();
if (this$id == null ? other$id != null : !this$id.equals(other$id)) return false;
final java.lang.Object this$number = this.getNumber();
final java.lang.Object other$number = other.getNumber();
if (this$number == null ? other$number != null : !this$number.equals(other$number)) return false;
final java.lang.Object this$templateId = this.getTemplateId();
final java.lang.Object other$templateId = other.getTemplateId();
if (this$templateId == null ? other$templateId != null : !this$templateId.equals(other$templateId)) return false;
final java.lang.Object this$uri = this.getUri();
final java.lang.Object other$uri = other.getUri();
if (this$uri == null ? other$uri != null : !this$uri.equals(other$uri)) return false;
final java.lang.Object this$status = this.getStatus();
final java.lang.Object other$status = other.getStatus();
if (this$status == null ? other$status != null : !this$status.equals(other$status)) return false;
final java.lang.Object this$merchantInfo = this.getMerchantInfo();
final java.lang.Object other$merchantInfo = other.getMerchantInfo();
if (this$merchantInfo == null ? other$merchantInfo != null : !this$merchantInfo.equals(other$merchantInfo)) return false;
final java.lang.Object this$billingInfo = this.getBillingInfo();
final java.lang.Object other$billingInfo = other.getBillingInfo();
if (this$billingInfo == null ? other$billingInfo != null : !this$billingInfo.equals(other$billingInfo)) return false;
final java.lang.Object this$ccInfo = this.getCcInfo();
final java.lang.Object other$ccInfo = other.getCcInfo();
if (this$ccInfo == null ? other$ccInfo != null : !this$ccInfo.equals(other$ccInfo)) return false;
final java.lang.Object this$shippingInfo = this.getShippingInfo();
final java.lang.Object other$shippingInfo = other.getShippingInfo();
if (this$shippingInfo == null ? other$shippingInfo != null : !this$shippingInfo.equals(other$shippingInfo)) return false;
final java.lang.Object this$items = this.getItems();
final java.lang.Object other$items = other.getItems();
if (this$items == null ? other$items != null : !this$items.equals(other$items)) return false;
final java.lang.Object this$invoiceDate = this.getInvoiceDate();
final java.lang.Object other$invoiceDate = other.getInvoiceDate();
if (this$invoiceDate == null ? other$invoiceDate != null : !this$invoiceDate.equals(other$invoiceDate)) return false;
final java.lang.Object this$paymentTerm = this.getPaymentTerm();
final java.lang.Object other$paymentTerm = other.getPaymentTerm();
if (this$paymentTerm == null ? other$paymentTerm != null : !this$paymentTerm.equals(other$paymentTerm)) return false;
final java.lang.Object this$reference = this.getReference();
final java.lang.Object other$reference = other.getReference();
if (this$reference == null ? other$reference != null : !this$reference.equals(other$reference)) return false;
final java.lang.Object this$discount = this.getDiscount();
final java.lang.Object other$discount = other.getDiscount();
if (this$discount == null ? other$discount != null : !this$discount.equals(other$discount)) return false;
final java.lang.Object this$shippingCost = this.getShippingCost();
final java.lang.Object other$shippingCost = other.getShippingCost();
if (this$shippingCost == null ? other$shippingCost != null : !this$shippingCost.equals(other$shippingCost)) return false;
final java.lang.Object this$custom = this.getCustom();
final java.lang.Object other$custom = other.getCustom();
if (this$custom == null ? other$custom != null : !this$custom.equals(other$custom)) return false;
final java.lang.Object this$allowPartialPayment = this.getAllowPartialPayment();
final java.lang.Object other$allowPartialPayment = other.getAllowPartialPayment();
if (this$allowPartialPayment == null ? other$allowPartialPayment != null : !this$allowPartialPayment.equals(other$allowPartialPayment)) return false;
final java.lang.Object this$minimumAmountDue = this.getMinimumAmountDue();
final java.lang.Object other$minimumAmountDue = other.getMinimumAmountDue();
if (this$minimumAmountDue == null ? other$minimumAmountDue != null : !this$minimumAmountDue.equals(other$minimumAmountDue)) return false;
final java.lang.Object this$taxCalculatedAfterDiscount = this.getTaxCalculatedAfterDiscount();
final java.lang.Object other$taxCalculatedAfterDiscount = other.getTaxCalculatedAfterDiscount();
if (this$taxCalculatedAfterDiscount == null ? other$taxCalculatedAfterDiscount != null : !this$taxCalculatedAfterDiscount.equals(other$taxCalculatedAfterDiscount)) return false;
final java.lang.Object this$taxInclusive = this.getTaxInclusive();
final java.lang.Object other$taxInclusive = other.getTaxInclusive();
if (this$taxInclusive == null ? other$taxInclusive != null : !this$taxInclusive.equals(other$taxInclusive)) return false;
final java.lang.Object this$terms = this.getTerms();
final java.lang.Object other$terms = other.getTerms();
if (this$terms == null ? other$terms != null : !this$terms.equals(other$terms)) return false;
final java.lang.Object this$note = this.getNote();
final java.lang.Object other$note = other.getNote();
if (this$note == null ? other$note != null : !this$note.equals(other$note)) return false;
final java.lang.Object this$merchantMemo = this.getMerchantMemo();
final java.lang.Object other$merchantMemo = other.getMerchantMemo();
if (this$merchantMemo == null ? other$merchantMemo != null : !this$merchantMemo.equals(other$merchantMemo)) return false;
final java.lang.Object this$logoUrl = this.getLogoUrl();
final java.lang.Object other$logoUrl = other.getLogoUrl();
if (this$logoUrl == null ? other$logoUrl != null : !this$logoUrl.equals(other$logoUrl)) return false;
final java.lang.Object this$totalAmount = this.getTotalAmount();
final java.lang.Object other$totalAmount = other.getTotalAmount();
if (this$totalAmount == null ? other$totalAmount != null : !this$totalAmount.equals(other$totalAmount)) return false;
final java.lang.Object this$payments = this.getPayments();
final java.lang.Object other$payments = other.getPayments();
if (this$payments == null ? other$payments != null : !this$payments.equals(other$payments)) return false;
final java.lang.Object this$refunds = this.getRefunds();
final java.lang.Object other$refunds = other.getRefunds();
if (this$refunds == null ? other$refunds != null : !this$refunds.equals(other$refunds)) return false;
final java.lang.Object this$metadata = this.getMetadata();
final java.lang.Object other$metadata = other.getMetadata();
if (this$metadata == null ? other$metadata != null : !this$metadata.equals(other$metadata)) return false;
final java.lang.Object this$additionalData = this.getAdditionalData();
final java.lang.Object other$additionalData = other.getAdditionalData();
if (this$additionalData == null ? other$additionalData != null : !this$additionalData.equals(other$additionalData)) return false;
final java.lang.Object this$gratuity = this.getGratuity();
final java.lang.Object other$gratuity = other.getGratuity();
if (this$gratuity == null ? other$gratuity != null : !this$gratuity.equals(other$gratuity)) return false;
final java.lang.Object this$paidAmount = this.getPaidAmount();
final java.lang.Object other$paidAmount = other.getPaidAmount();
if (this$paidAmount == null ? other$paidAmount != null : !this$paidAmount.equals(other$paidAmount)) return false;
final java.lang.Object this$refundedAmount = this.getRefundedAmount();
final java.lang.Object other$refundedAmount = other.getRefundedAmount();
if (this$refundedAmount == null ? other$refundedAmount != null : !this$refundedAmount.equals(other$refundedAmount)) return false;
final java.lang.Object this$attachments = this.getAttachments();
final java.lang.Object other$attachments = other.getAttachments();
if (this$attachments == null ? other$attachments != null : !this$attachments.equals(other$attachments)) return false;
final java.lang.Object this$links = this.getLinks();
final java.lang.Object other$links = other.getLinks();
if (this$links == null ? other$links != null : !this$links.equals(other$links)) return false;
return true;
}
@java.lang.SuppressWarnings("all")
protected boolean canEqual(final java.lang.Object other) {
return other instanceof Invoice;
}
@java.lang.Override
@java.lang.SuppressWarnings("all")
public int hashCode() {
final int PRIME = 59;
int result = 1;
result = result * PRIME + super.hashCode();
final java.lang.Object $id = this.getId();
result = result * PRIME + ($id == null ? 43 : $id.hashCode());
final java.lang.Object $number = this.getNumber();
result = result * PRIME + ($number == null ? 43 : $number.hashCode());
final java.lang.Object $templateId = this.getTemplateId();
result = result * PRIME + ($templateId == null ? 43 : $templateId.hashCode());
final java.lang.Object $uri = this.getUri();
result = result * PRIME + ($uri == null ? 43 : $uri.hashCode());
final java.lang.Object $status = this.getStatus();
result = result * PRIME + ($status == null ? 43 : $status.hashCode());
final java.lang.Object $merchantInfo = this.getMerchantInfo();
result = result * PRIME + ($merchantInfo == null ? 43 : $merchantInfo.hashCode());
final java.lang.Object $billingInfo = this.getBillingInfo();
result = result * PRIME + ($billingInfo == null ? 43 : $billingInfo.hashCode());
final java.lang.Object $ccInfo = this.getCcInfo();
result = result * PRIME + ($ccInfo == null ? 43 : $ccInfo.hashCode());
final java.lang.Object $shippingInfo = this.getShippingInfo();
result = result * PRIME + ($shippingInfo == null ? 43 : $shippingInfo.hashCode());
final java.lang.Object $items = this.getItems();
result = result * PRIME + ($items == null ? 43 : $items.hashCode());
final java.lang.Object $invoiceDate = this.getInvoiceDate();
result = result * PRIME + ($invoiceDate == null ? 43 : $invoiceDate.hashCode());
final java.lang.Object $paymentTerm = this.getPaymentTerm();
result = result * PRIME + ($paymentTerm == null ? 43 : $paymentTerm.hashCode());
final java.lang.Object $reference = this.getReference();
result = result * PRIME + ($reference == null ? 43 : $reference.hashCode());
final java.lang.Object $discount = this.getDiscount();
result = result * PRIME + ($discount == null ? 43 : $discount.hashCode());
final java.lang.Object $shippingCost = this.getShippingCost();
result = result * PRIME + ($shippingCost == null ? 43 : $shippingCost.hashCode());
final java.lang.Object $custom = this.getCustom();
result = result * PRIME + ($custom == null ? 43 : $custom.hashCode());
final java.lang.Object $allowPartialPayment = this.getAllowPartialPayment();
result = result * PRIME + ($allowPartialPayment == null ? 43 : $allowPartialPayment.hashCode());
final java.lang.Object $minimumAmountDue = this.getMinimumAmountDue();
result = result * PRIME + ($minimumAmountDue == null ? 43 : $minimumAmountDue.hashCode());
final java.lang.Object $taxCalculatedAfterDiscount = this.getTaxCalculatedAfterDiscount();
result = result * PRIME + ($taxCalculatedAfterDiscount == null ? 43 : $taxCalculatedAfterDiscount.hashCode());
final java.lang.Object $taxInclusive = this.getTaxInclusive();
result = result * PRIME + ($taxInclusive == null ? 43 : $taxInclusive.hashCode());
final java.lang.Object $terms = this.getTerms();
result = result * PRIME + ($terms == null ? 43 : $terms.hashCode());
final java.lang.Object $note = this.getNote();
result = result * PRIME + ($note == null ? 43 : $note.hashCode());
final java.lang.Object $merchantMemo = this.getMerchantMemo();
result = result * PRIME + ($merchantMemo == null ? 43 : $merchantMemo.hashCode());
final java.lang.Object $logoUrl = this.getLogoUrl();
result = result * PRIME + ($logoUrl == null ? 43 : $logoUrl.hashCode());
final java.lang.Object $totalAmount = this.getTotalAmount();
result = result * PRIME + ($totalAmount == null ? 43 : $totalAmount.hashCode());
final java.lang.Object $payments = this.getPayments();
result = result * PRIME + ($payments == null ? 43 : $payments.hashCode());
final java.lang.Object $refunds = this.getRefunds();
result = result * PRIME + ($refunds == null ? 43 : $refunds.hashCode());
final java.lang.Object $metadata = this.getMetadata();
result = result * PRIME + ($metadata == null ? 43 : $metadata.hashCode());
final java.lang.Object $additionalData = this.getAdditionalData();
result = result * PRIME + ($additionalData == null ? 43 : $additionalData.hashCode());
final java.lang.Object $gratuity = this.getGratuity();
result = result * PRIME + ($gratuity == null ? 43 : $gratuity.hashCode());
final java.lang.Object $paidAmount = this.getPaidAmount();
result = result * PRIME + ($paidAmount == null ? 43 : $paidAmount.hashCode());
final java.lang.Object $refundedAmount = this.getRefundedAmount();
result = result * PRIME + ($refundedAmount == null ? 43 : $refundedAmount.hashCode());
final java.lang.Object $attachments = this.getAttachments();
result = result * PRIME + ($attachments == null ? 43 : $attachments.hashCode());
final java.lang.Object $links = this.getLinks();
result = result * PRIME + ($links == null ? 43 : $links.hashCode());
return result;
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy