> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tesouro.com/llms.txt
> Use this file to discover all available pages before exploring further.

# authorizeCustomerInitiatedTransaction

> Authorize a customer initiated transaction.

`Mutation`

## Arguments

<ParamField path="authorizeCustomerInitiatedTransactionInput" type="AuthorizeCustomerInitiatedTransactionInput!" required>
  <Expandable title="child attributes">
    <ParamField path="acceptorId" type="UUID!" required>
      A unique, 36 character identifier created by Tesouro and assigned to the entity providing the goods or services to the cardholder, such as a Merchant, a Submerchant of a Payment Facilitator, a Seller within a Marketplace, or a Biller of a Consumer Bill Payment Service Provider (CBPS). Historically, processors have called this identifier the Merchant ID (or MID), Outlet ID, or Customer number.
    </ParamField>

    <ParamField path="adjustedPartnerFeeAmount" type="Decimal">
      An amount that adjusts the partner fee for this transaction. Must be a non-negative value.
    </ParamField>

    <ParamField path="authorizationIntent" type="AuthorizationIntent!" required>
      The intent of the authorization.

      <Expandable title="Possible enum values">
        <ParamField path="UNDEFINED_AUTHORIZATION" type="enum">
          The final transaction amount may differ from the authorized amount, and is not expected to be cancelled after the authorization request is approved. Undefined authorizations are often used for situations like restaurant tips or hotel room service, where the final amount isn't known until later. All captures corresponding to an undefined authorization must be submitted within 7 calendar days of the authorization approval date.
        </ParamField>

        <ParamField path="PRE_AUTHORIZATION" type="enum">
          The final transaction amount may differ from the authorized amount, and may be cancelled or adjusted after the authorization request is approved. Pre-authorizations are often used for situations like hotel reservations and e-commerce purchases, where the goods or services are not immediately available, but will be delivered or rendered within the next 30 days.All captures corresponding to a pre-authorization must be submitted within 30 calendar days of the authorization approval date.
        </ParamField>

        <ParamField path="FINAL_AUTHORIZATION" type="enum">
          The final amount will not differ from the authorized amount. Final authorizations are used for situations where the final amount is known at the time of authorization, such as is typical in retail. All captures corresponding to a final authorization must be submitted within 7 calendar days of the authorization approval date.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="automaticCapture" type="AutomaticCapture">
      Option to automatically capture this authorization.

      <Expandable title="Possible enum values">
        <ParamField path="NEVER" type="enum">
          Do not automatically submit a capture after this authorization is approved.
        </ParamField>

        <ParamField path="ON_APPROVAL" type="enum">
          If this authorization approves, automatically submit a capture.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="billToAddress" type="AddressDetailsInput">
      The billing address associated with the payment method used on the transaction.

      See [AddressDetailsInput](/acquiring/reference/graphql/types/address-details-input)
    </ParamField>

    <ParamField path="captureIt" type="Boolean" deprecated>
      \[DEPRECATED: Use automaticCapture instead] Automatically capture this authorization.

      **Deprecated:** Use AutomaticCapture instead
    </ParamField>

    <ParamField path="channel" type="PaymentChannel!" required>
      How the consumer interacts with the acceptor. Defaults to ECOMMERCE if not provided.

      See [PaymentChannel](/acquiring/reference/graphql/types/payment-channel)
    </ParamField>

    <ParamField path="cohortId" type="UUID">
      A unique, 36 character identifier created by Tesouro for the purpose of linking together multiple transaction requests and related fees.
    </ParamField>

    <ParamField path="lineItems" type="[LineItemInput!]">
      Line item details for this order.

      See [LineItemInput](/acquiring/reference/graphql/types/line-item-input)
    </ParamField>

    <ParamField path="orderDetails" type="OrderDetailsInput">
      Details pertaining to the customer's order.

      See [OrderDetailsInput](/acquiring/reference/graphql/types/order-details-input)
    </ParamField>

    <ParamField path="paymentMethodDetails" type="AuthorizeCustomerInitiatedTransactionPaymentMethodInput!" required>
      Details regarding the payment method.

      <Expandable title="child attributes">
        <ParamField path="acquirerTokenDetails" type="AuthorizeCustomerInitiatedTransactionAcquirerTokenDetailsInput">
          <Expandable title="child attributes">
            <ParamField path="expirationMonth" type="NumericMonth!" required>
              The two-digit month (MM) of the card's expiration date.
            </ParamField>

            <ParamField path="expirationYear" type="NumericYear4Digits!" required>
              The four-digit year (YYYY) of the card's expiration date.
            </ParamField>

            <ParamField path="securityCode" type="SecurityCodeInput!" required>
              The 3 digit number (or 4 digit if American Express) found on the customer's card, or the specific reason if the security code is omitted from the request.

              See [SecurityCodeInput](/acquiring/reference/graphql/types/security-code-input)
            </ParamField>

            <ParamField path="token" type="String">
              The value of the acquirer token.
            </ParamField>

            <ParamField path="tokenizedPan" type="String" deprecated>
              The value of the acquirer token.

              **Deprecated:** Use token instead.
            </ParamField>

            <ParamField path="walletType" type="WalletType">
              The wallet provider for this payment method. Null if not applicable.

              See [WalletType](/acquiring/reference/graphql/types/wallet-type)
            </ParamField>
          </Expandable>
        </ParamField>

        <ParamField path="cardWithPanDetails" type="AuthorizeCustomerInitiateTransactionCardWithPanDetailsInput">
          <Expandable title="child attributes">
            <ParamField path="accountNumber" type="CardNumber!" required>
              The card number used in processing the transaction. This is a full PAN.
            </ParamField>

            <ParamField path="expirationMonth" type="NumericMonth!" required>
              The two-digit month (MM) of the card's expiration date.
            </ParamField>

            <ParamField path="expirationYear" type="NumericYear4Digits!" required>
              The four-digit year (YYYY) of the card's expiration date.
            </ParamField>

            <ParamField path="paymentChannel" type="PanEntryChannel" deprecated>
              \[DEPRECATED: Use root level channel instead] The card-present or card-not-present channel from which the customer makes a payment, e.g., In-store using a physical card terminal, online, or over the phone or through mail order

              **Deprecated:** Use root level Channel instead.

              See [PanEntryChannel](/acquiring/reference/graphql/types/pan-entry-channel)
            </ParamField>

            <ParamField path="paymentEntryMode" type="PanEntryMode!" required>
              The means by which the card number was entered.

              See [PanEntryMode](/acquiring/reference/graphql/types/pan-entry-mode)
            </ParamField>

            <ParamField path="securityCode" type="SecurityCodeInput!" required>
              The 3 digit number (or 4 digit if American Express) found on the customer's card, or the specific reason if the security code is omitted from the request.

              See [SecurityCodeInput](/acquiring/reference/graphql/types/security-code-input)
            </ParamField>

            <ParamField path="storageIntent" type="StorageIntent">
              Optional field to be used on customer initiated transactions. Indicates that the presenter intends to store this payment method on file to be used with future merchant initiated transactions.

              <Expandable title="Possible enum values">
                <ParamField path="STORE_ON_FILE" type="enum">
                  The presenter has received consent from the cardholder to store their card details on file.
                </ParamField>
              </Expandable>
            </ParamField>

            <ParamField path="walletType" type="WalletType">
              The wallet provider for this payment method. Null if not applicable.

              See [WalletType](/acquiring/reference/graphql/types/wallet-type)
            </ParamField>
          </Expandable>
        </ParamField>

        <ParamField path="networkTokenPassThroughDetails" type="AuthorizeCustomerInitiatedTransactionNetworkTokenPassThroughDetailsInput">
          <Expandable title="child attributes">
            <ParamField path="cryptogram" type="String!" required>
              The cryptogram generated by the token provider to be used on the transaction.
            </ParamField>

            <ParamField path="ecommerceIndicator" type="String">
              Ecommerce indicator provided by the wallet provider.
            </ParamField>

            <ParamField path="expirationMonth" type="NumericMonth!" required>
              The two-digit month (MM) of the card's expiration date.
            </ParamField>

            <ParamField path="expirationYear" type="NumericYear4Digits!" required>
              The four-digit year (YYYY) of the card's expiration date.
            </ParamField>

            <ParamField path="securityCode" type="SecurityCodeInput" deprecated>
              \[DEPRECATED: Network tokens do not have security codes, so this will be removed.] The 3 digit number (or 4 digit if American Express) found on the customer's card, or the specific reason if the security code is omitted from the request.

              **Deprecated:** Network tokens do not have security codes, so this will be removed.

              See [SecurityCodeInput](/acquiring/reference/graphql/types/security-code-input)
            </ParamField>

            <ParamField path="tokenValue" type="String!" required>
              The value of the network token.
            </ParamField>

            <ParamField path="walletType" type="WalletType">
              The wallet provider for this payment method. Null if not applicable.

              See [WalletType](/acquiring/reference/graphql/types/wallet-type)
            </ParamField>
          </Expandable>
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="pointOfInteraction" type="PointOfInteractionInput">
      If the payment transaction is performed at a specific point of interaction this field should be provided.

      See [PointOfInteractionInput](/acquiring/reference/graphql/types/point-of-interaction-input)
    </ParamField>

    <ParamField path="reason" type="AuthorizeCustomerInitiatedTransactionReasonInput!" required>
      The consumer or transactor's reason for submitting the payment transaction. This enum is used in conjunction with the mutation to authorize a customer initiated transaction (CIT) payment. If not specified, the value will default to GENERAL\_PURCHASE.

      <Expandable title="Possible enum values">
        <ParamField path="DEBT_REPAYMENT" type="enum" />

        <ParamField path="GENERAL_PURCHASE" type="enum" />
      </Expandable>
    </ParamField>

    <ParamField path="transactionAmountDetails" type="AmountDetailsWithFeesInput!" required>
      Specifies the total amount of the transaction and its currency.

      <Expandable title="child attributes">
        <ParamField path="baseAmount" type="DecimalAmount" deprecated>
          The base transaction amount intended to be collected by this payment not including any cashback, gratuity, fees, or taxes.

          **Deprecated:** Use subtotalAmount instead.
        </ParamField>

        <ParamField path="cashBackAmount" type="DecimalAmount">
          The cash back amount. Must be a non-negative value.
        </ParamField>

        <ParamField path="currency" type="TransactionAmountCurrencyCode!" required>
          The purchasing currency code of the request amount.

          See [TransactionAmountCurrencyCode](/acquiring/reference/graphql/types/transaction-amount-currency-code)
        </ParamField>

        <ParamField path="discountAmount" type="Decimal">
          Total discount amount applied to the order. Must be a non-negative value.
        </ParamField>

        <ParamField path="dutyAmount" type="Decimal">
          Total charges for any import or export duties included in the order. Must be a non-negative value.
        </ParamField>

        <ParamField path="fees" type="[PaymentFeeInput]">
          Any fee amounts.

          See [PaymentFeeInput](/acquiring/reference/graphql/types/payment-fee-input)
        </ParamField>

        <ParamField path="gratuityAmount" type="DecimalAmount">
          The gratuity amount. Must be a non-negative value.
        </ParamField>

        <ParamField path="localTaxAmount" type="Decimal">
          The total amount of local tax for this payment transaction request. Local tax is imposed by municipal, city, or regional governments and may include sales tax, service tax, or other location-based levies applicable to the transaction. Must be a non-negative value.
        </ParamField>

        <ParamField path="nationalTaxAmount" type="Decimal">
          The total amount of national tax for this payment transaction request. National tax is a government-imposed tax at the federal or country level, such as Goods and Services Tax (GST), or federal sales tax. Must be a non-negative value.
        </ParamField>

        <ParamField path="shippingAmount" type="Decimal">
          Total shipping charges for the transaction. Must be a non-negative value.
        </ParamField>

        <ParamField path="subtotalAmount" type="DecimalAmount">
          The sum of all item costs in the transaction before applying any additional charges such as taxes, or fees. Must be a non-negative value.
        </ParamField>

        <ParamField path="totalAmount" type="Decimal!" required>
          The requested amount intended to be collected by this transaction. A positive decimal with precision depending on transaction currency. For example: \$10.00 would be 10.00 or 10.
        </ParamField>

        <ParamField path="totalTaxAmount" type="Decimal">
          The total amount of all taxes for this payment transaction request. Must be present if either local or national tax are present. Must be a non-negative value.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="transactionReference" type="Max36Text!" required>
      A unique identifier created by the entity holding the direct relationship with the Acceptor, and used by that entity for reconciliation and transaction search. Tesouro uses this identifier to manage idempotency.
    </ParamField>
  </Expandable>
