> ## 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.

# authorizeRecurring

> For use when authorizing a recurring payment.

`Mutation`

## Arguments

<ParamField path="authorizeRecurringInput" type="AuthorizeRecurringInput!" 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="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="citReference" type="CitReferenceInput!" required>
      Reference to the original customer initiated transaction. If the payment was processed via Tesouro pass the customer initiated transaction payment ID. If payment was processed via another processor pass the merchant initiated transaction pass through data.

      <Expandable title="child attributes">
        <ParamField path="citPaymentId" type="UUID" />

        <ParamField path="mitPassThrough" type="MitPassThroughInput">
          <Expandable title="child attributes">
            <ParamField path="citNetworkTransactionId" type="String!" required>
              The network transaction id provided in the response of the customer initiated transaction.
            </ParamField>
          </Expandable>
        </ParamField>
      </Expandable>
    </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="originalPurchaseDate" type="Date!" required>
      The date of the original purchase.
    </ParamField>

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

      <Expandable title="child attributes">
        <ParamField path="acquirerTokenDetails" type="AuthorizeRecurringAcquirerTokenDetailsInput">
          <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="AuthorizeRecurringCardWithPanDetailsInput">
          <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="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="AuthorizeRecurringNetworkTokenPassThroughDetailsInput">
          <Expandable title="child attributes">
            <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="AuthorizeRecurringReasonInput!" required>
      The consumer or transactor's reason for submitting the payment transaction. This enum is used in conjunction with the mutation to authorize a recurring payment transaction. 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

`AuthorizeRecurringPayload!`

<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="[AuthorizeRecurringError!]">
  <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="PriorPaymentNotFoundError">
      This occurs when a prior referenced payment cannot be found

      <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="unknownPaymentId" type="UUID!" required>
        The payment id that cannot be found.
      </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 AuthorizeRecurring($authorizeRecurringInput: AuthorizeRecurringInput!) {
    authorizeRecurring(authorizeRecurringInput: $authorizeRecurringInput) {
      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 PriorPaymentNotFoundError {
          dateTimeUtc
          errorDateTime
          message
          processorResponseCode
          transactionId
        }
        ... 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}
  {
    "authorizeRecurringInput": {
      "acceptorId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "channel": "ECOMMERCE",
      "citReference": {
        "citPaymentId": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
        "mitPassThrough": "example"
      },
      "originalPurchaseDate": "2026-01-15",
      "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 AuthorizeRecurring($authorizeRecurringInput: AuthorizeRecurringInput!) {\n  authorizeRecurring(authorizeRecurringInput: $authorizeRecurringInput) {\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 PriorPaymentNotFoundError {\n        dateTimeUtc\n        errorDateTime\n        message\n        processorResponseCode\n        transactionId\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": {
      "authorizeRecurringInput": {
        "acceptorId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
        "channel": "ECOMMERCE",
        "citReference": {
          "citPaymentId": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
          "mitPassThrough": "example"
        },
        "originalPurchaseDate": "2026-01-15",
        "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": {
      "authorizeRecurring": {
        "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": "c9a1e2d3-4b5f-6789-0abc-def123456789",
          "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": "d8b2f3e4-5c6a-7890-1bcd-ef2345678901"
        },
        "errors": [
          {
            "__typename": "InternalServiceError",
            "dateTimeUtc": "2026-01-15T14:30:00Z",
            "errorDateTime": "2026-01-15T14:30:00Z",
            "message": "example",
            "processorResponseCode": "A0000",
            "transactionId": "e7c3a4b5-6d7e-8901-2cde-f34567890123"
          }
        ]
      }
    }
  }
  ```
</ResponseExample>
