View as Markdown
API Spec (JSON)
API Spec (YAML)
Compact modeHides field descriptions and other prose for a more compact, scannable view of the API reference.invoice object must include an items array.Note: The merchant that you specify in an invoice must have a PayPal account in good standing..
Client CredentialsToken URLhttps://api-m.sandbox.paypal.com/v1/oauth2/tokenInheaderScopes
https://uri.paypal.com/services/invoicing/invoices/readwriteapplication/json
TypeScript Definitions
Use the request body type in TypeScript.
detailobject<invoice_detail>Requiredcurrency_codestring<currency_code>Requiredattachmentsobject<file_reference>[]Optionalcreate_timestring<date_time>OptionalNote: The regular expression provides guidance but does not reject all invalid dates.
tip_presetsobject<tip_preset>[]Optionalinvoice_datestring<date_no_time>Optionalpayment_termobject<invoice_payment_term>Optionalterm_typeenum<payment_term_type>Optionalconditional_rulesobject<payment_term_conditional_rules>Optionalearly_payment_discountobject<early_payment_discount>Optionaldiscount_end_datestring<date_no_time>Optionalpercentstring<percentage>Optionalamountobject<money>Optionalcurrency_codestring<currency_code>RequiredvaluestringRequiredauto_cancellationobject<auto_cancellation>Optionalcancel_by_datestring<date_no_time>Optionaldue_datestring<date_no_time>Optionalinvoicerobject<invoicer_info>Optionalorthographyenum<orthography>Optionalnameobject<person_name>Optionalorthographyenum<orthography>Optionaladdressobject<address_portable>Optionaladmin_area_4stringOptionaladmin_area_3stringOptionaladmin_area_1stringOptionalcountry_codestring<country_code>RequiredNote: The country code for Great Britain isGBand notUKas used in the top-level domain names for that country. Use the `C2` country code for China worldwide for comparable uncontrolled price (CUP) method, bank card, and cross-border transactions.
address_detailsobject<Address Details>Optionalemail_addressstring<restrictive_email_address>OptionalNote: Up to 64 characters are allowed before and 255 characters are allowed after the@sign. However, the generally accepted maximum length for an email address is 254 characters. The pattern verifies that an unquoted@sign exists.
phonesobject<phone_detail>[]Optionalcountry_codestringRequirednational_numberstringRequiredprimary_recipientsobject<recipient_info>[]Optionalbilling_infoobject<billing_info>Optionalorthographyenum<orthography>Optionalnameobject<person_name>Optionalorthographyenum<orthography>Optionaladdressobject<address_portable>Optionaladmin_area_4stringOptionaladmin_area_3stringOptionaladmin_area_1stringOptionalcountry_codestring<country_code>RequiredNote: The country code for Great Britain isGBand notUKas used in the top-level domain names for that country. Use the `C2` country code for China worldwide for comparable uncontrolled price (CUP) method, bank card, and cross-border transactions.
address_detailsobject<Address Details>Optionalemail_addressstring<restrictive_email_address>OptionalNote: Up to 64 characters are allowed before and 255 characters are allowed after the@sign. However, the generally accepted maximum length for an email address is 254 characters. The pattern verifies that an unquoted@sign exists.
phonesobject<phone_detail>[]Optionalcountry_codestringRequirednational_numberstringRequiredlanguagestring<language>Optionalshipping_infoobject<contact_name_address>Optionalorthographyenum<orthography>Optionalnameobject<person_name>Optionalorthographyenum<orthography>Optionaladdressobject<address_portable>Optionaladmin_area_4stringOptionaladmin_area_3stringOptionaladmin_area_1stringOptionalcountry_codestring<country_code>RequiredNote: The country code for Great Britain isGBand notUKas used in the top-level domain names for that country. Use the `C2` country code for China worldwide for comparable uncontrolled price (CUP) method, bank card, and cross-border transactions.
address_detailsobject<Address Details>Optionaladditional_recipientsarray<email_address>OptionalNote: Valid values are email addresses in the `additional_recipients` value associated with the invoice.
unit_amountobject<money>Requiredcurrency_codestring<currency_code>RequiredvaluestringRequiredtaxobject<tax>Optionalpercentstring<percentage>Requireditem_datestring<date_no_time>Optionaldiscountobject<discount>Optionalpercentstring<percentage>Optionalamountobject<money>Optionalcurrency_codestring<currency_code>RequiredvaluestringRequiredunit_of_measureenum<unit_of_measure>Optionalconfigurationobject<configuration>Optionalallow_tipbooleanOptionalNote: This feature is not available for users in `Hong Kong`, `Taiwan`, `India`, or `Japan`.
partial_paymentobject<partial_payment>Optionalminimum_amount_dueobject<money>Optionalcurrency_codestring<currency_code>RequiredvaluestringRequireddiscount_mode_preferenceenum<discount_mode_preference>Optionalthemeobject<configurable_theme>Optionaltemplate_idstringOptionalNote: This is an optional field. If you wish to customize the invoice layout using a specific template, provide a valid template ID here. You can either use an existing template ID or create a new template via the create template API and then use the newly created template's ID.
payment_method_overridesobject<override_payment_method_detail>[]OptionalNote: Payment method availability depends on the merchant's country, the buyer's country, and the invoice amount. Override configurations only take effect if the specified payment method is available for the invoice.
payment_method_typeenum<override_payment_method_type>OptionalNote: To usePAY_BY_BANK, you must first complete the onboarding process. Visit the onboarding page to get started. Once onboarding is complete, you can configurePAY_BY_BANKas a payment method.
rulesobject<override_payment_method_rule>[]Optionalrule_typeenum<override_payment_method_rule_type>RequiredSystem-defined threshold limits by payment method:
- PAY_BY_BANK - $1000
amountobject<amount_summary_detail>Optionalcurrency_codestring<currency_code>OptionalvaluestringOptionalbreakdownobject<amount_with_breakdown>Optionalitem_totalobject<money>Optionalcurrency_codestring<currency_code>RequiredvaluestringRequireddiscountobject<aggregated_discount>Optionalinvoice_discountobject<discount>Optionalpercentstring<percentage>Optionalamountobject<money>Optionalcurrency_codestring<currency_code>RequiredvaluestringRequireditem_discountobject<money>Optionalcurrency_codestring<currency_code>RequiredvaluestringRequiredtax_totalobject<money>Optionalcurrency_codestring<currency_code>RequiredvaluestringRequiredshippingobject<shipping_cost>Optionalamountobject<money>Optionalcurrency_codestring<currency_code>RequiredvaluestringRequiredtaxobject<tax>Optionalpercentstring<percentage>Requiredcustomobject<custom_amount>Optionalamountobject<money>Optionalcurrency_codestring<currency_code>RequiredvaluestringRequiredsettingsobject<invoice_settings>Optionalinvoice_item_settingsobject<invoice_item_setting>[]Optionalfield_nameenum<invoice_item_field>Optionaldisplay_preferenceobject<display_preference>Optionalinvoice_additional_settingsobject<invoice_additional_setting>[]Optionalfield_nameenum<invoice_additional_settings_field>Optionaldisplay_preferenceobject<display_preference>Optionalinvoice_policy_and_agreement_settingsobject<invoice_policy_and_agreement_setting>[]Optionalfield_nameenum<invoice_policy_and_agreement_settings_field>Optionaldisplay_preferenceobject<display_preference>Optionalinvoice_details_settingsobject<invoice_details_setting>[]Optionalfield_nameenum<invoice_details_settings_field>Optionaldisplay_preferenceobject<display_preference>Optionalpaymentsobject<payments>OptionalNo fields are defined.
effective_invoice_totalobject<money>Optionalcurrency_codestring<currency_code>RequiredvaluestringRequiredeffective_due_amountobject<money>Optionalcurrency_codestring<currency_code>RequiredvaluestringRequiredrefundsobject<refunds>OptionalNo fields are defined.
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v2/invoicing/invoices" \ -H "Authorization: Bearer A21AAGHr9qtiRRXH4oYcQokQgV99rGqEIfgrr8xHCclP0OzmD9KVgg5ppIIg1jzJgQkV4wd02svIvBJyg6cLFJjFow_SjBhxQ" \ -H "Content-Type: application/json" \ -d '{ "detail": { "invoice_number": "#123", "reference": "deal-ref", "invoice_date": "2018-11-12", "currency_code": "USD", "note": "Thank you for your business.", "term": "No refunds after 30 days.", "memo": "This is a long contract", "payment_term": { "term_type": "NET_10", "due_date": "2018-11-22" }, "order_details": "Order #12345 placed on January 15, 2023.", "project_details": "Website redesign project for client XYZ Corp.", "service_details": "Consulting services provided from Jan-Mar 2023.", "cancellation_policy": "Services may be cancelled with 14-day notice.", "payment_terms": "Payment due within 10 days of invoice date.", "return_policy": "All sales are final. No returns accepted after 30 days.", "service_agreement": "Services provided as per agreement dated Jan 1, 2023.", "tip_presets": [ { "percent": "15" }, { "percent": "20" }, { "percent": "25" } ] }, "invoicer": { "name": { "given_name": "David", "surname": "Larusso" }, "address": { "address_line_1": "1234 First Street", "address_line_2": "337673 Hillside Court", "admin_area_2": "Anytown", "admin_area_1": "CA", "postal_code": "98765", "country_code": "US" }, "email_address": "merchant@example.com", "phones": [ { "country_code": "001", "national_number": "4085551234", "phone_type": "MOBILE" } ], "website": "www.test.com", "tax_id": "ABcNkWSfb5ICTt73nD3QON1fnnpgNKBy- Jb5SeuGj185MNNw6g", "logo_url": "https://example.com/logo.PNG", "additional_notes": "2-4" }, "primary_recipients": [ { "billing_info": { "name": { "given_name": "Stephanie", "surname": "Meyers" }, "address": { "address_line_1": "1234 Main Street", "admin_area_2": "Anytown", "admin_area_1": "CA", "postal_code": "98765", "country_code": "US" }, "email_address": "bill-me@example.com", "phones": [ { "country_code": "001", "national_number": "4884551234", "phone_type": "HOME" } ], "additional_info_value": "add-info" }, "shipping_info": { "name": { "given_name": "Stephanie", "surname": "Meyers" }, "address": { "address_line_1": "1234 Main Street", "admin_area_2": "Anytown", "admin_area_1": "CA", "postal_code": "98765", "country_code": "US" } } } ], "items": [ { "name": "Yoga Mat", "description": "Elastic mat to practice yoga.", "quantity": "1", "unit_amount": { "currency_code": "USD", "value": "50.00" }, "tax": { "name": "Sales Tax", "percent": "7.25" }, "discount": { "percent": "5" }, "unit_of_measure": "QUANTITY" }, { "name": "Yoga t-shirt", "quantity": "1", "unit_amount": { "currency_code": "USD", "value": "10.00" }, "tax": { "name": "Sales Tax", "percent": "7.25", "tax_note": "Reduced tax rate" }, "discount": { "amount": { "currency_code": "USD", "value": "5.00" } }, "unit_of_measure": "QUANTITY" } ], "configuration": { "partial_payment": { "allow_partial_payment": true, "minimum_amount_due": { "currency_code": "USD", "value": "20.00" } }, "allow_tip": true, "tax_calculated_after_discount": true, "tax_inclusive": false, "show_additional_item_fields": true, "template_id": "TEMP-19V05281TU309413B" }, "amount": { "breakdown": { "custom": { "label": "Packing Charges", "amount": { "currency_code": "USD", "value": "10.00" } }, "shipping": { "amount": { "currency_code": "USD", "value": "10.00" }, "tax": { "name": "Sales Tax", "percent": "7.25" } }, "discount": { "invoice_discount": { "percent": "5" } } } }, "settings": { "invoice_item_settings": [ { "field_name": "ITEM_DESCRIPTION", "display_preference": { "hidden": false } }, { "field_name": "ITEM_DATE", "display_preference": { "hidden": true } }, { "field_name": "ITEM_TAX", "display_preference": { "hidden": false } }, { "field_name": "ITEM_DISCOUNT", "display_preference": { "hidden": false } } ], "invoice_additional_settings": [ { "field_name": "ATTACHMENT", "display_preference": { "hidden": false } }, { "field_name": "MEMO", "display_preference": { "hidden": false } }, { "field_name": "REFERENCE", "display_preference": { "hidden": false } } ], "invoice_policy_and_agreement_settings": [ { "field_name": "TERMS_AND_CONDITIONS", "display_preference": { "hidden": false } }, { "field_name": "PAYMENT_TERMS", "display_preference": { "hidden": false } } ], "invoice_details_settings": [ { "field_name": "ORDER_DETAILS", "display_preference": { "hidden": false } }, { "field_name": "PROJECT_DETAILS", "display_preference": { "hidden": true } } ] } }'{ "id": "INV2-Z56S-5LLA-Q52L-CPZ5", "status": "DRAFT", "detail": { "invoice_number": "#123", "reference": "deal-ref", "invoice_date": "2018-11-12", "currency_code": "USD", "note": "Thank you for your business.", "term": "No refunds after 30 days.", "memo": "This is a long contract", "payment_term": { "term_type": "NET_10", "due_date": "2018-11-22" }, "order_details": "Order #12345 placed on January 15, 2023.", "project_details": "Website redesign project for client XYZ Corp.", "service_details": "Consulting services provided from Jan-Mar 2023.", "cancellation_policy": "Services may be cancelled with 14-day notice.", "payment_terms": "Payment due within 10 days of invoice date.", "return_policy": "All sales are final. No returns accepted after 30 days.", "service_agreement": "Services provided as per agreement dated Jan 1, 2023.", "tip_presets": [ { "percent": "15" }, { "percent": "20" }, { "percent": "25" } ], "metadata": { "create_time": "2018-11-12T08:00:20Z", "recipient_view_url": "https://www.api-m.paypal.com/invoice/p#Z56S5LLAQ52LCPZ5", "invoicer_view_url": "https://www.api-m.paypal.com/invoice/details/INV2-Z56S-5LLA-Q52L-CPZ5" } }, "invoicer": { "name": { "given_name": "David", "surname": "Larusso" }, "address": { "address_line_1": "1234 First Street", "address_line_2": "337673 Hillside Court", "admin_area_2": "Anytown", "admin_area_1": "CA", "postal_code": "98765", "country_code": "US" }, "email_address": "merchant@example.com", "phones": [ { "country_code": "001", "national_number": "4085551234", "phone_type": "MOBILE" } ], "website": "https://example.com", "tax_id": "ABcNkWSfb5ICTt73nD3QON1fnnpgNKBy-Jb5SeuGj185MNNw6g", "logo_url": "https://example.com/logo.PNG", "additional_notes": "2-4" }, "primary_recipients": [ { "billing_info": { "name": { "given_name": "Stephanie", "surname": "Meyers" }, "address": { "address_line_1": "1234 Main Street", "admin_area_2": "Anytown", "admin_area_1": "CA", "postal_code": "98765", "country_code": "US" }, "email_address": "bill-me@example.com", "phones": [ { "country_code": "001", "national_number": "4884551234", "phone_type": "HOME" } ], "additional_info_value": "add-info" }, "shipping_info": { "name": { "given_name": "Stephanie", "surname": "Meyers" }, "address": { "address_line_1": "1234 Main Street", "admin_area_2": "Anytown", "admin_area_1": "CA", "postal_code": "98765", "country_code": "US" } } } ], "items": [ { "name": "Yoga Mat", "description": "Elastic mat to practice yoga.", "quantity": "1", "unit_amount": { "currency_code": "USD", "value": "50.00" }, "tax": { "name": "Sales Tax", "percent": "7.25", "amount": { "currency_code": "USD", "value": "3.27", "tax_note": "Reduced tax rate" } }, "discount": { "percent": "5", "amount": { "currency_code": "USD", "value": "2.5" } }, "unit_of_measure": "QUANTITY" }, { "name": "Yoga T Shirt", "quantity": "1", "unit_amount": { "currency_code": "USD", "value": "10.00" }, "tax": { "name": "Sales Tax", "percent": "7.25", "amount": { "currency_code": "USD", "value": "0.34", "tax_note": "Reduced tax rate" } }, "discount": { "amount": { "currency_code": "USD", "value": "5.00" } }, "unit_of_measure": "QUANTITY" } ], "configuration": { "partial_payment": { "allow_partial_payment": true, "minimum_amount_due": { "currency_code": "USD", "value": "20.00" } }, "allow_tip": true, "allow_only_pay_by_bank": true, "tax_calculated_after_discount": true, "show_additional_item_fields": true, "tax_inclusive": false, "template_id": "TEMP-19V05281TU309413B" }, "amount": { "currency_code": "USD", "value": "74.21", "breakdown": { "item_total": { "currency_code": "USD", "value": "60.00" }, "custom": { "label": "Packing Charges", "amount": { "currency_code": "USD", "value": "10.00" } }, "shipping": { "amount": { "currency_code": "USD", "value": "10.00" }, "tax": { "name": "Sales Tax", "percent": "7.25", "amount": { "currency_code": "USD", "value": "0.73", "tax_note": "Reduced tax rate" } } }, "discount": { "item_discount": { "currency_code": "USD", "value": "-7.50" }, "invoice_discount": { "percent": "5", "amount": { "currency_code": "USD", "value": "-2.63" } } }, "tax_total": { "currency_code": "USD", "value": "4.34" } } }, "due_amount": { "currency_code": "USD", "value": "74.21" }, "settings": { "invoice_item_settings": [ { "field_name": "ITEM_DESCRIPTION", "display_preference": { "hidden": false } }, { "field_name": "ITEM_DATE", "display_preference": { "hidden": true } }, { "field_name": "ITEM_TAX", "display_preference": { "hidden": false } }, { "field_name": "ITEM_DISCOUNT", "display_preference": { "hidden": true } } ] }, "links": [ { "href": "https://api-m.paypal.com/v2/invoicing/invoices/INV2-Z56S-5LLA-Q52L-CPZ5", "rel": "self", "method": "GET" }, { "href": "https://api-m.paypal.com/v2/invoicing/invoices/INV2-Z56S-5LLA-Q52L-CPZ5/send", "rel": "send", "method": "POST" }, { "href": "https://api-m.paypal.com/v2/invoicing/invoices/INV2-Z56S-5LLA-Q52L-CPZ5/update", "rel": "replace", "method": "PUT" }, { "href": "https://api-m.paypal.com/v2/invoicing/invoices/INV2-Z56S-5LLA-Q52L-CPZ5", "rel": "delete", "method": "DELETE" }, { "href": "https://api-m.paypal.com/v2/invoicing/invoices/INV2-Z56S-5LLA-Q52L-CPZ5/payments", "rel": "record-payment", "method": "POST" }, { "href": "https://api-m.paypal.com/v2/invoicing/invoices/INV2-Z56S-5LLA-Q52L-CPZ5/generate-qr-code", "rel": "qr-code", "method": "POST" } ]}