import type * as Square from "../../../../index"; /** * @example * { * sourceId: "ccof:GaJGNaZa8x4OgDJn4GB", * idempotencyKey: "7b0f3ec5-086a-4871-8f13-3c81b3875218", * amountMoney: { * amount: BigInt("1000"), * currency: "USD" * }, * appFeeMoney: { * amount: BigInt("10"), * currency: "USD" * }, * autocomplete: true, * customerId: "W92WH6P11H4Z77CTET0RNTGFW8", * locationId: "L88917AVBK2S5", * referenceId: "123456", * note: "Brief description" * } */ export interface CreatePaymentRequest { /** * The ID for the source of funds for this payment. * This could be a payment token generated by the Web Payments SDK for any of its * [supported methods](https://developer.squareup.com/docs/web-payments/overview#explore-payment-methods), * including cards, bank transfers, Afterpay or Cash App Pay. If recording a payment * that the seller received outside of Square, specify either "CASH" or "EXTERNAL". * For more information, see * [Take Payments](https://developer.squareup.com/docs/payments-api/take-payments). */ sourceId: string; /** * A unique string that identifies this `CreatePayment` request. Keys can be any valid string * but must be unique for every `CreatePayment` request. * * Note: The number of allowed characters might be less than the stated maximum, if multi-byte * characters are used. * * For more information, see [Idempotency](https://developer.squareup.com/docs/working-with-apis/idempotency). */ idempotencyKey: string; /** * The amount of money to accept for this payment, not including `tip_money`. * * The amount must be specified in the smallest denomination of the applicable currency * (for example, US dollar amounts are specified in cents). For more information, see * [Working with Monetary Amounts](https://developer.squareup.com/docs/build-basics/working-with-monetary-amounts). * * The currency code must match the currency associated with the business * that is accepting the payment. */ amountMoney?: Square.Money; /** * The amount designated as a tip, in addition to `amount_money`. * * The amount must be specified in the smallest denomination of the applicable currency * (for example, US dollar amounts are specified in cents). For more information, see * [Working with Monetary Amounts](https://developer.squareup.com/docs/build-basics/working-with-monetary-amounts). * * Tips for external vendors such as a 3rd party delivery courier must be recorded using Order.service_charges. * * The currency code must match the currency associated with the business * that is accepting the payment. */ tipMoney?: Square.Money; /** * The amount of money that the developer is taking as a fee * for facilitating the payment on behalf of the seller. * * The amount cannot be more than 90% of the total amount of the payment. * * The amount must be specified in the smallest denomination of the applicable currency * (for example, US dollar amounts are specified in cents). For more information, see * [Working with Monetary Amounts](https://developer.squareup.com/docs/build-basics/working-with-monetary-amounts). * * The fee currency code must match the currency associated with the seller * that is accepting the payment. The application must be from a developer * account in the same country and using the same currency code as the seller. * * For more information about the application fee scenario, see * [Take Payments and Collect Fees](https://developer.squareup.com/docs/payments-api/take-payments-and-collect-fees). * * To set this field, `PAYMENTS_WRITE_ADDITIONAL_RECIPIENTS` OAuth permission is required. * For more information, see [Permissions](https://developer.squareup.com/docs/payments-api/take-payments-and-collect-fees#permissions). */ appFeeMoney?: Square.Money; /** * Details pertaining to recipients of the application fee. The sum of the amounts in the * app_fee_allocations must equal the app_fee_money amount, if present. If populated, an * allocation must be present for every party that expects to receive a portion of the application * fee, including the application developer. */ appFeeAllocations?: unknown[]; /** * The duration of time after the payment's creation when Square automatically * either completes or cancels the payment depending on the `delay_action` field value. * For more information, see * [Time threshold](https://developer.squareup.com/docs/payments-api/take-payments/card-payments/delayed-capture#time-threshold). * * This parameter should be specified as a time duration, in RFC 3339 format. * * Note: This feature is only supported for card payments. This parameter can only be set for a delayed * capture payment (`autocomplete=false`). * * Default: * * - Card-present payments: "PT36H" (36 hours) from the creation time. * - Card-not-present payments: "P7D" (7 days) from the creation time. */ delayDuration?: string; /** * The action to be applied to the payment when the `delay_duration` has elapsed. The action must be * CANCEL or COMPLETE. For more information, see * [Time Threshold](https://developer.squareup.com/docs/payments-api/take-payments/card-payments/delayed-capture#time-threshold). * * Default: CANCEL */ delayAction?: string; /** * If set to `true`, this payment will be completed when possible. If * set to `false`, this payment is held in an approved state until either * explicitly completed (captured) or canceled (voided). For more information, see * [Delayed capture](https://developer.squareup.com/docs/payments-api/take-payments/card-payments#delayed-capture-of-a-card-payment). * * Default: true */ autocomplete?: boolean; /** Associates a previously created order with this payment. */ orderId?: string; /** * The [Customer](entity:Customer) ID of the customer associated with the payment. * * This is required if the `source_id` refers to a card on file created using the Cards API. */ customerId?: string; /** * The location ID to associate with the payment. If not specified, the [main location](https://developer.squareup.com/docs/locations-api#about-the-main-location) is * used. */ locationId?: string; /** * An optional [TeamMember](entity:TeamMember) ID to associate with * this payment. */ teamMemberId?: string; /** * A user-defined ID to associate with the payment. * * You can use this field to associate the payment to an entity in an external system * (for example, you might specify an order ID that is generated by a third-party shopping cart). */ referenceId?: string; /** * An identifying token generated by [payments.verifyBuyer()](https://developer.squareup.com/reference/sdks/web/payments/objects/Payments#Payments.verifyBuyer). * Verification tokens encapsulate customer device information and 3-D Secure * challenge results to indicate that Square has verified the buyer identity. * * For more information, see [SCA Overview](https://developer.squareup.com/docs/sca-overview). */ verificationToken?: string; /** * 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 field cannot be `true` when `autocomplete = true`. * * For more information, see * [Partial amount with Square Gift Cards](https://developer.squareup.com/docs/payments-api/take-payments#partial-payment-gift-card). * * Default: false */ acceptPartialAuthorization?: boolean; /** The buyer's email address. */ buyerEmailAddress?: string; /** * The buyer's phone number. * Must follow the following format: * 1. A leading + symbol (followed by a country code) * 2. The phone number can contain spaces and the special characters `(` , `)` , `-` , and `.`. * Alphabetical characters aren't allowed. * 3. The phone number must contain between 9 and 16 digits. */ buyerPhoneNumber?: string; /** The buyer's billing address. */ billingAddress?: Square.Address; /** The buyer's shipping address. */ shippingAddress?: Square.Address; /** An optional note to be entered by the developer when creating a payment. */ note?: string; /** * Optional additional payment information to include on the customer's card statement * as part of the statement description. This can be, for example, an invoice number, ticket number, * or short description that uniquely identifies the purchase. * * Note that the `statement_description_identifier` might get truncated on the statement description * to fit the required information including the Square identifier (SQ *) and name of the * seller taking the payment. */ statementDescriptionIdentifier?: string; /** Additional details required when recording a cash payment (`source_id` is CASH). */ cashDetails?: Square.CashPaymentDetails; /** Additional details required when recording an external payment (`source_id` is EXTERNAL). */ externalDetails?: Square.ExternalPaymentDetails; /** Details about the customer making the payment. */ customerDetails?: Square.CustomerDetails; /** * An optional field for specifying the offline payment details. This is intended for * internal 1st-party callers only. */ offlinePaymentDetails?: Square.OfflinePaymentDetails; }