</ParamField>

## Return type

`AuthorizeCustomerInitiatedTransactionPayload!`

<ResponseField name="authorizationResponse" type="AuthorizationResponse">
  <Expandable title="child attributes">
    <ResponseField name="activityDate" type="Date!" required>
      The date Tesouro received the transaction based on acceptor cutoff time
    </ResponseField>

    <ResponseField name="advice" type="Advice!" required>
      Advice regarding follow up action for this transaction.

      See [Advice](/acquiring/reference/graphql/types/advice)
    </ResponseField>

    <ResponseField name="avsResponseDetails" type="AddressVerificationResponse!" required>
      Address Verification Service (AVS) is a service provided by the payment brands that determines the match or partial match of the consumer's address information.

      See [AddressVerificationResponse](/acquiring/reference/graphql/types/address-verification-response)
    </ResponseField>

    <ResponseField name="businessApplicationId" type="BusinessApplicationId">
      The business application identifier (BAI) is a value provided by Visa to identify the type of transfer that is being performed.

      See [BusinessApplicationId](/acquiring/reference/graphql/types/business-application-id)
    </ResponseField>

    <ResponseField name="cardDetails" type="CardInformation">
      Details related to the card used on the transaction

      See [CardInformation](/acquiring/reference/graphql/types/card-information)
    </ResponseField>

    <ResponseField name="cardSecurityCodeResponseDetails" type="CardSecurityCodeResponseDetails!" required>
      The security code response from the network.

      See [CardSecurityCodeResponseDetails](/acquiring/reference/graphql/types/card-security-code-response-details)
    </ResponseField>

    <ResponseField name="duration" type="Int!" required deprecated>
      Difference between request receipt and response in milliseconds.

      **Deprecated:** New durations coming soon.
    </ResponseField>

    <ResponseField name="isDuplicateRequest" type="Boolean!" required>
      Result of Tesouro's idempotency check. If the transaction reference matches that of another transaction from that presenter it will be treated as a duplicate.
    </ResponseField>

    <ResponseField name="message" type="String!" required>
      A detailed description of the response code. e.g., Insufficient funds.
    </ResponseField>

    <ResponseField name="nameVerificationResponseDetails" type="NameVerificationResponseDetails!" required>
      Name verification service result provided by the payment brand.

      See [NameVerificationResponseDetails](/acquiring/reference/graphql/types/name-verification-response-details)
    </ResponseField>

    <ResponseField name="networkResponseDetails" type="NetworkResponseDetails!" required>
      The response code from the network.

      See [NetworkResponseDetails](/acquiring/reference/graphql/types/network-response-details)
    </ResponseField>

    <ResponseField name="networkTransactionId" type="String">
      The transaction ID forwarded from the network response.
    </ResponseField>

    <ResponseField name="paymentId" type="UUID!" required>
      A unique 36 character identifier created by Tesouro and assigned to a group of transactions in the same payment request cohort. e.g., An authorization request, incremental authorization request, and the final capture would have the same paymentID.
    </ResponseField>

    <ResponseField name="processorResponseCode" type="ProcessorResponseCode!" required>
      A normalized 4-character response code defined by Tesouro that represents the outcome of the payment transaction request.

      See [ProcessorResponseCode](/acquiring/reference/graphql/types/processor-response-code)
    </ResponseField>

    <ResponseField name="sanitizedFields" type="[SanitizedFieldOutput!]!" required>
      List of fields that were detected as invalid and sanitized by Tesouro to prevent the payment transaction request from failing.

      See [SanitizedFieldOutput](/acquiring/reference/graphql/types/sanitized-field-output)
    </ResponseField>

    <ResponseField name="systemTraceAuditNumber" type="String">
      The system trace audit number sent to the network.
    </ResponseField>

    <ResponseField name="timestampUtc" type="DateTime!" required>
      The UTC date and time the transaction was received by Tesouro.
    </ResponseField>

    <ResponseField name="tokenDetails" type="TokenDetails">
      Details associated with the token generated on a tokenization request.

      See [TokenDetails](/acquiring/reference/graphql/types/token-details)
    </ResponseField>

    <ResponseField name="transactionId" type="UUID!" required>
      A unique identifier created by Tesouro and assigned to the transaction.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="errors" type="[AuthorizeCustomerInitiatedTransactionError!]">
  <Expandable title="Possible types">
    <Expandable title="InternalServiceError">
      <ResponseField name="dateTimeUtc" type="DateTime!" required deprecated>
        The date and time, in UTC, that the error occured. Formatted as 2024-03-27T02:40:00Z.

        **Deprecated:** Use errorDateTime instead.
      </ResponseField>

      <ResponseField name="errorDateTime" type="DateTime!" required>
        The date and time, in UTC, that the error occured. Formatted as 2024-03-27T02:40:00Z.
      </ResponseField>

      <ResponseField name="message" type="String!" required>
        A human readable description of the error.
      </ResponseField>

      <ResponseField name="processorResponseCode" type="ProcessorResponseCode!" required>
        Tesouro response code indicating the error.

        See [ProcessorResponseCode](/acquiring/reference/graphql/types/processor-response-code)
      </ResponseField>

      <ResponseField name="transactionId" type="UUID!" required>
        Unique ID for the transaction assigned by Tesouro.
      </ResponseField>
    </Expandable>

    <Expandable title="AcceptorNotFoundError">
      This occurs when an acceptor cannot be found because it does not exist or because it is not presented by the submitted presenter.

      <ResponseField name="dateTimeUtc" type="DateTime!" required deprecated>
        The date and time, in UTC, that the error occured. Formatted as 2024-03-27T02:40:00Z.

        **Deprecated:** Use errorDateTime instead.
      </ResponseField>

      <ResponseField name="errorDateTime" type="DateTime!" required>
        The date and time, in UTC, that the error occured. Formatted as 2024-03-27T02:40:00Z.
      </ResponseField>

      <ResponseField name="message" type="String!" required>
        A human readable description of the error.
      </ResponseField>

      <ResponseField name="organizationId" type="UUID!" required>
        The organization Id presented with this transaction.
      </ResponseField>

      <ResponseField name="presenterId" type="UUID!" required>
        The presenter Id presented with this transaction.
      </ResponseField>

      <ResponseField name="processorResponseCode" type="ProcessorResponseCode!" required>
        Tesouro response code indicating the error.

        See [ProcessorResponseCode](/acquiring/reference/graphql/types/processor-response-code)
      </ResponseField>

      <ResponseField name="transactionId" type="UUID!" required>
        Unique ID for the transaction assigned by Tesouro.
      </ResponseField>

      <ResponseField name="unknownAcceptorId" type="UUID!" required>
        The invalid acceptor Id.
      </ResponseField>
    </Expandable>

    <Expandable title="RuleInViolationError">
      This occurs when an internal Tesouro business rule is in violation.

      <ResponseField name="advice" type="String!" required>
        Advice on how to overcome the rule in the future.
      </ResponseField>

      <ResponseField name="dateTimeUtc" type="DateTime!" required deprecated>
        The date and time, in UTC, that the error occured. Formatted as 2024-03-27T02:40:00Z.

        **Deprecated:** Use errorDateTime instead.
      </ResponseField>

      <ResponseField name="errorDateTime" type="DateTime!" required>
        The date and time, in UTC, that the error occured. Formatted as 2024-03-27T02:40:00Z.
      </ResponseField>

      <ResponseField name="explanationOfRule" type="String!" required>
        An explanation of why the rule exists.
      </ResponseField>

      <ResponseField name="message" type="String!" required>
        A human readable description of the error.
      </ResponseField>

      <ResponseField name="processorResponseCode" type="ProcessorResponseCode!" required>
        Tesouro response code indicating the error.

        See [ProcessorResponseCode](/acquiring/reference/graphql/types/processor-response-code)
      </ResponseField>

      <ResponseField name="ruleName" type="RuleName!" required>
        The name of the rule in violation

        See [RuleName](/acquiring/reference/graphql/types/rule-name)
      </ResponseField>

      <ResponseField name="transactionId" type="UUID!" required>
        Unique ID for the transaction assigned by Tesouro.
      </ResponseField>
    </Expandable>

    <Expandable title="SyntaxOnNetworkResponseError">
      <ResponseField name="attemptedNetwork" type="Network!" required>
        The network the transaction request was attempted with.

        See [Network](/acquiring/reference/graphql/types/network)
      </ResponseField>

      <ResponseField name="dateTimeUtc" type="DateTime!" required deprecated>
        The date and time, in UTC, that the error occured. Formatted as 2024-03-27T02:40:00Z.

        **Deprecated:** Use errorDateTime instead.
      </ResponseField>

      <ResponseField name="errorDateTime" type="DateTime!" required>
        The date and time, in UTC, that the error occured. Formatted as 2024-03-27T02:40:00Z.
      </ResponseField>

      <ResponseField name="message" type="String!" required>
        A human readable description of the error.
      </ResponseField>

      <ResponseField name="processorResponseCode" type="ProcessorResponseCode!" required>
        Tesouro response code indicating the error.

        See [ProcessorResponseCode](/acquiring/reference/graphql/types/processor-response-code)
      </ResponseField>

      <ResponseField name="transactionId" type="UUID!" required>
        Unique ID for the transaction assigned by Tesouro.
      </ResponseField>
    </Expandable>

    <Expandable title="TimeoutOnNetworkResponseError">
      <ResponseField name="attemptedNetwork" type="Network!" required>
        The network the authorization was attempted.

        See [Network](/acquiring/reference/graphql/types/network)
      </ResponseField>

      <ResponseField name="dateTimeUtc" type="DateTime!" required deprecated>
        The date and time, in UTC, that the error occured. Formatted as 2024-03-27T02:40:00Z.

        **Deprecated:** Use errorDateTime instead.
      </ResponseField>

      <ResponseField name="errorDateTime" type="DateTime!" required>
        The date and time, in UTC, that the error occured. Formatted as 2024-03-27T02:40:00Z.
      </ResponseField>

      <ResponseField name="message" type="String!" required>
        A human readable description of the error.
      </ResponseField>

      <ResponseField name="processorResponseCode" type="ProcessorResponseCode!" required>
        Tesouro response code indicating the error.

        See [ProcessorResponseCode](/acquiring/reference/graphql/types/processor-response-code)
      </ResponseField>

      <ResponseField name="transactionId" type="UUID!" required>
        Unique ID for the transaction assigned by Tesouro.
      </ResponseField>

      <ResponseField name="waitTime" type="Int!" required>
        The amount of time Tesouro waited for a response in milliseconds.
      </ResponseField>
    </Expandable>

    <Expandable title="ValidationFailureError">
      <ResponseField name="dateTimeUtc" type="DateTime!" required deprecated>
        The date and time, in UTC, that the error occured. Formatted as 2024-03-27T02:40:00Z.

        **Deprecated:** Use errorDateTime instead.
      </ResponseField>

      <ResponseField name="errorDateTime" type="DateTime!" required>
        The date and time, in UTC, that the error occured. Formatted as 2024-03-27T02:40:00Z.
      </ResponseField>

      <ResponseField name="fieldName" type="String!" required>
        The name of the graphql field in error.
      </ResponseField>

      <ResponseField name="fieldPath" type="String!" required>
        The path to the graphql field in error.
      </ResponseField>

      <ResponseField name="message" type="String!" required>
        A human readable description of the error.
      </ResponseField>

      <ResponseField name="processorResponseCode" type="ProcessorResponseCode!" required>
        Tesouro response code indicating the error.

        See [ProcessorResponseCode](/acquiring/reference/graphql/types/processor-response-code)
      </ResponseField>

      <ResponseField name="transactionId" type="UUID!" required>
        Unique ID for the transaction assigned by Tesouro.
      </ResponseField>

      <ResponseField name="valueInError" type="String!" required>
        The value of the graphql field in error.
      </ResponseField>
    </Expandable>

    <Expandable title="UnknownCardError">
      <ResponseField name="dateTimeUtc" type="DateTime!" required deprecated>
        The date and time, in UTC, that the error occured. Formatted as 2024-03-27T02:40:00Z.

        **Deprecated:** Use errorDateTime instead.
      </ResponseField>

      <ResponseField name="errorDateTime" type="DateTime!" required>
        The date and time, in UTC, that the error occured. Formatted as 2024-03-27T02:40:00Z.
      </ResponseField>

      <ResponseField name="message" type="String!" required>
        A human readable description of the error.
      </ResponseField>

      <ResponseField name="processorResponseCode" type="ProcessorResponseCode!" required>
        Tesouro response code indicating the error.

        See [ProcessorResponseCode](/acquiring/reference/graphql/types/processor-response-code)
      </ResponseField>

      <ResponseField name="transactionId" type="UUID!" required>
        Unique ID for the transaction assigned by Tesouro.
      </ResponseField>
    </Expandable>

    <Expandable title="TokenNotFoundError">
      <ResponseField name="dateTimeUtc" type="DateTime!" required deprecated>
        The date and time, in UTC, that the error occured. Formatted as 2024-03-27T02:40:00Z.

        **Deprecated:** Use errorDateTime instead.
      </ResponseField>

      <ResponseField name="errorDateTime" type="DateTime!" required>
        The date and time, in UTC, that the error occured. Formatted as 2024-03-27T02:40:00Z.
      </ResponseField>

      <ResponseField name="message" type="String!" required>
        A human readable description of the error.
      </ResponseField>

      <ResponseField name="processorResponseCode" type="ProcessorResponseCode!" required>
        Tesouro response code indicating the error.

        See [ProcessorResponseCode](/acquiring/reference/graphql/types/processor-response-code)
      </ResponseField>

      <ResponseField name="transactionId" type="UUID!" required>
        Unique ID for the transaction assigned by Tesouro.
      </ResponseField>
    </Expandable>

    <Expandable title="InvalidTokenError">
      Occurs when an acquirer token deTokenizes into a payment method that is not supportedby the current action.

      <ResponseField name="dateTimeUtc" type="DateTime!" required deprecated>
        The date and time, in UTC, that the error occured. Formatted as 2024-03-27T02:40:00Z.

        **Deprecated:** Use errorDateTime instead.
      </ResponseField>

      <ResponseField name="deTokenizedPaymentMethodType" type="String!" required>
        The type of payment method behind the token.
      </ResponseField>

      <ResponseField name="errorDateTime" type="DateTime!" required>
        The date and time, in UTC, that the error occured. Formatted as 2024-03-27T02:40:00Z.
      </ResponseField>

      <ResponseField name="expectedPaymentMethodType" type="String!" required />

      <ResponseField name="message" type="String!" required>
        A human readable description of the error.
      </ResponseField>

      <ResponseField name="processorResponseCode" type="ProcessorResponseCode!" required>
        Tesouro response code indicating the error.

        See [ProcessorResponseCode](/acquiring/reference/graphql/types/processor-response-code)
      </ResponseField>

      <ResponseField name="transactionId" type="UUID!" required>
        Unique ID for the transaction assigned by Tesouro.
      </ResponseField>
    </Expandable>

    <Expandable title="RouteNotFoundError">
      Occurs when there is no boarded route with Tesouro to process the presented payment method.

      <ResponseField name="boardedPaymentBrandsForAcceptor" type="[PaymentBrand!]!" required>
        The current list of payment brands Tesouro has routes to support.

        See [PaymentBrand](/acquiring/reference/graphql/types/payment-brand)
      </ResponseField>

      <ResponseField name="dateTimeUtc" type="DateTime!" required deprecated>
        The date and time, in UTC, that the error occured. Formatted as 2024-03-27T02:40:00Z.

        **Deprecated:** Use errorDateTime instead.
      </ResponseField>

      <ResponseField name="errorDateTime" type="DateTime!" required>
        The date and time, in UTC, that the error occured. Formatted as 2024-03-27T02:40:00Z.
      </ResponseField>

      <ResponseField name="message" type="String!" required>
        A human readable description of the error.
      </ResponseField>

      <ResponseField name="paymentBrand" type="PaymentBrand!" required>
        The assigned payment brand of the payment method presented for processing.

        See [PaymentBrand](/acquiring/reference/graphql/types/payment-brand)
      </ResponseField>

      <ResponseField name="processorResponseCode" type="ProcessorResponseCode!" required>
        Tesouro response code indicating the error.

        See [ProcessorResponseCode](/acquiring/reference/graphql/types/processor-response-code)
      </ResponseField>

      <ResponseField name="transactionId" type="UUID!" required>
        Unique ID for the transaction assigned by Tesouro.
      </ResponseField>
    </Expandable>
  </Expandable>
