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

import typing_extensions
import typing_extensions
import typing
from ..types.payment_options_delay_action import PaymentOptionsDelayAction


class PaymentOptionsParams(typing_extensions.TypedDict):
    autocomplete: typing_extensions.NotRequired[typing.Optional[bool]]
    """
    Indicates whether the `Payment` objects created from this `TerminalCheckout` are
    automatically `COMPLETED` or left in an `APPROVED` state for later modification.
    
    Default: true
    """

    delay_duration: typing_extensions.NotRequired[typing.Optional[str]]
    """
    The duration of time after the payment's creation when Square automatically resolves the
    payment. This automatic resolution applies only to payments that do not reach a terminal state
    (`COMPLETED` or `CANCELED`) before the `delay_duration` time period.
    
    This parameter should be specified as a time duration, in RFC 3339 format, with a minimum value
    of 1 minute and a maximum value of 36 hours. This feature is only supported for card payments,
    and all payments will be considered card-present.
    
    This parameter can only be set for a delayed capture payment (`autocomplete=false`). For more
    information, see [Delayed Capture](https://developer.squareup.com/docs/payments-api/take-payments/card-payments/delayed-capture#time-threshold).
    
    Default: "PT36H" (36 hours) from the creation time
    """

    accept_partial_authorization: typing_extensions.NotRequired[typing.Optional[bool]]
    """
    If set to `true` and charging a Square Gift Card, a payment might be returned with
    `amount_money` equal to less than what was requested. For example, a request for $20 when charging
    a Square Gift Card with a balance of $5 results in an APPROVED payment of $5. You might choose
    to prompt the buyer for an additional payment to cover the remainder or cancel the Gift Card
    payment.
    
    This parameter can only be set for a delayed capture payment (`autocomplete=false`).
    
    For more information, see [Take Partial Payments](https://developer.squareup.com/docs/payments-api/take-payments/card-payments/partial-payments-with-gift-cards).
    
    Default: false
    """

    delay_action: typing_extensions.NotRequired[PaymentOptionsDelayAction]
    """
    The action to be applied to the `Payment` when the delay_duration has elapsed.
    The action must be CANCEL or COMPLETE.
    
    The action cannot be set to COMPLETE if an `order_id` is present on the TerminalCheckout.
    
    This parameter can only be set for a delayed capture payment (`autocomplete=false`). For more
    information, see [Delayed Capture](https://developer.squareup.com/docs/payments-api/take-payments/card-payments/delayed-capture#time-threshold).
    
    Default: CANCEL
    See [DelayAction](#type-delayaction) for possible values
    """
