# This file was auto-generated by Fern from our API Definition.

import typing_extensions
import typing_extensions
import typing
from .address import AddressParams
from .invoice_recipient_tax_ids import InvoiceRecipientTaxIdsParams


class InvoiceRecipientParams(typing_extensions.TypedDict):
    """
    Represents a snapshot of customer data. This object stores customer data that is displayed on the invoice
    and that Square uses to deliver the invoice.

    When you provide a customer ID for a draft invoice, Square retrieves the associated customer profile and populates
    the remaining `InvoiceRecipient` fields. You cannot update these fields after the invoice is published.
    Square updates the customer ID in response to a merge operation, but does not update other fields.
    """

    customer_id: typing_extensions.NotRequired[typing.Optional[str]]
    """
    The ID of the customer. This is the customer profile ID that 
    you provide when creating a draft invoice.
    """

    given_name: typing_extensions.NotRequired[str]
    """
    The recipient's given (that is, first) name.
    """

    family_name: typing_extensions.NotRequired[str]
    """
    The recipient's family (that is, last) name.
    """

    email_address: typing_extensions.NotRequired[str]
    """
    The recipient's email address.
    """

    address: typing_extensions.NotRequired[AddressParams]
    """
    The recipient's physical address.
    """

    phone_number: typing_extensions.NotRequired[str]
    """
    The recipient's phone number.
    """

    company_name: typing_extensions.NotRequired[str]
    """
    The name of the recipient's company.
    """

    tax_ids: typing_extensions.NotRequired[InvoiceRecipientTaxIdsParams]
    """
    The recipient's tax IDs. The country of the seller account determines whether this field 
    is available for the customer. For more information, see [Invoice recipient tax IDs](https://developer.squareup.com/docs/invoices-api/overview#recipient-tax-ids).
    """
