---
title: "Create draft invoice"
method: POST
path: "/v2/invoicing/invoices"
tags: ["invoices"]
---

# Create draft invoice

`POST /v2/invoicing/invoices`

## Request

- Base URL: `https://api-m.paypal.com`
- URL: `https://api-m.paypal.com/v2/invoicing/invoices`
- Auth: OAuth 2
  - Client credentials
  - Token URL: `/v1/oauth2/token` scopes: `https://uri.paypal.com/services/invoicing/invoices/readwrite`
- TypeScript: <https://skmtc.dev/paypal/apis/payments/docs/v2/invoicing/invoices/post.ts> (a function with typed inputs; its response is checked against the schema)

Creates a draft invoice. To move the invoice from a draft to payable state, you must <a href="#invoices_send">send the invoice</a>.<br/><br/>In the JSON request body, include invoice details including merchant information. The <code>invoice</code> object must include an <code>items</code> array.<blockquote><strong>Note:</strong> The merchant that you specify in an invoice must have a PayPal account in good standing.</blockquote>.

## Request body

- Invoice: The invoice details which includes all information of the invoice like items, billing information.
  - `id` string: The ID of the invoice.
  - `parent_id` string: The parent ID to an invoice that defines the group invoice to which the invoice is related.
  - `status` 'DRAFT' | 'SENT' | 'SCHEDULED' | 'PAID' | 'MARKED_AS_PAID' | 'CANCELLED' | 'REFUNDED' | 'PARTIALLY_PAID' | 'PARTIALLY_REFUNDED' | 'MARKED_AS_REFUNDED' | 'UNPAID' | 'PAYMENT_PENDING' | 'AUTO_CANCELLED' | 'PAID_EXTERNAL' | 'REFUNDED_EXTERNAL' | 'SHARED': The status of the invoice.
  - `detail` InvoiceDetail, required: The details of the invoice like notes, terms and conditions, memo, attachments.
    - `reference` string: The reference data. Includes a Purchase Order (PO) number.
    - `currency_code` string, ppaas_common_currency_code_v2, required: The [three-character ISO-4217 currency code](/docs/integration/direct/rest/currency-codes/) that identifies the currency.
    - `note` string: A note to the invoice recipient. Also appears on the invoice notification email.
    - `terms_and_conditions` string: The general terms of the invoice. Can include return or cancellation policy and other terms and conditions.
    - `memo` string: A private bookkeeping memo for the user.
    - `attachments` FileReference[]: An array of PayPal IDs for the files that are attached to an invoice.
      - `id` string: The ID of the referenced file.
      - `reference_url` string, uri: The reference URL for the file.
      - `content_type` string: The [Internet Assigned Numbers Authority (IANA) media type of the file](https://www.iana.org/assignments/media-types/media-types.xhtml).
      - `create_time` string, ppaas_date_time_v3: The date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Seconds are required while fractional seconds are optional.<blockquote><strong>Note:</strong> The regular expression provides guidance but does not reject all invalid dates.</blockquote>
      - `size` string: The size of the file, in bytes.
    - `invoice_number` string: The invoice number. Default is the number that is auto-incremented number from the last number.
    - `invoice_date` string, ppaas_date_notime_v2: The stand-alone date, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). To represent special legal values, such as a date of birth, you should use dates with no associated time or time-zone data. Whenever possible, use the standard `date_time` type. This regular expression does not validate all dates. For example, February 31 is valid and nothing is known about leap years.
    - `payment_term` InvoicePaymentTerm: The payment term of the invoice. Payment can be due upon receipt, a specified date, or in a set number of days.
      - `term_type` 'DUE_ON_RECEIPT' | 'DUE_ON_DATE_SPECIFIED' | 'NET_10' | 'NET_15' | 'NET_30' | 'NET_45' | 'NET_60' | 'NET_90' | 'NO_DUE_DATE': The payment term. Payment can be due upon receipt, a specified date, or in a set number of days.
      - `due_date` string, ppaas_date_notime_v2: The stand-alone date, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). To represent special legal values, such as a date of birth, you should use dates with no associated time or time-zone data. Whenever possible, use the standard `date_time` type. This regular expression does not validate all dates. For example, February 31 is valid and nothing is known about leap years.
    - `metadata` Metadata: The audit metadata. Captures all template actions on create and update.
      - `create_time` string, ppaas_date_time_v3: The date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Seconds are required while fractional seconds are optional.<blockquote><strong>Note:</strong> The regular expression provides guidance but does not reject all invalid dates.</blockquote>
      - `created_by` string: The email address of the account that created the resource.
      - `last_update_time` string, ppaas_date_time_v3: The date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Seconds are required while fractional seconds are optional.<blockquote><strong>Note:</strong> The regular expression provides guidance but does not reject all invalid dates.</blockquote>
      - `last_updated_by` string: The email address of the account that last edited the resource.
      - `cancel_time` string, ppaas_date_time_v3: The date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Seconds are required while fractional seconds are optional.<blockquote><strong>Note:</strong> The regular expression provides guidance but does not reject all invalid dates.</blockquote>
      - `cancelled_by` string: The actor who canceled the resource.
      - `first_sent_time` string, ppaas_date_time_v3: The date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Seconds are required while fractional seconds are optional.<blockquote><strong>Note:</strong> The regular expression provides guidance but does not reject all invalid dates.</blockquote>
      - `last_sent_time` string, ppaas_date_time_v3: The date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Seconds are required while fractional seconds are optional.<blockquote><strong>Note:</strong> The regular expression provides guidance but does not reject all invalid dates.</blockquote>
      - `last_sent_by` string: The email address of the account that last sent the resource.
      - `created_by_flow` 'MULTIPLE_RECIPIENTS_GROUP' | 'BATCH' | 'REGULAR_SINGLE': The frequency at which the invoice is sent:<ul><li>Multiple recipient. Sent to multiple recipients.</li><li>Batch. Sent in a batch.</li><li>Regular single. Sent one time to a single recipient.</li></ul>
      - `recipient_view_url` string, uri: The URL for the invoice payer view hosted on paypal.com.
      - `invoicer_view_url` string, uri: The URL for the invoice merchant view hosted on paypal.com.
  - `invoicer` InvoicerInfo: The business name of the party.
    - `business_name` string: Required. The business name of the party.
    - `name` Name: The name of the party.
      - `prefix` string: The prefix, or title, to the party's name.
      - `given_name` string: When the party is a person, the party's given, or first, name.
      - `surname` string: When the party is a person, the party's surname or family name. Also known as the last name. Required when the party is a person. Use also to store multiple surnames including the matronymic, or mother's, surname.
      - `middle_name` string: When the party is a person, the party's middle name. Use also to store multiple middle names including the patronymic, or father's, middle name.
      - `suffix` string: The suffix for the party's name.
      - `alternate_full_name` string: DEPRECATED. The party's alternate name. Can be a business name, nickname, or any other name that cannot be split into first, last name. Required when the party is a business.
      - `full_name` string: When the party is a person, the party's full name.
    - `address` AddressPortable: The portable international postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).
      - `address_line_1` string: The first line of the address. For example, number or street. For example, `173 Drury Lane`. Required for data entry and compliance and risk checks. Must contain the full address.
      - `address_line_2` string: The second line of the address. For example, suite or apartment number.
      - `address_line_3` string: The third line of the address, if needed. For example, a street complement for Brazil, direction text, such as `next to Walmart`, or a landmark in an Indian address.
      - `admin_area_4` string: The neighborhood, ward, or district. Smaller than `admin_area_level_3` or `sub_locality`. Value is:<ul><li>The postal sorting code for Guernsey and many French territories, such as French Guiana.</li><li>The fine-grained administrative levels in China.</li></ul>
      - `admin_area_3` string: A sub-locality, suburb, neighborhood, or district. Smaller than `admin_area_level_2`. Value is:<ul><li>Brazil. Suburb, bairro, or neighborhood.</li><li>India. Sub-locality or district. Street name information is not always available but a sub-locality or district can be a very small area.</li></ul>
      - `admin_area_2` string: A city, town, or village. Smaller than `admin_area_level_1`.
      - `admin_area_1` string: The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision. Format for postal delivery. For example, `CA` and not `California`. Value, by country, is:<ul><li>UK. A county.</li><li>US. A state.</li><li>Canada. A province.</li><li>Japan. A prefecture.</li><li>Switzerland. A kanton.</li></ul>
      - `postal_code` string: The postal code, which is the zip code or equivalent. Typically required for countries with a postal code or an equivalent. See [postal code](https://en.wikipedia.org/wiki/Postal_code).
      - `country_code` string, ppaas_common_country_code_v2, required: The [two-character ISO 3166-1 code](/docs/integration/direct/rest/country-codes/) that identifies the country or region.<blockquote><strong>Note:</strong> The country code for Great Britain is <code>GB</code> and not <code>UK</code> as 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.</blockquote>
      - `address_details` AddressDetails: The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third party and open source. Redundant with core fields.<br/>For example, `address_portable.address_line_1` is usually a combination of `address_details.street_number`, `street_name`, and `street_type`.
        - `street_number` string: The street number.
        - `street_name` string: The street name. Just `Drury` in `Drury Lane`.
        - `street_type` string: The street type. For example, avenue, boulevard, road, or expressway.
        - `delivery_service` string: The delivery service. Post office box, bag number, or post office name.
        - `building_name` string: A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, <code>Craven House</code>.
        - `sub_building` string: The first-order entity below a named building or location that represents the sub-premises. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.
    - `email_address` string: The internationalized email address with more restrictive rules. This version restricts the local-part to a dot-atom as defined in https://www.ietf.org/rfc/rfc5322.txt. It does not allow for a quoted-string or an obs-local-part. <ul><li>Allows alphanumeric and RFC-allowed special characters, !#$%&'*+-/=?^_`{|}~</li><li>Ensures that the local part does not start with dot (.), have consecutive dots, or end with dot. Ensures that the domain part does not have consecutive dots.</li><li>Ensures that the local part does not exceed 64 characters.</li></ul><blockquote><strong>Note:</strong> Up to 64 characters are allowed before and 255 characters are allowed after the <code>@</code> sign. However, the generally accepted maximum length for an email address is 254 characters. The pattern verifies that an unquoted <code>@</code> sign exists.</blockquote>
    - `phones` PhoneDetail[]: An array of invoicer's phone numbers. The invoicer can choose to hide the phone number on the invoice.
      - `country_code` string, required: The country calling code (CC), in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the CC and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).
      - `national_number` string, required: The national number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).
      - `extension_number` string: The extension number.
      - `phone_type` 'FAX' | 'HOME' | 'MOBILE' | 'OTHER' | 'PAGER', required: The phone type.
    - `website` string, uri: The invoicer's website.
    - `tax_id` string: The invoicer's tax ID.
    - `additional_notes` string: Any additional information. Includes business hours.
    - `logo_url` string, uri: The full URL to an external logo image. The logo image must not be larger than 250 pixels wide by 90 pixels high.
  - `primary_recipients` RecipientInfo[]: The billing and shipping information. Includes name, email, address, phone and language.
    - `billing_info` BillingInfo: The business name of the party.
      - `business_name` string: Required. The business name of the party.
      - `name` Name: The name of the party.
        - `prefix` string: The prefix, or title, to the party's name.
        - `given_name` string: When the party is a person, the party's given, or first, name.
        - `surname` string: When the party is a person, the party's surname or family name. Also known as the last name. Required when the party is a person. Use also to store multiple surnames including the matronymic, or mother's, surname.
        - `middle_name` string: When the party is a person, the party's middle name. Use also to store multiple middle names including the patronymic, or father's, middle name.
        - `suffix` string: The suffix for the party's name.
        - `alternate_full_name` string: DEPRECATED. The party's alternate name. Can be a business name, nickname, or any other name that cannot be split into first, last name. Required when the party is a business.
        - `full_name` string: When the party is a person, the party's full name.
      - `address` AddressPortable: The portable international postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).
        - `address_line_1` string: The first line of the address. For example, number or street. For example, `173 Drury Lane`. Required for data entry and compliance and risk checks. Must contain the full address.
        - `address_line_2` string: The second line of the address. For example, suite or apartment number.
        - `address_line_3` string: The third line of the address, if needed. For example, a street complement for Brazil, direction text, such as `next to Walmart`, or a landmark in an Indian address.
        - `admin_area_4` string: The neighborhood, ward, or district. Smaller than `admin_area_level_3` or `sub_locality`. Value is:<ul><li>The postal sorting code for Guernsey and many French territories, such as French Guiana.</li><li>The fine-grained administrative levels in China.</li></ul>
        - `admin_area_3` string: A sub-locality, suburb, neighborhood, or district. Smaller than `admin_area_level_2`. Value is:<ul><li>Brazil. Suburb, bairro, or neighborhood.</li><li>India. Sub-locality or district. Street name information is not always available but a sub-locality or district can be a very small area.</li></ul>
        - `admin_area_2` string: A city, town, or village. Smaller than `admin_area_level_1`.
        - `admin_area_1` string: The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision. Format for postal delivery. For example, `CA` and not `California`. Value, by country, is:<ul><li>UK. A county.</li><li>US. A state.</li><li>Canada. A province.</li><li>Japan. A prefecture.</li><li>Switzerland. A kanton.</li></ul>
        - `postal_code` string: The postal code, which is the zip code or equivalent. Typically required for countries with a postal code or an equivalent. See [postal code](https://en.wikipedia.org/wiki/Postal_code).
        - `country_code` string, ppaas_common_country_code_v2, required: The [two-character ISO 3166-1 code](/docs/integration/direct/rest/country-codes/) that identifies the country or region.<blockquote><strong>Note:</strong> The country code for Great Britain is <code>GB</code> and not <code>UK</code> as 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.</blockquote>
        - `address_details` AddressDetails: The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third party and open source. Redundant with core fields.<br/>For example, `address_portable.address_line_1` is usually a combination of `address_details.street_number`, `street_name`, and `street_type`.
          - `street_number` string: The street number.
          - `street_name` string: The street name. Just `Drury` in `Drury Lane`.
          - `street_type` string: The street type. For example, avenue, boulevard, road, or expressway.
          - `delivery_service` string: The delivery service. Post office box, bag number, or post office name.
          - `building_name` string: A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, <code>Craven House</code>.
          - `sub_building` string: The first-order entity below a named building or location that represents the sub-premises. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.
      - `email_address` string: The internationalized email address with more restrictive rules. This version restricts the local-part to a dot-atom as defined in https://www.ietf.org/rfc/rfc5322.txt. It does not allow for a quoted-string or an obs-local-part. <ul><li>Allows alphanumeric and RFC-allowed special characters, !#$%&'*+-/=?^_`{|}~</li><li>Ensures that the local part does not start with dot (.), have consecutive dots, or end with dot. Ensures that the domain part does not have consecutive dots.</li><li>Ensures that the local part does not exceed 64 characters.</li></ul><blockquote><strong>Note:</strong> Up to 64 characters are allowed before and 255 characters are allowed after the <code>@</code> sign. However, the generally accepted maximum length for an email address is 254 characters. The pattern verifies that an unquoted <code>@</code> sign exists.</blockquote>
      - `phones` PhoneDetail[]: The invoice recipient's phone numbers. Extension number is not supported.
        - `country_code` string, required: The country calling code (CC), in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the CC and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).
        - `national_number` string, required: The national number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).
        - `extension_number` string: The extension number.
        - `phone_type` 'FAX' | 'HOME' | 'MOBILE' | 'OTHER' | 'PAGER', required: The phone type.
      - `additional_info` string: Any additional information about the recipient.
      - `language` string, ppaas_common_language_v3: The [language tag](https://tools.ietf.org/html/bcp47#section-2) for the language in which to localize the error-related strings, such as messages, issues, and suggested actions. The tag is made up of the [ISO 639-2 language code](https://www.loc.gov/standards/iso639-2/php/code_list.php), the optional [ISO-15924 script tag](https://www.unicode.org/iso15924/codelists.html), and the [ISO-3166 alpha-2 country code](/api/rest/reference/country-codes/) or [M49 region code](https://unstats.un.org/unsd/methodology/m49/).
    - `shipping_info` ContactNameAddress: The business name of the party.
      - `business_name` string: Required. The business name of the party.
      - `name` Name: The name of the party.
        - `prefix` string: The prefix, or title, to the party's name.
        - `given_name` string: When the party is a person, the party's given, or first, name.
        - `surname` string: When the party is a person, the party's surname or family name. Also known as the last name. Required when the party is a person. Use also to store multiple surnames including the matronymic, or mother's, surname.
        - `middle_name` string: When the party is a person, the party's middle name. Use also to store multiple middle names including the patronymic, or father's, middle name.
        - `suffix` string: The suffix for the party's name.
        - `alternate_full_name` string: DEPRECATED. The party's alternate name. Can be a business name, nickname, or any other name that cannot be split into first, last name. Required when the party is a business.
        - `full_name` string: When the party is a person, the party's full name.
      - `address` AddressPortable: The portable international postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).
        - `address_line_1` string: The first line of the address. For example, number or street. For example, `173 Drury Lane`. Required for data entry and compliance and risk checks. Must contain the full address.
        - `address_line_2` string: The second line of the address. For example, suite or apartment number.
        - `address_line_3` string: The third line of the address, if needed. For example, a street complement for Brazil, direction text, such as `next to Walmart`, or a landmark in an Indian address.
        - `admin_area_4` string: The neighborhood, ward, or district. Smaller than `admin_area_level_3` or `sub_locality`. Value is:<ul><li>The postal sorting code for Guernsey and many French territories, such as French Guiana.</li><li>The fine-grained administrative levels in China.</li></ul>
        - `admin_area_3` string: A sub-locality, suburb, neighborhood, or district. Smaller than `admin_area_level_2`. Value is:<ul><li>Brazil. Suburb, bairro, or neighborhood.</li><li>India. Sub-locality or district. Street name information is not always available but a sub-locality or district can be a very small area.</li></ul>
        - `admin_area_2` string: A city, town, or village. Smaller than `admin_area_level_1`.
        - `admin_area_1` string: The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision. Format for postal delivery. For example, `CA` and not `California`. Value, by country, is:<ul><li>UK. A county.</li><li>US. A state.</li><li>Canada. A province.</li><li>Japan. A prefecture.</li><li>Switzerland. A kanton.</li></ul>
        - `postal_code` string: The postal code, which is the zip code or equivalent. Typically required for countries with a postal code or an equivalent. See [postal code](https://en.wikipedia.org/wiki/Postal_code).
        - `country_code` string, ppaas_common_country_code_v2, required: The [two-character ISO 3166-1 code](/docs/integration/direct/rest/country-codes/) that identifies the country or region.<blockquote><strong>Note:</strong> The country code for Great Britain is <code>GB</code> and not <code>UK</code> as 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.</blockquote>
        - `address_details` AddressDetails: The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third party and open source. Redundant with core fields.<br/>For example, `address_portable.address_line_1` is usually a combination of `address_details.street_number`, `street_name`, and `street_type`.
          - `street_number` string: The street number.
          - `street_name` string: The street name. Just `Drury` in `Drury Lane`.
          - `street_type` string: The street type. For example, avenue, boulevard, road, or expressway.
          - `delivery_service` string: The delivery service. Post office box, bag number, or post office name.
          - `building_name` string: A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, <code>Craven House</code>.
          - `sub_building` string: The first-order entity below a named building or location that represents the sub-premises. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.
  - `additional_recipients` EmailAddress[]: An array of one or more CC: emails to which notifications are sent. If you omit this parameter, a notification is sent to all CC: email addresses that are part of the invoice.<blockquote><strong>Note:</strong> Valid values are email addresses in the `additional_recipients` value associated with the invoice.</blockquote>
  - `items` Item[]: An array of invoice line item information.
    - `id` string: The ID of the invoice line item.
    - `name` string, required: The item name for the invoice line item.
    - `description` string: The item description for the invoice line item.
    - `quantity` string, required: The quantity of the item that the invoicer provides to the payer. Value is from `-1000000` to `1000000`. Supports up to five decimal places.
    - `unit_amount` Money, required: The currency and amount for a financial transaction, such as a balance or payment due.
      - `currency_code` string, ppaas_common_currency_code_v2, required: The [three-character ISO-4217 currency code](/docs/integration/direct/rest/currency-codes/) that identifies the currency.
      - `value` string, required: The value, which might be:<ul><li>An integer for currencies like `JPY` that are not typically fractional.</li><li>A decimal fraction for currencies like `TND` that are subdivided into thousandths.</li></ul>For the required number of decimal places for a currency code, see [Currency Codes](/docs/integration/direct/rest/currency-codes/).
    - `tax` Tax: The tax information. Includes the tax name and tax rate of invoice items. The tax amount is added to the item total.
      - `name` string, required: The name of the tax applied on the invoice items.
      - `percent` string, ppaas_common_percentage_v2, required: The percentage, as a fixed-point, signed decimal number. For example, define a 19.99% interest rate as `19.99`.
      - `amount` Money: The currency and amount for a financial transaction, such as a balance or payment due.
        - `currency_code` string, ppaas_common_currency_code_v2, required: The [three-character ISO-4217 currency code](/docs/integration/direct/rest/currency-codes/) that identifies the currency.
        - `value` string, required: The value, which might be:<ul><li>An integer for currencies like `JPY` that are not typically fractional.</li><li>A decimal fraction for currencies like `TND` that are subdivided into thousandths.</li></ul>For the required number of decimal places for a currency code, see [Currency Codes](/docs/integration/direct/rest/currency-codes/).
      - `tax_note` string: The tax note used to track the tax related data.
    - `item_date` string, ppaas_date_notime_v2: The stand-alone date, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). To represent special legal values, such as a date of birth, you should use dates with no associated time or time-zone data. Whenever possible, use the standard `date_time` type. This regular expression does not validate all dates. For example, February 31 is valid and nothing is known about leap years.
    - `discount` Discount: The discount as a percent or amount at invoice level. The invoice discount amount is subtracted from the item total.
      - `percent` string, ppaas_common_percentage_v2: The percentage, as a fixed-point, signed decimal number. For example, define a 19.99% interest rate as `19.99`.
      - `amount` Money: The currency and amount for a financial transaction, such as a balance or payment due.
        - `currency_code` string, ppaas_common_currency_code_v2, required: The [three-character ISO-4217 currency code](/docs/integration/direct/rest/currency-codes/) that identifies the currency.
        - `value` string, required: The value, which might be:<ul><li>An integer for currencies like `JPY` that are not typically fractional.</li><li>A decimal fraction for currencies like `TND` that are subdivided into thousandths.</li></ul>For the required number of decimal places for a currency code, see [Currency Codes](/docs/integration/direct/rest/currency-codes/).
    - `unit_of_measure` 'QUANTITY' | 'HOURS' | 'AMOUNT': The unit of measure for the invoiced item.
  - `configuration` Configuration: The template configuration details. Includes tax information, tip, and partial payment.
    - `tax_calculated_after_discount` boolean: Indicates whether the tax is calculated before or after a discount. If `false`, the tax is calculated before a discount. If `true`, the tax is calculated after a discount.
    - `tax_inclusive` boolean: Indicates whether the unit price includes tax.
    - `allow_tip` boolean: Indicates whether the invoice enables the customer to enter a tip amount during payment. If `true`, the invoice shows a tip amount field so that the customer can enter a tip amount. If `false`, the invoice does not show a tip amount field.<blockquote><strong>Note:</strong> This feature is not available for users in `Hong Kong`, `Taiwan`, `India`, or `Japan`.</blockquote>
    - `partial_payment` PartialPayment: The partial payment details. Includes the minimum amount that the invoicer expects from the payer.
      - `allow_partial_payment` boolean: Indicates whether the invoice allows a partial payment. If `false`, the invoice must be paid in full. If `true`, the invoice allows partial payments.<blockquote><strong>Note:</strong> This feature is not available for users in `India`, `Brazil`, or `Israel`.</blockquote>
      - `minimum_amount_due` Money: The currency and amount for a financial transaction, such as a balance or payment due.
        - `currency_code` string, ppaas_common_currency_code_v2, required: The [three-character ISO-4217 currency code](/docs/integration/direct/rest/currency-codes/) that identifies the currency.
        - `value` string, required: The value, which might be:<ul><li>An integer for currencies like `JPY` that are not typically fractional.</li><li>A decimal fraction for currencies like `TND` that are subdivided into thousandths.</li></ul>For the required number of decimal places for a currency code, see [Currency Codes](/docs/integration/direct/rest/currency-codes/).
    - `has_conditional_rule` boolean: Indicates whether conditional pricing rules are applied to the invoice. If `true`, pricing rules (such as discounts or surcharges based on specific conditions) are applied. If `false`, no conditional pricing rules are applied.
    - `template_id` string: The template ID. The template determines the layout of the invoice. Includes which fields to show and hide.<blockquote><strong>Note:</strong> 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.</blockquote>
  - `amount` AmountSummaryDetail: The invoice amount summary of item total, discount, tax total, and shipping.
    - `currency_code` string, ppaas_common_currency_code_v2: The [three-character ISO-4217 currency code](/docs/integration/direct/rest/currency-codes/) that identifies the currency.
    - `value` string: The value, which might be:<ul><li>An integer for currencies like `JPY` that are not typically fractional.</li><li>A decimal fraction for currencies like `TND` that are subdivided into thousandths.</li></ul>For the required number of decimal places for a currency code, see [Currency Codes](/docs/integration/direct/rest/currency-codes/).
    - `breakdown` AmountWithBreakdown: The breakdown of the amount. Includes total item amount, total tax amount, custom amount, and shipping and discounts, if any.
      - `item_total` Money: The currency and amount for a financial transaction, such as a balance or payment due.
        - `currency_code` string, ppaas_common_currency_code_v2, required: The [three-character ISO-4217 currency code](/docs/integration/direct/rest/currency-codes/) that identifies the currency.
        - `value` string, required: The value, which might be:<ul><li>An integer for currencies like `JPY` that are not typically fractional.</li><li>A decimal fraction for currencies like `TND` that are subdivided into thousandths.</li></ul>For the required number of decimal places for a currency code, see [Currency Codes](/docs/integration/direct/rest/currency-codes/).
      - `discount` AggregatedDiscount: The discount. Can be an item- or invoice-level discount, or both. Can be applied as a percent or amount. If you provide both amount and percent, amount takes precedent.
        - `invoice_discount` Discount: The discount as a percent or amount at invoice level. The invoice discount amount is subtracted from the item total.
          - `percent` string, ppaas_common_percentage_v2: The percentage, as a fixed-point, signed decimal number. For example, define a 19.99% interest rate as `19.99`.
          - `amount` Money: The currency and amount for a financial transaction, such as a balance or payment due.
            - `currency_code` string, ppaas_common_currency_code_v2, required: The [three-character ISO-4217 currency code](/docs/integration/direct/rest/currency-codes/) that identifies the currency.
            - `value` string, required: The value, which might be:<ul><li>An integer for currencies like `JPY` that are not typically fractional.</li><li>A decimal fraction for currencies like `TND` that are subdivided into thousandths.</li></ul>For the required number of decimal places for a currency code, see [Currency Codes](/docs/integration/direct/rest/currency-codes/).
        - `item_discount` Money: The currency and amount for a financial transaction, such as a balance or payment due.
          - `currency_code` string, ppaas_common_currency_code_v2, required: The [three-character ISO-4217 currency code](/docs/integration/direct/rest/currency-codes/) that identifies the currency.
          - `value` string, required: The value, which might be:<ul><li>An integer for currencies like `JPY` that are not typically fractional.</li><li>A decimal fraction for currencies like `TND` that are subdivided into thousandths.</li></ul>For the required number of decimal places for a currency code, see [Currency Codes](/docs/integration/direct/rest/currency-codes/).
      - `tax_total` Money: The currency and amount for a financial transaction, such as a balance or payment due.
        - `currency_code` string, ppaas_common_currency_code_v2, required: The [three-character ISO-4217 currency code](/docs/integration/direct/rest/currency-codes/) that identifies the currency.
        - `value` string, required: The value, which might be:<ul><li>An integer for currencies like `JPY` that are not typically fractional.</li><li>A decimal fraction for currencies like `TND` that are subdivided into thousandths.</li></ul>For the required number of decimal places for a currency code, see [Currency Codes](/docs/integration/direct/rest/currency-codes/).
      - `shipping` ShippingCost: The shipping fee for all items. Includes tax on shipping.
        - `amount` Money: The currency and amount for a financial transaction, such as a balance or payment due.
          - `currency_code` string, ppaas_common_currency_code_v2, required: The [three-character ISO-4217 currency code](/docs/integration/direct/rest/currency-codes/) that identifies the currency.
          - `value` string, required: The value, which might be:<ul><li>An integer for currencies like `JPY` that are not typically fractional.</li><li>A decimal fraction for currencies like `TND` that are subdivided into thousandths.</li></ul>For the required number of decimal places for a currency code, see [Currency Codes](/docs/integration/direct/rest/currency-codes/).
        - `tax` Tax: The tax information. Includes the tax name and tax rate of invoice items. The tax amount is added to the item total.
          - `name` string, required: The name of the tax applied on the invoice items.
          - `percent` string, ppaas_common_percentage_v2, required: The percentage, as a fixed-point, signed decimal number. For example, define a 19.99% interest rate as `19.99`.
          - `amount` Money: The currency and amount for a financial transaction, such as a balance or payment due.
            - `currency_code` string, ppaas_common_currency_code_v2, required: The [three-character ISO-4217 currency code](/docs/integration/direct/rest/currency-codes/) that identifies the currency.
            - `value` string, required: The value, which might be:<ul><li>An integer for currencies like `JPY` that are not typically fractional.</li><li>A decimal fraction for currencies like `TND` that are subdivided into thousandths.</li></ul>For the required number of decimal places for a currency code, see [Currency Codes](/docs/integration/direct/rest/currency-codes/).
          - `tax_note` string: The tax note used to track the tax related data.
      - `custom` CustomAmount: The custom amount to apply to an invoice. If you include a label, you must include a custom amount.
        - `label` string, required: The label to the custom amount of the invoice.
        - `amount` Money: The currency and amount for a financial transaction, such as a balance or payment due.
          - `currency_code` string, ppaas_common_currency_code_v2, required: The [three-character ISO-4217 currency code](/docs/integration/direct/rest/currency-codes/) that identifies the currency.
          - `value` string, required: The value, which might be:<ul><li>An integer for currencies like `JPY` that are not typically fractional.</li><li>A decimal fraction for currencies like `TND` that are subdivided into thousandths.</li></ul>For the required number of decimal places for a currency code, see [Currency Codes](/docs/integration/direct/rest/currency-codes/).
  - `due_amount` Money: The currency and amount for a financial transaction, such as a balance or payment due.
    - `currency_code` string, ppaas_common_currency_code_v2, required: The [three-character ISO-4217 currency code](/docs/integration/direct/rest/currency-codes/) that identifies the currency.
    - `value` string, required: The value, which might be:<ul><li>An integer for currencies like `JPY` that are not typically fractional.</li><li>A decimal fraction for currencies like `TND` that are subdivided into thousandths.</li></ul>For the required number of decimal places for a currency code, see [Currency Codes](/docs/integration/direct/rest/currency-codes/).
  - `gratuity` Money: The currency and amount for a financial transaction, such as a balance or payment due.
    - `currency_code` string, ppaas_common_currency_code_v2, required: The [three-character ISO-4217 currency code](/docs/integration/direct/rest/currency-codes/) that identifies the currency.
    - `value` string, required: The value, which might be:<ul><li>An integer for currencies like `JPY` that are not typically fractional.</li><li>A decimal fraction for currencies like `TND` that are subdivided into thousandths.</li></ul>For the required number of decimal places for a currency code, see [Currency Codes](/docs/integration/direct/rest/currency-codes/).
  - `payments` Payments: An array of payments registered against the invoice.
    - `paid_amount` Money: The currency and amount for a financial transaction, such as a balance or payment due.
      - `currency_code` string, ppaas_common_currency_code_v2, required: The [three-character ISO-4217 currency code](/docs/integration/direct/rest/currency-codes/) that identifies the currency.
      - `value` string, required: The value, which might be:<ul><li>An integer for currencies like `JPY` that are not typically fractional.</li><li>A decimal fraction for currencies like `TND` that are subdivided into thousandths.</li></ul>For the required number of decimal places for a currency code, see [Currency Codes](/docs/integration/direct/rest/currency-codes/).
    - `transactions` PaymentDetail[]: An array of payment details for the invoice. The payment details of the invoice like payment type, method, date, discount and transaction type.
      - `type` 'PAYPAL' | 'EXTERNAL': The payment type. Can be PayPal or an external payment. Includes cash or a check.
      - `payment_id` string: The ID for a PayPal payment transaction. Required for the `PAYPAL` payment type.
      - `payment_date` string, ppaas_date_notime_v2: The stand-alone date, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). To represent special legal values, such as a date of birth, you should use dates with no associated time or time-zone data. Whenever possible, use the standard `date_time` type. This regular expression does not validate all dates. For example, February 31 is valid and nothing is known about leap years.
      - `payment_date_time` string, ppaas_date_time_v3: The date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Seconds are required while fractional seconds are optional.<blockquote><strong>Note:</strong> The regular expression provides guidance but does not reject all invalid dates.</blockquote>
      - `method` 'BANK_TRANSFER' | 'CASH' | 'CHECK' | 'CREDIT_CARD' | 'DEBIT_CARD' | 'PAYPAL' | 'WIRE_TRANSFER' | 'OTHER', required: The payment mode or method through which the invoicer can accept the payments.
      - `note` string: A note associated with an external cash or check payment.
      - `amount` Money: The currency and amount for a financial transaction, such as a balance or payment due.
        - `currency_code` string, ppaas_common_currency_code_v2, required: The [three-character ISO-4217 currency code](/docs/integration/direct/rest/currency-codes/) that identifies the currency.
        - `value` string, required: The value, which might be:<ul><li>An integer for currencies like `JPY` that are not typically fractional.</li><li>A decimal fraction for currencies like `TND` that are subdivided into thousandths.</li></ul>For the required number of decimal places for a currency code, see [Currency Codes](/docs/integration/direct/rest/currency-codes/).
      - `shipping_info` ContactNameAddress: The business name of the party.
        - `business_name` string: Required. The business name of the party.
        - `name` Name: The name of the party.
          - `prefix` string: The prefix, or title, to the party's name.
          - `given_name` string: When the party is a person, the party's given, or first, name.
          - `surname` string: When the party is a person, the party's surname or family name. Also known as the last name. Required when the party is a person. Use also to store multiple surnames including the matronymic, or mother's, surname.
          - `middle_name` string: When the party is a person, the party's middle name. Use also to store multiple middle names including the patronymic, or father's, middle name.
          - `suffix` string: The suffix for the party's name.
          - `alternate_full_name` string: DEPRECATED. The party's alternate name. Can be a business name, nickname, or any other name that cannot be split into first, last name. Required when the party is a business.
          - `full_name` string: When the party is a person, the party's full name.
        - `address` AddressPortable: The portable international postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).
          - `address_line_1` string: The first line of the address. For example, number or street. For example, `173 Drury Lane`. Required for data entry and compliance and risk checks. Must contain the full address.
          - `address_line_2` string: The second line of the address. For example, suite or apartment number.
          - `address_line_3` string: The third line of the address, if needed. For example, a street complement for Brazil, direction text, such as `next to Walmart`, or a landmark in an Indian address.
          - `admin_area_4` string: The neighborhood, ward, or district. Smaller than `admin_area_level_3` or `sub_locality`. Value is:<ul><li>The postal sorting code for Guernsey and many French territories, such as French Guiana.</li><li>The fine-grained administrative levels in China.</li></ul>
          - `admin_area_3` string: A sub-locality, suburb, neighborhood, or district. Smaller than `admin_area_level_2`. Value is:<ul><li>Brazil. Suburb, bairro, or neighborhood.</li><li>India. Sub-locality or district. Street name information is not always available but a sub-locality or district can be a very small area.</li></ul>
          - `admin_area_2` string: A city, town, or village. Smaller than `admin_area_level_1`.
          - `admin_area_1` string: The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision. Format for postal delivery. For example, `CA` and not `California`. Value, by country, is:<ul><li>UK. A county.</li><li>US. A state.</li><li>Canada. A province.</li><li>Japan. A prefecture.</li><li>Switzerland. A kanton.</li></ul>
          - `postal_code` string: The postal code, which is the zip code or equivalent. Typically required for countries with a postal code or an equivalent. See [postal code](https://en.wikipedia.org/wiki/Postal_code).
          - `country_code` string, ppaas_common_country_code_v2, required: The [two-character ISO 3166-1 code](/docs/integration/direct/rest/country-codes/) that identifies the country or region.<blockquote><strong>Note:</strong> The country code for Great Britain is <code>GB</code> and not <code>UK</code> as 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.</blockquote>
          - `address_details` AddressDetails: The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third party and open source. Redundant with core fields.<br/>For example, `address_portable.address_line_1` is usually a combination of `address_details.street_number`, `street_name`, and `street_type`.
            - `street_number` string: The street number.
            - `street_name` string: The street name. Just `Drury` in `Drury Lane`.
            - `street_type` string: The street type. For example, avenue, boulevard, road, or expressway.
            - `delivery_service` string: The delivery service. Post office box, bag number, or post office name.
            - `building_name` string: A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, <code>Craven House</code>.
            - `sub_building` string: The first-order entity below a named building or location that represents the sub-premises. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.
  - `refunds` Refunds: The invoicing refund details. Includes the refund type, date, amount, and method.
    - `refund_amount` Money: The currency and amount for a financial transaction, such as a balance or payment due.
      - `currency_code` string, ppaas_common_currency_code_v2, required: The [three-character ISO-4217 currency code](/docs/integration/direct/rest/currency-codes/) that identifies the currency.
      - `value` string, required: The value, which might be:<ul><li>An integer for currencies like `JPY` that are not typically fractional.</li><li>A decimal fraction for currencies like `TND` that are subdivided into thousandths.</li></ul>For the required number of decimal places for a currency code, see [Currency Codes](/docs/integration/direct/rest/currency-codes/).
    - `transactions` RefundDetail[]: An array of refund details for the invoice. Includes the refund type, date, amount, and method.
      - `type` 'PAYPAL' | 'EXTERNAL': The payment type. Can be PayPal or an external payment. Includes cash or a check.
      - `refund_id` string: The ID for a PayPal payment transaction. Required for the `PAYPAL` payment type.
      - `refund_date` string, ppaas_date_notime_v2: The stand-alone date, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). To represent special legal values, such as a date of birth, you should use dates with no associated time or time-zone data. Whenever possible, use the standard `date_time` type. This regular expression does not validate all dates. For example, February 31 is valid and nothing is known about leap years.
      - `amount` Money: The currency and amount for a financial transaction, such as a balance or payment due.
        - `currency_code` string, ppaas_common_currency_code_v2, required: The [three-character ISO-4217 currency code](/docs/integration/direct/rest/currency-codes/) that identifies the currency.
        - `value` string, required: The value, which might be:<ul><li>An integer for currencies like `JPY` that are not typically fractional.</li><li>A decimal fraction for currencies like `TND` that are subdivided into thousandths.</li></ul>For the required number of decimal places for a currency code, see [Currency Codes](/docs/integration/direct/rest/currency-codes/).
      - `method` 'BANK_TRANSFER' | 'CASH' | 'CHECK' | 'CREDIT_CARD' | 'DEBIT_CARD' | 'PAYPAL' | 'WIRE_TRANSFER' | 'OTHER', required: The payment mode or method through which the invoicer can accept the payments.
  - `links` LinkDescription[]: An array of request-related [HATEOAS links](/docs/api/reference/api-responses/#hateoas-links).
    - `href` string, required: The complete target URL. To make the related call, combine the method with this [URI Template-formatted](https://tools.ietf.org/html/rfc6570) link. For pre-processing, include the `$`, `(`, and `)` characters. The `href` is the key HATEOAS component that links a completed call with a subsequent call.
    - `rel` string, required: The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which serves as an ID for a link that unambiguously describes the semantics of the link. See [Link Relations](https://www.iana.org/assignments/link-relations/link-relations.xhtml).
    - `method` 'GET' | 'POST' | 'PUT' | 'DELETE' | 'HEAD' | 'CONNECT' | 'OPTIONS' | 'PATCH': The HTTP method required to make the related call.

## Response `201`

A successful request returns the HTTP `201 Created` status code. A JSON response body that shows invoice details is returned if you set <code>prefer=return=representation</code>.

- Invoice: The invoice details which includes all information of the invoice like items, billing information.
  - `id` string: The ID of the invoice.
  - `parent_id` string: The parent ID to an invoice that defines the group invoice to which the invoice is related.
  - `status` 'DRAFT' | 'SENT' | 'SCHEDULED' | 'PAID' | 'MARKED_AS_PAID' | 'CANCELLED' | 'REFUNDED' | 'PARTIALLY_PAID' | 'PARTIALLY_REFUNDED' | 'MARKED_AS_REFUNDED' | 'UNPAID' | 'PAYMENT_PENDING' | 'AUTO_CANCELLED' | 'PAID_EXTERNAL' | 'REFUNDED_EXTERNAL' | 'SHARED': The status of the invoice.
  - `detail` InvoiceDetail, required: The details of the invoice like notes, terms and conditions, memo, attachments.
    - `reference` string: The reference data. Includes a Purchase Order (PO) number.
    - `currency_code` string, ppaas_common_currency_code_v2, required: The [three-character ISO-4217 currency code](/docs/integration/direct/rest/currency-codes/) that identifies the currency.
    - `note` string: A note to the invoice recipient. Also appears on the invoice notification email.
    - `terms_and_conditions` string: The general terms of the invoice. Can include return or cancellation policy and other terms and conditions.
    - `memo` string: A private bookkeeping memo for the user.
    - `attachments` FileReference[]: An array of PayPal IDs for the files that are attached to an invoice.
      - `id` string: The ID of the referenced file.
      - `reference_url` string, uri: The reference URL for the file.
      - `content_type` string: The [Internet Assigned Numbers Authority (IANA) media type of the file](https://www.iana.org/assignments/media-types/media-types.xhtml).
      - `create_time` string, ppaas_date_time_v3: The date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Seconds are required while fractional seconds are optional.<blockquote><strong>Note:</strong> The regular expression provides guidance but does not reject all invalid dates.</blockquote>
      - `size` string: The size of the file, in bytes.
    - `invoice_number` string: The invoice number. Default is the number that is auto-incremented number from the last number.
    - `invoice_date` string, ppaas_date_notime_v2: The stand-alone date, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). To represent special legal values, such as a date of birth, you should use dates with no associated time or time-zone data. Whenever possible, use the standard `date_time` type. This regular expression does not validate all dates. For example, February 31 is valid and nothing is known about leap years.
    - `payment_term` InvoicePaymentTerm: The payment term of the invoice. Payment can be due upon receipt, a specified date, or in a set number of days.
      - `term_type` 'DUE_ON_RECEIPT' | 'DUE_ON_DATE_SPECIFIED' | 'NET_10' | 'NET_15' | 'NET_30' | 'NET_45' | 'NET_60' | 'NET_90' | 'NO_DUE_DATE': The payment term. Payment can be due upon receipt, a specified date, or in a set number of days.
      - `due_date` string, ppaas_date_notime_v2: The stand-alone date, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). To represent special legal values, such as a date of birth, you should use dates with no associated time or time-zone data. Whenever possible, use the standard `date_time` type. This regular expression does not validate all dates. For example, February 31 is valid and nothing is known about leap years.
    - `metadata` Metadata: The audit metadata. Captures all template actions on create and update.
      - `create_time` string, ppaas_date_time_v3: The date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Seconds are required while fractional seconds are optional.<blockquote><strong>Note:</strong> The regular expression provides guidance but does not reject all invalid dates.</blockquote>
      - `created_by` string: The email address of the account that created the resource.
      - `last_update_time` string, ppaas_date_time_v3: The date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Seconds are required while fractional seconds are optional.<blockquote><strong>Note:</strong> The regular expression provides guidance but does not reject all invalid dates.</blockquote>
      - `last_updated_by` string: The email address of the account that last edited the resource.
      - `cancel_time` string, ppaas_date_time_v3: The date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Seconds are required while fractional seconds are optional.<blockquote><strong>Note:</strong> The regular expression provides guidance but does not reject all invalid dates.</blockquote>
      - `cancelled_by` string: The actor who canceled the resource.
      - `first_sent_time` string, ppaas_date_time_v3: The date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Seconds are required while fractional seconds are optional.<blockquote><strong>Note:</strong> The regular expression provides guidance but does not reject all invalid dates.</blockquote>
      - `last_sent_time` string, ppaas_date_time_v3: The date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Seconds are required while fractional seconds are optional.<blockquote><strong>Note:</strong> The regular expression provides guidance but does not reject all invalid dates.</blockquote>
      - `last_sent_by` string: The email address of the account that last sent the resource.
      - `created_by_flow` 'MULTIPLE_RECIPIENTS_GROUP' | 'BATCH' | 'REGULAR_SINGLE': The frequency at which the invoice is sent:<ul><li>Multiple recipient. Sent to multiple recipients.</li><li>Batch. Sent in a batch.</li><li>Regular single. Sent one time to a single recipient.</li></ul>
      - `recipient_view_url` string, uri: The URL for the invoice payer view hosted on paypal.com.
      - `invoicer_view_url` string, uri: The URL for the invoice merchant view hosted on paypal.com.
  - `invoicer` InvoicerInfo: The business name of the party.
    - `business_name` string: Required. The business name of the party.
    - `name` Name: The name of the party.
      - `prefix` string: The prefix, or title, to the party's name.
      - `given_name` string: When the party is a person, the party's given, or first, name.
      - `surname` string: When the party is a person, the party's surname or family name. Also known as the last name. Required when the party is a person. Use also to store multiple surnames including the matronymic, or mother's, surname.
      - `middle_name` string: When the party is a person, the party's middle name. Use also to store multiple middle names including the patronymic, or father's, middle name.
      - `suffix` string: The suffix for the party's name.
      - `alternate_full_name` string: DEPRECATED. The party's alternate name. Can be a business name, nickname, or any other name that cannot be split into first, last name. Required when the party is a business.
      - `full_name` string: When the party is a person, the party's full name.
    - `address` AddressPortable: The portable international postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).
      - `address_line_1` string: The first line of the address. For example, number or street. For example, `173 Drury Lane`. Required for data entry and compliance and risk checks. Must contain the full address.
      - `address_line_2` string: The second line of the address. For example, suite or apartment number.
      - `address_line_3` string: The third line of the address, if needed. For example, a street complement for Brazil, direction text, such as `next to Walmart`, or a landmark in an Indian address.
      - `admin_area_4` string: The neighborhood, ward, or district. Smaller than `admin_area_level_3` or `sub_locality`. Value is:<ul><li>The postal sorting code for Guernsey and many French territories, such as French Guiana.</li><li>The fine-grained administrative levels in China.</li></ul>
      - `admin_area_3` string: A sub-locality, suburb, neighborhood, or district. Smaller than `admin_area_level_2`. Value is:<ul><li>Brazil. Suburb, bairro, or neighborhood.</li><li>India. Sub-locality or district. Street name information is not always available but a sub-locality or district can be a very small area.</li></ul>
      - `admin_area_2` string: A city, town, or village. Smaller than `admin_area_level_1`.
      - `admin_area_1` string: The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision. Format for postal delivery. For example, `CA` and not `California`. Value, by country, is:<ul><li>UK. A county.</li><li>US. A state.</li><li>Canada. A province.</li><li>Japan. A prefecture.</li><li>Switzerland. A kanton.</li></ul>
      - `postal_code` string: The postal code, which is the zip code or equivalent. Typically required for countries with a postal code or an equivalent. See [postal code](https://en.wikipedia.org/wiki/Postal_code).
      - `country_code` string, ppaas_common_country_code_v2, required: The [two-character ISO 3166-1 code](/docs/integration/direct/rest/country-codes/) that identifies the country or region.<blockquote><strong>Note:</strong> The country code for Great Britain is <code>GB</code> and not <code>UK</code> as 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.</blockquote>
      - `address_details` AddressDetails: The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third party and open source. Redundant with core fields.<br/>For example, `address_portable.address_line_1` is usually a combination of `address_details.street_number`, `street_name`, and `street_type`.
        - `street_number` string: The street number.
        - `street_name` string: The street name. Just `Drury` in `Drury Lane`.
        - `street_type` string: The street type. For example, avenue, boulevard, road, or expressway.
        - `delivery_service` string: The delivery service. Post office box, bag number, or post office name.
        - `building_name` string: A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, <code>Craven House</code>.
        - `sub_building` string: The first-order entity below a named building or location that represents the sub-premises. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.
    - `email_address` string: The internationalized email address with more restrictive rules. This version restricts the local-part to a dot-atom as defined in https://www.ietf.org/rfc/rfc5322.txt. It does not allow for a quoted-string or an obs-local-part. <ul><li>Allows alphanumeric and RFC-allowed special characters, !#$%&'*+-/=?^_`{|}~</li><li>Ensures that the local part does not start with dot (.), have consecutive dots, or end with dot. Ensures that the domain part does not have consecutive dots.</li><li>Ensures that the local part does not exceed 64 characters.</li></ul><blockquote><strong>Note:</strong> Up to 64 characters are allowed before and 255 characters are allowed after the <code>@</code> sign. However, the generally accepted maximum length for an email address is 254 characters. The pattern verifies that an unquoted <code>@</code> sign exists.</blockquote>
    - `phones` PhoneDetail[]: An array of invoicer's phone numbers. The invoicer can choose to hide the phone number on the invoice.
      - `country_code` string, required: The country calling code (CC), in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the CC and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).
      - `national_number` string, required: The national number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).
      - `extension_number` string: The extension number.
      - `phone_type` 'FAX' | 'HOME' | 'MOBILE' | 'OTHER' | 'PAGER', required: The phone type.
    - `website` string, uri: The invoicer's website.
    - `tax_id` string: The invoicer's tax ID.
    - `additional_notes` string: Any additional information. Includes business hours.
    - `logo_url` string, uri: The full URL to an external logo image. The logo image must not be larger than 250 pixels wide by 90 pixels high.
  - `primary_recipients` RecipientInfo[]: The billing and shipping information. Includes name, email, address, phone and language.
    - `billing_info` BillingInfo: The business name of the party.
      - `business_name` string: Required. The business name of the party.
      - `name` Name: The name of the party.
        - `prefix` string: The prefix, or title, to the party's name.
        - `given_name` string: When the party is a person, the party's given, or first, name.
        - `surname` string: When the party is a person, the party's surname or family name. Also known as the last name. Required when the party is a person. Use also to store multiple surnames including the matronymic, or mother's, surname.
        - `middle_name` string: When the party is a person, the party's middle name. Use also to store multiple middle names including the patronymic, or father's, middle name.
        - `suffix` string: The suffix for the party's name.
        - `alternate_full_name` string: DEPRECATED. The party's alternate name. Can be a business name, nickname, or any other name that cannot be split into first, last name. Required when the party is a business.
        - `full_name` string: When the party is a person, the party's full name.
      - `address` AddressPortable: The portable international postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).
        - `address_line_1` string: The first line of the address. For example, number or street. For example, `173 Drury Lane`. Required for data entry and compliance and risk checks. Must contain the full address.
        - `address_line_2` string: The second line of the address. For example, suite or apartment number.
        - `address_line_3` string: The third line of the address, if needed. For example, a street complement for Brazil, direction text, such as `next to Walmart`, or a landmark in an Indian address.
        - `admin_area_4` string: The neighborhood, ward, or district. Smaller than `admin_area_level_3` or `sub_locality`. Value is:<ul><li>The postal sorting code for Guernsey and many French territories, such as French Guiana.</li><li>The fine-grained administrative levels in China.</li></ul>
        - `admin_area_3` string: A sub-locality, suburb, neighborhood, or district. Smaller than `admin_area_level_2`. Value is:<ul><li>Brazil. Suburb, bairro, or neighborhood.</li><li>India. Sub-locality or district. Street name information is not always available but a sub-locality or district can be a very small area.</li></ul>
        - `admin_area_2` string: A city, town, or village. Smaller than `admin_area_level_1`.
        - `admin_area_1` string: The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision. Format for postal delivery. For example, `CA` and not `California`. Value, by country, is:<ul><li>UK. A county.</li><li>US. A state.</li><li>Canada. A province.</li><li>Japan. A prefecture.</li><li>Switzerland. A kanton.</li></ul>
        - `postal_code` string: The postal code, which is the zip code or equivalent. Typically required for countries with a postal code or an equivalent. See [postal code](https://en.wikipedia.org/wiki/Postal_code).
        - `country_code` string, ppaas_common_country_code_v2, required: The [two-character ISO 3166-1 code](/docs/integration/direct/rest/country-codes/) that identifies the country or region.<blockquote><strong>Note:</strong> The country code for Great Britain is <code>GB</code> and not <code>UK</code> as 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.</blockquote>
        - `address_details` AddressDetails: The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third party and open source. Redundant with core fields.<br/>For example, `address_portable.address_line_1` is usually a combination of `address_details.street_number`, `street_name`, and `street_type`.
          - `street_number` string: The street number.
          - `street_name` string: The street name. Just `Drury` in `Drury Lane`.
          - `street_type` string: The street type. For example, avenue, boulevard, road, or expressway.
          - `delivery_service` string: The delivery service. Post office box, bag number, or post office name.
          - `building_name` string: A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, <code>Craven House</code>.
          - `sub_building` string: The first-order entity below a named building or location that represents the sub-premises. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.
      - `email_address` string: The internationalized email address with more restrictive rules. This version restricts the local-part to a dot-atom as defined in https://www.ietf.org/rfc/rfc5322.txt. It does not allow for a quoted-string or an obs-local-part. <ul><li>Allows alphanumeric and RFC-allowed special characters, !#$%&'*+-/=?^_`{|}~</li><li>Ensures that the local part does not start with dot (.), have consecutive dots, or end with dot. Ensures that the domain part does not have consecutive dots.</li><li>Ensures that the local part does not exceed 64 characters.</li></ul><blockquote><strong>Note:</strong> Up to 64 characters are allowed before and 255 characters are allowed after the <code>@</code> sign. However, the generally accepted maximum length for an email address is 254 characters. The pattern verifies that an unquoted <code>@</code> sign exists.</blockquote>
      - `phones` PhoneDetail[]: The invoice recipient's phone numbers. Extension number is not supported.
        - `country_code` string, required: The country calling code (CC), in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the CC and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).
        - `national_number` string, required: The national number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).
        - `extension_number` string: The extension number.
        - `phone_type` 'FAX' | 'HOME' | 'MOBILE' | 'OTHER' | 'PAGER', required: The phone type.
      - `additional_info` string: Any additional information about the recipient.
      - `language` string, ppaas_common_language_v3: The [language tag](https://tools.ietf.org/html/bcp47#section-2) for the language in which to localize the error-related strings, such as messages, issues, and suggested actions. The tag is made up of the [ISO 639-2 language code](https://www.loc.gov/standards/iso639-2/php/code_list.php), the optional [ISO-15924 script tag](https://www.unicode.org/iso15924/codelists.html), and the [ISO-3166 alpha-2 country code](/api/rest/reference/country-codes/) or [M49 region code](https://unstats.un.org/unsd/methodology/m49/).
    - `shipping_info` ContactNameAddress: The business name of the party.
      - `business_name` string: Required. The business name of the party.
      - `name` Name: The name of the party.
        - `prefix` string: The prefix, or title, to the party's name.
        - `given_name` string: When the party is a person, the party's given, or first, name.
        - `surname` string: When the party is a person, the party's surname or family name. Also known as the last name. Required when the party is a person. Use also to store multiple surnames including the matronymic, or mother's, surname.
        - `middle_name` string: When the party is a person, the party's middle name. Use also to store multiple middle names including the patronymic, or father's, middle name.
        - `suffix` string: The suffix for the party's name.
        - `alternate_full_name` string: DEPRECATED. The party's alternate name. Can be a business name, nickname, or any other name that cannot be split into first, last name. Required when the party is a business.
        - `full_name` string: When the party is a person, the party's full name.
      - `address` AddressPortable: The portable international postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).
        - `address_line_1` string: The first line of the address. For example, number or street. For example, `173 Drury Lane`. Required for data entry and compliance and risk checks. Must contain the full address.
        - `address_line_2` string: The second line of the address. For example, suite or apartment number.
        - `address_line_3` string: The third line of the address, if needed. For example, a street complement for Brazil, direction text, such as `next to Walmart`, or a landmark in an Indian address.
        - `admin_area_4` string: The neighborhood, ward, or district. Smaller than `admin_area_level_3` or `sub_locality`. Value is:<ul><li>The postal sorting code for Guernsey and many French territories, such as French Guiana.</li><li>The fine-grained administrative levels in China.</li></ul>
        - `admin_area_3` string: A sub-locality, suburb, neighborhood, or district. Smaller than `admin_area_level_2`. Value is:<ul><li>Brazil. Suburb, bairro, or neighborhood.</li><li>India. Sub-locality or district. Street name information is not always available but a sub-locality or district can be a very small area.</li></ul>
        - `admin_area_2` string: A city, town, or village. Smaller than `admin_area_level_1`.
        - `admin_area_1` string: The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision. Format for postal delivery. For example, `CA` and not `California`. Value, by country, is:<ul><li>UK. A county.</li><li>US. A state.</li><li>Canada. A province.</li><li>Japan. A prefecture.</li><li>Switzerland. A kanton.</li></ul>
        - `postal_code` string: The postal code, which is the zip code or equivalent. Typically required for countries with a postal code or an equivalent. See [postal code](https://en.wikipedia.org/wiki/Postal_code).
        - `country_code` string, ppaas_common_country_code_v2, required: The [two-character ISO 3166-1 code](/docs/integration/direct/rest/country-codes/) that identifies the country or region.<blockquote><strong>Note:</strong> The country code for Great Britain is <code>GB</code> and not <code>UK</code> as 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.</blockquote>
        - `address_details` AddressDetails: The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third party and open source. Redundant with core fields.<br/>For example, `address_portable.address_line_1` is usually a combination of `address_details.street_number`, `street_name`, and `street_type`.
          - `street_number` string: The street number.
          - `street_name` string: The street name. Just `Drury` in `Drury Lane`.
          - `street_type` string: The street type. For example, avenue, boulevard, road, or expressway.
          - `delivery_service` string: The delivery service. Post office box, bag number, or post office name.
          - `building_name` string: A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, <code>Craven House</code>.
          - `sub_building` string: The first-order entity below a named building or location that represents the sub-premises. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.
  - `additional_recipients` EmailAddress[]: An array of one or more CC: emails to which notifications are sent. If you omit this parameter, a notification is sent to all CC: email addresses that are part of the invoice.<blockquote><strong>Note:</strong> Valid values are email addresses in the `additional_recipients` value associated with the invoice.</blockquote>
  - `items` Item[]: An array of invoice line item information.
    - `id` string: The ID of the invoice line item.
    - `name` string, required: The item name for the invoice line item.
    - `description` string: The item description for the invoice line item.
    - `quantity` string, required: The quantity of the item that the invoicer provides to the payer. Value is from `-1000000` to `1000000`. Supports up to five decimal places.
    - `unit_amount` Money, required: The currency and amount for a financial transaction, such as a balance or payment due.
      - `currency_code` string, ppaas_common_currency_code_v2, required: The [three-character ISO-4217 currency code](/docs/integration/direct/rest/currency-codes/) that identifies the currency.
      - `value` string, required: The value, which might be:<ul><li>An integer for currencies like `JPY` that are not typically fractional.</li><li>A decimal fraction for currencies like `TND` that are subdivided into thousandths.</li></ul>For the required number of decimal places for a currency code, see [Currency Codes](/docs/integration/direct/rest/currency-codes/).
    - `tax` Tax: The tax information. Includes the tax name and tax rate of invoice items. The tax amount is added to the item total.
      - `name` string, required: The name of the tax applied on the invoice items.
      - `percent` string, ppaas_common_percentage_v2, required: The percentage, as a fixed-point, signed decimal number. For example, define a 19.99% interest rate as `19.99`.
      - `amount` Money: The currency and amount for a financial transaction, such as a balance or payment due.
        - `currency_code` string, ppaas_common_currency_code_v2, required: The [three-character ISO-4217 currency code](/docs/integration/direct/rest/currency-codes/) that identifies the currency.
        - `value` string, required: The value, which might be:<ul><li>An integer for currencies like `JPY` that are not typically fractional.</li><li>A decimal fraction for currencies like `TND` that are subdivided into thousandths.</li></ul>For the required number of decimal places for a currency code, see [Currency Codes](/docs/integration/direct/rest/currency-codes/).
      - `tax_note` string: The tax note used to track the tax related data.
    - `item_date` string, ppaas_date_notime_v2: The stand-alone date, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). To represent special legal values, such as a date of birth, you should use dates with no associated time or time-zone data. Whenever possible, use the standard `date_time` type. This regular expression does not validate all dates. For example, February 31 is valid and nothing is known about leap years.
    - `discount` Discount: The discount as a percent or amount at invoice level. The invoice discount amount is subtracted from the item total.
      - `percent` string, ppaas_common_percentage_v2: The percentage, as a fixed-point, signed decimal number. For example, define a 19.99% interest rate as `19.99`.
      - `amount` Money: The currency and amount for a financial transaction, such as a balance or payment due.
        - `currency_code` string, ppaas_common_currency_code_v2, required: The [three-character ISO-4217 currency code](/docs/integration/direct/rest/currency-codes/) that identifies the currency.
        - `value` string, required: The value, which might be:<ul><li>An integer for currencies like `JPY` that are not typically fractional.</li><li>A decimal fraction for currencies like `TND` that are subdivided into thousandths.</li></ul>For the required number of decimal places for a currency code, see [Currency Codes](/docs/integration/direct/rest/currency-codes/).
    - `unit_of_measure` 'QUANTITY' | 'HOURS' | 'AMOUNT': The unit of measure for the invoiced item.
  - `configuration` Configuration: The template configuration details. Includes tax information, tip, and partial payment.
    - `tax_calculated_after_discount` boolean: Indicates whether the tax is calculated before or after a discount. If `false`, the tax is calculated before a discount. If `true`, the tax is calculated after a discount.
    - `tax_inclusive` boolean: Indicates whether the unit price includes tax.
    - `allow_tip` boolean: Indicates whether the invoice enables the customer to enter a tip amount during payment. If `true`, the invoice shows a tip amount field so that the customer can enter a tip amount. If `false`, the invoice does not show a tip amount field.<blockquote><strong>Note:</strong> This feature is not available for users in `Hong Kong`, `Taiwan`, `India`, or `Japan`.</blockquote>
    - `partial_payment` PartialPayment: The partial payment details. Includes the minimum amount that the invoicer expects from the payer.
      - `allow_partial_payment` boolean: Indicates whether the invoice allows a partial payment. If `false`, the invoice must be paid in full. If `true`, the invoice allows partial payments.<blockquote><strong>Note:</strong> This feature is not available for users in `India`, `Brazil`, or `Israel`.</blockquote>
      - `minimum_amount_due` Money: The currency and amount for a financial transaction, such as a balance or payment due.
        - `currency_code` string, ppaas_common_currency_code_v2, required: The [three-character ISO-4217 currency code](/docs/integration/direct/rest/currency-codes/) that identifies the currency.
        - `value` string, required: The value, which might be:<ul><li>An integer for currencies like `JPY` that are not typically fractional.</li><li>A decimal fraction for currencies like `TND` that are subdivided into thousandths.</li></ul>For the required number of decimal places for a currency code, see [Currency Codes](/docs/integration/direct/rest/currency-codes/).
    - `has_conditional_rule` boolean: Indicates whether conditional pricing rules are applied to the invoice. If `true`, pricing rules (such as discounts or surcharges based on specific conditions) are applied. If `false`, no conditional pricing rules are applied.
    - `template_id` string: The template ID. The template determines the layout of the invoice. Includes which fields to show and hide.<blockquote><strong>Note:</strong> 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.</blockquote>
  - `amount` AmountSummaryDetail: The invoice amount summary of item total, discount, tax total, and shipping.
    - `currency_code` string, ppaas_common_currency_code_v2: The [three-character ISO-4217 currency code](/docs/integration/direct/rest/currency-codes/) that identifies the currency.
    - `value` string: The value, which might be:<ul><li>An integer for currencies like `JPY` that are not typically fractional.</li><li>A decimal fraction for currencies like `TND` that are subdivided into thousandths.</li></ul>For the required number of decimal places for a currency code, see [Currency Codes](/docs/integration/direct/rest/currency-codes/).
    - `breakdown` AmountWithBreakdown: The breakdown of the amount. Includes total item amount, total tax amount, custom amount, and shipping and discounts, if any.
      - `item_total` Money: The currency and amount for a financial transaction, such as a balance or payment due.
        - `currency_code` string, ppaas_common_currency_code_v2, required: The [three-character ISO-4217 currency code](/docs/integration/direct/rest/currency-codes/) that identifies the currency.
        - `value` string, required: The value, which might be:<ul><li>An integer for currencies like `JPY` that are not typically fractional.</li><li>A decimal fraction for currencies like `TND` that are subdivided into thousandths.</li></ul>For the required number of decimal places for a currency code, see [Currency Codes](/docs/integration/direct/rest/currency-codes/).
      - `discount` AggregatedDiscount: The discount. Can be an item- or invoice-level discount, or both. Can be applied as a percent or amount. If you provide both amount and percent, amount takes precedent.
        - `invoice_discount` Discount: The discount as a percent or amount at invoice level. The invoice discount amount is subtracted from the item total.
          - `percent` string, ppaas_common_percentage_v2: The percentage, as a fixed-point, signed decimal number. For example, define a 19.99% interest rate as `19.99`.
          - `amount` Money: The currency and amount for a financial transaction, such as a balance or payment due.
            - `currency_code` string, ppaas_common_currency_code_v2, required: The [three-character ISO-4217 currency code](/docs/integration/direct/rest/currency-codes/) that identifies the currency.
            - `value` string, required: The value, which might be:<ul><li>An integer for currencies like `JPY` that are not typically fractional.</li><li>A decimal fraction for currencies like `TND` that are subdivided into thousandths.</li></ul>For the required number of decimal places for a currency code, see [Currency Codes](/docs/integration/direct/rest/currency-codes/).
        - `item_discount` Money: The currency and amount for a financial transaction, such as a balance or payment due.
          - `currency_code` string, ppaas_common_currency_code_v2, required: The [three-character ISO-4217 currency code](/docs/integration/direct/rest/currency-codes/) that identifies the currency.
          - `value` string, required: The value, which might be:<ul><li>An integer for currencies like `JPY` that are not typically fractional.</li><li>A decimal fraction for currencies like `TND` that are subdivided into thousandths.</li></ul>For the required number of decimal places for a currency code, see [Currency Codes](/docs/integration/direct/rest/currency-codes/).
      - `tax_total` Money: The currency and amount for a financial transaction, such as a balance or payment due.
        - `currency_code` string, ppaas_common_currency_code_v2, required: The [three-character ISO-4217 currency code](/docs/integration/direct/rest/currency-codes/) that identifies the currency.
        - `value` string, required: The value, which might be:<ul><li>An integer for currencies like `JPY` that are not typically fractional.</li><li>A decimal fraction for currencies like `TND` that are subdivided into thousandths.</li></ul>For the required number of decimal places for a currency code, see [Currency Codes](/docs/integration/direct/rest/currency-codes/).
      - `shipping` ShippingCost: The shipping fee for all items. Includes tax on shipping.
        - `amount` Money: The currency and amount for a financial transaction, such as a balance or payment due.
          - `currency_code` string, ppaas_common_currency_code_v2, required: The [three-character ISO-4217 currency code](/docs/integration/direct/rest/currency-codes/) that identifies the currency.
          - `value` string, required: The value, which might be:<ul><li>An integer for currencies like `JPY` that are not typically fractional.</li><li>A decimal fraction for currencies like `TND` that are subdivided into thousandths.</li></ul>For the required number of decimal places for a currency code, see [Currency Codes](/docs/integration/direct/rest/currency-codes/).
        - `tax` Tax: The tax information. Includes the tax name and tax rate of invoice items. The tax amount is added to the item total.
          - `name` string, required: The name of the tax applied on the invoice items.
          - `percent` string, ppaas_common_percentage_v2, required: The percentage, as a fixed-point, signed decimal number. For example, define a 19.99% interest rate as `19.99`.
          - `amount` Money: The currency and amount for a financial transaction, such as a balance or payment due.
            - `currency_code` string, ppaas_common_currency_code_v2, required: The [three-character ISO-4217 currency code](/docs/integration/direct/rest/currency-codes/) that identifies the currency.
            - `value` string, required: The value, which might be:<ul><li>An integer for currencies like `JPY` that are not typically fractional.</li><li>A decimal fraction for currencies like `TND` that are subdivided into thousandths.</li></ul>For the required number of decimal places for a currency code, see [Currency Codes](/docs/integration/direct/rest/currency-codes/).
          - `tax_note` string: The tax note used to track the tax related data.
      - `custom` CustomAmount: The custom amount to apply to an invoice. If you include a label, you must include a custom amount.
        - `label` string, required: The label to the custom amount of the invoice.
        - `amount` Money: The currency and amount for a financial transaction, such as a balance or payment due.
          - `currency_code` string, ppaas_common_currency_code_v2, required: The [three-character ISO-4217 currency code](/docs/integration/direct/rest/currency-codes/) that identifies the currency.
          - `value` string, required: The value, which might be:<ul><li>An integer for currencies like `JPY` that are not typically fractional.</li><li>A decimal fraction for currencies like `TND` that are subdivided into thousandths.</li></ul>For the required number of decimal places for a currency code, see [Currency Codes](/docs/integration/direct/rest/currency-codes/).
  - `due_amount` Money: The currency and amount for a financial transaction, such as a balance or payment due.
    - `currency_code` string, ppaas_common_currency_code_v2, required: The [three-character ISO-4217 currency code](/docs/integration/direct/rest/currency-codes/) that identifies the currency.
    - `value` string, required: The value, which might be:<ul><li>An integer for currencies like `JPY` that are not typically fractional.</li><li>A decimal fraction for currencies like `TND` that are subdivided into thousandths.</li></ul>For the required number of decimal places for a currency code, see [Currency Codes](/docs/integration/direct/rest/currency-codes/).
  - `gratuity` Money: The currency and amount for a financial transaction, such as a balance or payment due.
    - `currency_code` string, ppaas_common_currency_code_v2, required: The [three-character ISO-4217 currency code](/docs/integration/direct/rest/currency-codes/) that identifies the currency.
    - `value` string, required: The value, which might be:<ul><li>An integer for currencies like `JPY` that are not typically fractional.</li><li>A decimal fraction for currencies like `TND` that are subdivided into thousandths.</li></ul>For the required number of decimal places for a currency code, see [Currency Codes](/docs/integration/direct/rest/currency-codes/).
  - `payments` Payments: An array of payments registered against the invoice.
    - `paid_amount` Money: The currency and amount for a financial transaction, such as a balance or payment due.
      - `currency_code` string, ppaas_common_currency_code_v2, required: The [three-character ISO-4217 currency code](/docs/integration/direct/rest/currency-codes/) that identifies the currency.
      - `value` string, required: The value, which might be:<ul><li>An integer for currencies like `JPY` that are not typically fractional.</li><li>A decimal fraction for currencies like `TND` that are subdivided into thousandths.</li></ul>For the required number of decimal places for a currency code, see [Currency Codes](/docs/integration/direct/rest/currency-codes/).
    - `transactions` PaymentDetail[]: An array of payment details for the invoice. The payment details of the invoice like payment type, method, date, discount and transaction type.
      - `type` 'PAYPAL' | 'EXTERNAL': The payment type. Can be PayPal or an external payment. Includes cash or a check.
      - `payment_id` string: The ID for a PayPal payment transaction. Required for the `PAYPAL` payment type.
      - `payment_date` string, ppaas_date_notime_v2: The stand-alone date, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). To represent special legal values, such as a date of birth, you should use dates with no associated time or time-zone data. Whenever possible, use the standard `date_time` type. This regular expression does not validate all dates. For example, February 31 is valid and nothing is known about leap years.
      - `payment_date_time` string, ppaas_date_time_v3: The date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Seconds are required while fractional seconds are optional.<blockquote><strong>Note:</strong> The regular expression provides guidance but does not reject all invalid dates.</blockquote>
      - `method` 'BANK_TRANSFER' | 'CASH' | 'CHECK' | 'CREDIT_CARD' | 'DEBIT_CARD' | 'PAYPAL' | 'WIRE_TRANSFER' | 'OTHER', required: The payment mode or method through which the invoicer can accept the payments.
      - `note` string: A note associated with an external cash or check payment.
      - `amount` Money: The currency and amount for a financial transaction, such as a balance or payment due.
        - `currency_code` string, ppaas_common_currency_code_v2, required: The [three-character ISO-4217 currency code](/docs/integration/direct/rest/currency-codes/) that identifies the currency.
        - `value` string, required: The value, which might be:<ul><li>An integer for currencies like `JPY` that are not typically fractional.</li><li>A decimal fraction for currencies like `TND` that are subdivided into thousandths.</li></ul>For the required number of decimal places for a currency code, see [Currency Codes](/docs/integration/direct/rest/currency-codes/).
      - `shipping_info` ContactNameAddress: The business name of the party.
        - `business_name` string: Required. The business name of the party.
        - `name` Name: The name of the party.
          - `prefix` string: The prefix, or title, to the party's name.
          - `given_name` string: When the party is a person, the party's given, or first, name.
          - `surname` string: When the party is a person, the party's surname or family name. Also known as the last name. Required when the party is a person. Use also to store multiple surnames including the matronymic, or mother's, surname.
          - `middle_name` string: When the party is a person, the party's middle name. Use also to store multiple middle names including the patronymic, or father's, middle name.
          - `suffix` string: The suffix for the party's name.
          - `alternate_full_name` string: DEPRECATED. The party's alternate name. Can be a business name, nickname, or any other name that cannot be split into first, last name. Required when the party is a business.
          - `full_name` string: When the party is a person, the party's full name.
        - `address` AddressPortable: The portable international postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).
          - `address_line_1` string: The first line of the address. For example, number or street. For example, `173 Drury Lane`. Required for data entry and compliance and risk checks. Must contain the full address.
          - `address_line_2` string: The second line of the address. For example, suite or apartment number.
          - `address_line_3` string: The third line of the address, if needed. For example, a street complement for Brazil, direction text, such as `next to Walmart`, or a landmark in an Indian address.
          - `admin_area_4` string: The neighborhood, ward, or district. Smaller than `admin_area_level_3` or `sub_locality`. Value is:<ul><li>The postal sorting code for Guernsey and many French territories, such as French Guiana.</li><li>The fine-grained administrative levels in China.</li></ul>
          - `admin_area_3` string: A sub-locality, suburb, neighborhood, or district. Smaller than `admin_area_level_2`. Value is:<ul><li>Brazil. Suburb, bairro, or neighborhood.</li><li>India. Sub-locality or district. Street name information is not always available but a sub-locality or district can be a very small area.</li></ul>
          - `admin_area_2` string: A city, town, or village. Smaller than `admin_area_level_1`.
          - `admin_area_1` string: The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision. Format for postal delivery. For example, `CA` and not `California`. Value, by country, is:<ul><li>UK. A county.</li><li>US. A state.</li><li>Canada. A province.</li><li>Japan. A prefecture.</li><li>Switzerland. A kanton.</li></ul>
          - `postal_code` string: The postal code, which is the zip code or equivalent. Typically required for countries with a postal code or an equivalent. See [postal code](https://en.wikipedia.org/wiki/Postal_code).
          - `country_code` string, ppaas_common_country_code_v2, required: The [two-character ISO 3166-1 code](/docs/integration/direct/rest/country-codes/) that identifies the country or region.<blockquote><strong>Note:</strong> The country code for Great Britain is <code>GB</code> and not <code>UK</code> as 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.</blockquote>
          - `address_details` AddressDetails: The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third party and open source. Redundant with core fields.<br/>For example, `address_portable.address_line_1` is usually a combination of `address_details.street_number`, `street_name`, and `street_type`.
            - `street_number` string: The street number.
            - `street_name` string: The street name. Just `Drury` in `Drury Lane`.
            - `street_type` string: The street type. For example, avenue, boulevard, road, or expressway.
            - `delivery_service` string: The delivery service. Post office box, bag number, or post office name.
            - `building_name` string: A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, <code>Craven House</code>.
            - `sub_building` string: The first-order entity below a named building or location that represents the sub-premises. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.
  - `refunds` Refunds: The invoicing refund details. Includes the refund type, date, amount, and method.
    - `refund_amount` Money: The currency and amount for a financial transaction, such as a balance or payment due.
      - `currency_code` string, ppaas_common_currency_code_v2, required: The [three-character ISO-4217 currency code](/docs/integration/direct/rest/currency-codes/) that identifies the currency.
      - `value` string, required: The value, which might be:<ul><li>An integer for currencies like `JPY` that are not typically fractional.</li><li>A decimal fraction for currencies like `TND` that are subdivided into thousandths.</li></ul>For the required number of decimal places for a currency code, see [Currency Codes](/docs/integration/direct/rest/currency-codes/).
    - `transactions` RefundDetail[]: An array of refund details for the invoice. Includes the refund type, date, amount, and method.
      - `type` 'PAYPAL' | 'EXTERNAL': The payment type. Can be PayPal or an external payment. Includes cash or a check.
      - `refund_id` string: The ID for a PayPal payment transaction. Required for the `PAYPAL` payment type.
      - `refund_date` string, ppaas_date_notime_v2: The stand-alone date, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). To represent special legal values, such as a date of birth, you should use dates with no associated time or time-zone data. Whenever possible, use the standard `date_time` type. This regular expression does not validate all dates. For example, February 31 is valid and nothing is known about leap years.
      - `amount` Money: The currency and amount for a financial transaction, such as a balance or payment due.
        - `currency_code` string, ppaas_common_currency_code_v2, required: The [three-character ISO-4217 currency code](/docs/integration/direct/rest/currency-codes/) that identifies the currency.
        - `value` string, required: The value, which might be:<ul><li>An integer for currencies like `JPY` that are not typically fractional.</li><li>A decimal fraction for currencies like `TND` that are subdivided into thousandths.</li></ul>For the required number of decimal places for a currency code, see [Currency Codes](/docs/integration/direct/rest/currency-codes/).
      - `method` 'BANK_TRANSFER' | 'CASH' | 'CHECK' | 'CREDIT_CARD' | 'DEBIT_CARD' | 'PAYPAL' | 'WIRE_TRANSFER' | 'OTHER', required: The payment mode or method through which the invoicer can accept the payments.
  - `links` LinkDescription[]: An array of request-related [HATEOAS links](/docs/api/reference/api-responses/#hateoas-links).
    - `href` string, required: The complete target URL. To make the related call, combine the method with this [URI Template-formatted](https://tools.ietf.org/html/rfc6570) link. For pre-processing, include the `$`, `(`, and `)` characters. The `href` is the key HATEOAS component that links a completed call with a subsequent call.
    - `rel` string, required: The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which serves as an ID for a link that unambiguously describes the semantics of the link. See [Link Relations](https://www.iana.org/assignments/link-relations/link-relations.xhtml).
    - `method` 'GET' | 'POST' | 'PUT' | 'DELETE' | 'HEAD' | 'CONNECT' | 'OPTIONS' | 'PATCH': The HTTP method required to make the related call.

## Other responses

- `400`: Invalid request.
- `403`: Authorization Error.
- `422`: Unprocessable Entity.
- `500`: An internal server error has occurred.
- `default`: The default response.

---

[API](https://skmtc.dev/paypal/apis/payments.md) - [All operations](https://skmtc.dev/paypal/apis/payments/llms.txt) - [OpenAPI document](https://skmtc.dev/paypal/apis/payments/revisions/672aceee1190?raw)
