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.Client CredentialsToken URLhttps://api-m.sandbox.paypal.com/v1/oauth2/tokenInheaderScopes
https://uri.paypal.com/services/invoicing/invoices/readwritehttps://uri.paypal.com/services/invoicing/internalapplication/json
TypeScript Definitions
Use the request body type in TypeScript.
plan_detailobject<plan>Requiredfrequencyobject<plan_frequency>Requiredstart_series_datestring<date_no_time>Optionalrecurring_infoobject<recurring_info>Requireddetailobject<recurring_series_detail>Requiredreferencestring<currency_code>Optionalcurrency_codestring<currency_code>Requirednotestring<currency_code>Optionalterms_and_conditionsstring<currency_code>Optionalmemostring<currency_code>Optionalattachmentsobject<file_reference>[]Optionalcreate_timestring<date_time>OptionalNote: The regular expression provides guidance but does not reject all invalid dates.
payment_termobject<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>Requiredvaluestring<percentage>Requiredauto_cancellationobject<auto_cancellation>Optionalcancel_by_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_numberstringRequiredadditional_notesstring<currency_code>Optionalprimary_recipientsobject<recipient_info>[]Requiredbilling_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_numberstringRequiredadditional_infostring<currency_code>Optionallanguagestring<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>Optionalitemsobject<item>[]Optionalnamestring<currency_code>Requireddescriptionstring<currency_code>Optionalunit_amountobject<money>Requiredcurrency_codestring<currency_code>Requiredvaluestring<percentage>Requiredtaxobject<tax>Optionalpercentstring<percentage>Requireditem_datestring<date_no_time>Optionaldiscountobject<discount>Optionalpercentstring<percentage>Optionalamountobject<money>Optionalcurrency_codestring<currency_code>Requiredvaluestring<percentage>Requiredunit_of_measureenum<unit_of_measure>Optionalconfigurationobject<recurring_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>Requiredvaluestring<percentage>Requiredtemplate_idstringOptionalYou 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.
amountobject<amount_summary_detail>Optionalcurrency_codestring<currency_code>Optionalvaluestring<percentage>Optionalbreakdownobject<amount_with_breakdown>Optionalitem_totalobject<money>Optionalcurrency_codestring<currency_code>Requiredvaluestring<percentage>Requireddiscountobject<aggregated_discount>Optionalinvoice_discountobject<discount>Optionalpercentstring<percentage>Optionalamountobject<money>Optionalcurrency_codestring<currency_code>Requiredvaluestring<percentage>Requireditem_discountobject<money>Optionalcurrency_codestring<currency_code>Requiredvaluestring<percentage>Requiredtax_totalobject<money>Optionalcurrency_codestring<currency_code>Requiredvaluestring<percentage>Requiredshippingobject<shipping_cost>Optionalamountobject<money>Optionalcurrency_codestring<currency_code>Requiredvaluestring<percentage>Requiredtaxobject<tax>Optionalpercentstring<percentage>Requiredcustomobject<custom_amount>Optionallabelstring<currency_code>Requiredamountobject<money>Optionalcurrency_codestring<currency_code>Requiredvaluestring<percentage>Requiredapplication/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X PUT "https://example.com/v2/invoicing/recurring-invoices/RI-5VG36420NF0175035" \ -H "Authorization: Bearer A21AAGHr9qtiRRXH4oYcQokQgV99rGqEIfgrr8xHCclP0OzmD9KVgg5ppIIg1jzJgQkV4wd02svIvBJyg6cLFJjFow_SjBhxQ" \ -H "Content-Type: application/json" \ -d '{ "plan_detail": { "total_cycles": 8, "frequency": { "interval_unit": "MONTH", "interval_count": 2 }, "start_series_date": "2026-01-19" }, "recurring_info": { "detail": { "reference": "0002", "currency_code": "USD", "note": "Thank you", "terms_and_conditions": "Your terms and conditions", "memo": "Gift pack", "category_code": "SHIPPABLE", "payment_term": { "term_type": "DUE_ON_RECEIPT" } }, "primary_recipients": [ { "billing_info": { "email_address": "test@paypal.com" } } ], "items": [ { "name": "pen", "quantity": "2", "unit_amount": { "currency_code": "USD", "value": "12.00" }, "unit_of_measure": "QUANTITY" } ], "configuration": { "tax_calculated_after_discount": true, "tax_inclusive": false, "allow_tip": true, "partial_payment": { "allow_partial_payment": true, "minimum_amount_due": { "currency_code": "USD", "value": "2.00" } } } } }'{ "id": "RI-9Y6699772R098892C", "status": "ACTIVE", "plan_detail": { "total_cycles": 8, "frequency": { "interval_unit": "MONTH", "interval_count": 1 }, "start_series_date": "2026-01-19", "completed_cycles": 0 }, "recurring_info": { "detail": { "reference": "0001", "currency_code": "USD", "note": "Thank you", "terms_and_conditions": "Your terms and conditions", "memo": "Gift pack", "category_code": "SHIPPABLE", "payment_term": { "term_type": "DUE_ON_RECEIPT" } }, "primary_recipients": [ { "billing_info": { "email_address": "test@paypal.com" } } ], "items": [ { "id": "ITEM-3LD558161T864042C", "name": "pen", "quantity": "1", "unit_amount": { "currency_code": "USD", "value": "12.00" }, "unit_of_measure": "QUANTITY" } ], "configuration": { "tax_calculated_after_discount": true, "tax_inclusive": false, "allow_tip": true, "partial_payment": { "allow_partial_payment": true, "minimum_amount_due": { "currency_code": "USD", "value": "2.00" } }, "template_id": "TEMP-1B23377148371954V" }, "amount": { "breakdown": { "item_total": { "currency_code": "USD", "value": "12.00" }, "discount": { "invoice_discount": { "amount": { "currency_code": "USD", "value": "0.00" } }, "item_discount": { "currency_code": "USD", "value": "0.00" } }, "tax_total": { "currency_code": "USD", "value": "0.00" } }, "currency_code": "USD", "value": "12.00" } }, "metadata": { "create_time": "2026-01-20T05:17:06Z", "last_update_time": "2026-01-20T05:17:06Z" }, "links": [ { "href": "https://api-m.paypal.com/v2/invoicing/recurring-invoices/RI-8K163274UC7208201", "rel": "self", "method": "GET" }, { "href": "https://api-m.paypal.com/v2/invoicing/recurring-invoices/RI-8K163274UC7208201", "rel": "delete", "method": "DELETE" }, { "href": "https://api-m.paypal.com/v2/invoicing/recurring-invoices/RI-8K163274UC7208201", "rel": "replace", "method": "PUT" }, { "href": "https://api-m.paypal.com/v2/invoicing/recurring-invoices/RI-8K163274UC7208201/cancel", "rel": "cancel", "method": "POST" }, { "href": "https://api-m.paypal.com/v2/invoicing/recurring-invoices/RI-8K163274UC7208201/activate", "rel": "activate", "method": "POST" } ]}