</ResponseField>

<RequestExample>
  ```graphql Operation lines expandable theme={null}
  mutation AuthorizeCustomerInitiatedTransaction($authorizeCustomerInitiatedTransactionInput: AuthorizeCustomerInitiatedTransactionInput!) {
    authorizeCustomerInitiatedTransaction(authorizeCustomerInitiatedTransactionInput: $authorizeCustomerInitiatedTransactionInput) {
      authorizationResponse {
        activityDate
        advice {
          networkAdviceCode
        }
        avsResponseDetails {
          avsResponseCode
          networkCode
          responseType
        }
        businessApplicationId
        cardDetails {
          last4
          paymentBrand
        }
        cardSecurityCodeResponseDetails {
          networkCode
          processorCode
        }
        duration
        isDuplicateRequest
        message
        nameVerificationResponseDetails {
          processorCode
        }
        networkResponseDetails {
          networkResponseCode
          processorResponseCode
        }
        networkTransactionId
        paymentId
        processorResponseCode
        sanitizedFields {
          fieldName
          fieldPath
          originalValue
          reason
          sanitizedValue
        }
        systemTraceAuditNumber
        timestampUtc
        tokenDetails {
          token
          tokenizedPan
        }
        transactionId
      }
      errors {
        ... on InternalServiceError {
          dateTimeUtc
          errorDateTime
          message
          processorResponseCode
          transactionId
        }
        ... on AcceptorNotFoundError {
          dateTimeUtc
          errorDateTime
          message
          organizationId
          presenterId
        }
        ... on RuleInViolationError {
          advice
          dateTimeUtc
          errorDateTime
          explanationOfRule
          message
        }
        ... on SyntaxOnNetworkResponseError {
          attemptedNetwork
          dateTimeUtc
          errorDateTime
          message
          processorResponseCode
        }
        ... on TimeoutOnNetworkResponseError {
          attemptedNetwork
          dateTimeUtc
          errorDateTime
          message
          processorResponseCode
        }
        ... on ValidationFailureError {
          dateTimeUtc
          errorDateTime
          fieldName
          fieldPath
          message
        }
        ... on UnknownCardError {
          dateTimeUtc
          errorDateTime
          message
          processorResponseCode
          transactionId
        }
        ... on TokenNotFoundError {
          dateTimeUtc
          errorDateTime
          message
          processorResponseCode
          transactionId
        }
        ... on InvalidTokenError {
          dateTimeUtc
          deTokenizedPaymentMethodType
          errorDateTime
          expectedPaymentMethodType
          message
        }
        ... on RouteNotFoundError {
          boardedPaymentBrandsForAcceptor
          dateTimeUtc
          errorDateTime
          message
          paymentBrand
        }
      }
    }
  }
  ```

  ```json Variables lines expandable theme={null}
  {
    "authorizeCustomerInitiatedTransactionInput": {
      "acceptorId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "authorizationIntent": "UNDEFINED_AUTHORIZATION",
      "channel": "ECOMMERCE",
      "paymentMethodDetails": {
        "acquirerTokenDetails": "example",
        "cardWithPanDetails": "example",
        "networkTokenPassThroughDetails": "example"
      },
      "reason": "DEBT_REPAYMENT",
      "transactionAmountDetails": {
        "currency": "USD",
        "totalAmount": 0
      },
      "transactionReference": "example"
    }
  }
  ```

  ```bash cURL lines expandable theme={null}
  curl --request POST \
    --url https://api.sandbox.com/graphql \
    --header 'Content-Type: application/json' \
    --header 'Authorization: Bearer <YOUR_ACCESS_TOKEN>' \
    --data '{
    "query": "mutation AuthorizeCustomerInitiatedTransaction($authorizeCustomerInitiatedTransactionInput: AuthorizeCustomerInitiatedTransactionInput!) {\n  authorizeCustomerInitiatedTransaction(authorizeCustomerInitiatedTransactionInput: $authorizeCustomerInitiatedTransactionInput) {\n    authorizationResponse {\n      activityDate\n      advice {\n        networkAdviceCode\n      }\n      avsResponseDetails {\n        avsResponseCode\n        networkCode\n        responseType\n      }\n      businessApplicationId\n      cardDetails {\n        last4\n        paymentBrand\n      }\n      cardSecurityCodeResponseDetails {\n        networkCode\n        processorCode\n      }\n      duration\n      isDuplicateRequest\n      message\n      nameVerificationResponseDetails {\n        processorCode\n      }\n      networkResponseDetails {\n        networkResponseCode\n        processorResponseCode\n      }\n      networkTransactionId\n      paymentId\n      processorResponseCode\n      sanitizedFields {\n        fieldName\n        fieldPath\n        originalValue\n        reason\n        sanitizedValue\n      }\n      systemTraceAuditNumber\n      timestampUtc\n      tokenDetails {\n        token\n        tokenizedPan\n      }\n      transactionId\n    }\n    errors {\n      ... on InternalServiceError {\n        dateTimeUtc\n        errorDateTime\n        message\n        processorResponseCode\n        transactionId\n      }\n      ... on AcceptorNotFoundError {\n        dateTimeUtc\n        errorDateTime\n        message\n        organizationId\n        presenterId\n      }\n      ... on RuleInViolationError {\n        advice\n        dateTimeUtc\n        errorDateTime\n        explanationOfRule\n        message\n      }\n      ... on SyntaxOnNetworkResponseError {\n        attemptedNetwork\n        dateTimeUtc\n        errorDateTime\n        message\n        processorResponseCode\n      }\n      ... on TimeoutOnNetworkResponseError {\n        attemptedNetwork\n        dateTimeUtc\n        errorDateTime\n        message\n        processorResponseCode\n      }\n      ... on ValidationFailureError {\n        dateTimeUtc\n        errorDateTime\n        fieldName\n        fieldPath\n        message\n      }\n      ... on UnknownCardError {\n        dateTimeUtc\n        errorDateTime\n        message\n        processorResponseCode\n        transactionId\n      }\n      ... on TokenNotFoundError {\n        dateTimeUtc\n        errorDateTime\n        message\n        processorResponseCode\n        transactionId\n      }\n      ... on InvalidTokenError {\n        dateTimeUtc\n        deTokenizedPaymentMethodType\n        errorDateTime\n        expectedPaymentMethodType\n        message\n      }\n      ... on RouteNotFoundError {\n        boardedPaymentBrandsForAcceptor\n        dateTimeUtc\n        errorDateTime\n        message\n        paymentBrand\n      }\n    }\n  }\n}",
    "variables": {
      "authorizeCustomerInitiatedTransactionInput": {
        "acceptorId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
        "authorizationIntent": "UNDEFINED_AUTHORIZATION",
        "channel": "ECOMMERCE",
        "paymentMethodDetails": {
          "acquirerTokenDetails": "example",
          "cardWithPanDetails": "example",
          "networkTokenPassThroughDetails": "example"
        },
        "reason": "DEBT_REPAYMENT",
        "transactionAmountDetails": {
          "currency": "USD",
          "totalAmount": 0
        },
        "transactionReference": "example"
      }
    }
  }'
  ```
</RequestExample>

<ResponseExample>
  ```json Response lines expandable theme={null}
  {
    "data": {
      "authorizeCustomerInitiatedTransaction": {
        "authorizationResponse": {
          "activityDate": "2026-01-15",
          "advice": {
            "networkAdviceCode": "example"
          },
          "avsResponseDetails": {
            "avsResponseCode": "ADDRESS_MATCHED_POSTALCODE_MATCHED",
            "networkCode": "example",
            "responseType": "FULL_MATCH"
          },
          "businessApplicationId": "CB",
          "cardDetails": {
            "last4": "1234",
            "paymentBrand": "VISA"
          },
          "cardSecurityCodeResponseDetails": {
            "networkCode": "example",
            "processorCode": "MATCH"
          },
          "duration": 0,
          "isDuplicateRequest": true,
          "message": "example",
          "nameVerificationResponseDetails": {
            "processorCode": "MATCH"
          },
          "networkResponseDetails": {
            "networkResponseCode": "example",
            "processorResponseCode": "A0000"
          },
          "networkTransactionId": "example",
          "paymentId": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
          "processorResponseCode": "A0000",
          "sanitizedFields": [
            {
              "fieldName": "example",
              "fieldPath": "example",
              "originalValue": "example",
              "reason": "example",
              "sanitizedValue": "example"
            }
          ],
          "systemTraceAuditNumber": "example",
          "timestampUtc": "2026-01-15T14:30:00Z",
          "tokenDetails": {
            "token": "example",
            "tokenizedPan": "example"
          },
          "transactionId": "c9a1e2d3-4b5f-6789-0abc-def123456789"
        },
        "errors": [
          {
            "__typename": "InternalServiceError",
            "dateTimeUtc": "2026-01-15T14:30:00Z",
            "errorDateTime": "2026-01-15T14:30:00Z",
            "message": "example",
            "processorResponseCode": "A0000",
            "transactionId": "d8b2f3e4-5c6a-7890-1bcd-ef2345678901"
          }
        ]
      }
    }
  }
  ```
</ResponseExample>
