---
title: "Create a Pending Transaction"
method: POST
path: "/pending_transactions"
---

# Create a Pending Transaction

`POST /pending_transactions`

Creates a pending transaction on an account. This can be useful to hold funds for an external payment or known future transaction outside of Increase (only negative amounts are supported). The resulting Pending Transaction will have a `category` of `user_initiated_hold` and can be released via the API to unlock the held funds.

## Request body

- CreateAPendingTransactionParameters
  - `account_id` string, required — The Account to place the hold on.
  - `amount` integer, required — The amount to hold in the minor unit of the account's currency. For dollars, for example, this is cents. This should be a negative amount: To hold $1.00 from the account, pass -100 as `amount`.
  - `description` string — The description you choose to give the hold.

## Response `200`

Pending Transaction

- PendingTransaction — Pending Transactions are potential future additions and removals of money from your bank account. They impact your available balance, but not your current balance. To learn more, see [Transactions and Transfers](/documentation/transactions-transfers).
  - `account_id` string, required — The identifier for the account this Pending Transaction belongs to.
  - `amount` integer, required — The Pending Transaction amount in the minor unit of its currency. For dollars, for example, this is cents. This amount does not change after the Pending Transaction is created. If a card authorization settles for a different amount, the settled amount is available on the resulting Transaction and on the Card Payment's `state.settled_amount`.
  - `completed_at` string, date-time, nullable, required — The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date on which the Pending Transaction was completed.
  - `created_at` string, date-time, required — The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date on which the Pending Transaction occurred.
  - `currency` 'USD', required — The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) code for the Pending Transaction's currency. This will match the currency on the Pending Transaction's Account.
  - `description` string, required — For a Pending Transaction related to a transfer, this is the description you provide. For a Pending Transaction related to a payment, this is the description the vendor provides.
  - `held_amount` integer, required — The amount that this Pending Transaction decrements the available balance of its Account. This is usually the same as `amount`, but will differ if the amount is positive.
  - `id` string, required — The Pending Transaction identifier.
  - `route_id` string, nullable, required — The identifier for the route this Pending Transaction came through. Routes are things like cards and ACH details.
  - `route_type` 'account_number' | 'card' | 'lockbox', nullable, required — The type of the route this Pending Transaction came through.
  - `source` object, required — This is an object giving more details on the network-level event that caused the Pending Transaction. For example, for a card transaction this lists the merchant's industry and location.
    - `account_transfer_instruction` object, nullable — An Account Transfer Instruction object. This field will be present in the JSON response if and only if `category` is equal to `account_transfer_instruction`.
      - `amount` integer, required — The pending amount in the minor unit of the transaction's currency. For dollars, for example, this is cents.
      - `currency` 'USD', required — The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) code for the destination account currency.
      - `transfer_id` string, required — The identifier of the Account Transfer that led to this Pending Transaction.
    - `ach_transfer_instruction` object, nullable — An ACH Transfer Instruction object. This field will be present in the JSON response if and only if `category` is equal to `ach_transfer_instruction`.
      - `amount` integer, required — The pending amount in USD cents.
      - `transfer_id` string, required — The identifier of the ACH Transfer that led to this Pending Transaction.
    - `blockchain_offramp_transfer` BlockchainOfframpTransfer — Blockchain Off-Ramp Transfers move funds from a Blockchain Address to an Account. They're automatically created when funds land in a Blockchain Address.
      - `amount` integer, required — The transfer amount in USD cents.
      - `created_at` string, date-time, required — The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time at which the transfer was created.
      - `destination_account_id` string, required — The Account the funds were transferred into.
      - `id` string, required — The Blockchain Off-Ramp Transfer's identifier.
      - `initiating_transaction_hash` string, required — The transaction hash of the blockchain transaction that initiated this transfer.
      - `source_blockchain_address_id` string, required — The Blockchain Address from which the transfer originated.
      - `status` 'pending_settlement' | 'settled', required — The lifecycle status of the transfer.
      - `token` 'usdc', required — The token that was received.
      - `transaction_id` string, nullable, required — The Transaction crediting the Account once the transfer is settled.
      - `type` 'blockchain_offramp_transfer', required — A constant representing the object's type. For this resource it will always be `blockchain_offramp_transfer`.
    - `blockchain_onramp_transfer_instruction` object, nullable — A Blockchain On-Ramp Transfer Instruction object. This field will be present in the JSON response if and only if `category` is equal to `blockchain_onramp_transfer_instruction`.
      - `amount` integer, required — The transfer amount in USD cents.
      - `destination_blockchain_address` string, required — The blockchain address the funds are being sent to.
      - `transfer_id` string, required — The identifier of the Blockchain On-Ramp Transfer that led to this Pending Transaction.
    - `card_authorization` CardAuthorization — Card Authorizations are temporary holds placed on a customer's funds with the intent to later clear a transaction.
      - `actioner` 'user' | 'increase' | 'network', required — Whether this authorization was approved by Increase, the card network through stand-in processing, or the user through a real-time decision.
      - `additional_amounts` object, required — Additional amounts associated with the card authorization, such as ATM surcharges fees. These are usually a subset of the `amount` field and are used to provide more detailed information about the transaction.
        - `clinic` object, nullable, required — The part of this transaction amount that was for clinic-related services.
          - `amount` integer, required — The amount in minor units of the `currency` field. The amount is positive if it is added to the amount (such as an ATM surcharge fee) and negative if it is subtracted from the amount (such as a discount).
          - `currency` string, required — The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) code for the additional amount's currency.
        - `dental` object, nullable, required — The part of this transaction amount that was for dental-related services.
          - `amount` integer, required — The amount in minor units of the `currency` field. The amount is positive if it is added to the amount (such as an ATM surcharge fee) and negative if it is subtracted from the amount (such as a discount).
          - `currency` string, required — The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) code for the additional amount's currency.
        - `original` object, nullable, required — The original pre-authorized amount.
          - `amount` integer, required — The amount in minor units of the `currency` field. The amount is positive if it is added to the amount (such as an ATM surcharge fee) and negative if it is subtracted from the amount (such as a discount).
          - `currency` string, required — The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) code for the additional amount's currency.
        - `prescription` object, nullable, required — The part of this transaction amount that was for healthcare prescriptions.
          - `amount` integer, required — The amount in minor units of the `currency` field. The amount is positive if it is added to the amount (such as an ATM surcharge fee) and negative if it is subtracted from the amount (such as a discount).
          - `currency` string, required — The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) code for the additional amount's currency.
        - `surcharge` object, nullable, required — The surcharge amount charged for this transaction by the merchant.
          - `amount` integer, required — The amount in minor units of the `currency` field. The amount is positive if it is added to the amount (such as an ATM surcharge fee) and negative if it is subtracted from the amount (such as a discount).
          - `currency` string, required — The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) code for the additional amount's currency.
        - `total_cumulative` object, nullable, required — The total amount of a series of incremental authorizations, optionally provided.
          - `amount` integer, required — The amount in minor units of the `currency` field. The amount is positive if it is added to the amount (such as an ATM surcharge fee) and negative if it is subtracted from the amount (such as a discount).
          - `currency` string, required — The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) code for the additional amount's currency.
        - `total_healthcare` object, nullable, required — The total amount of healthcare-related additional amounts.
          - `amount` integer, required — The amount in minor units of the `currency` field. The amount is positive if it is added to the amount (such as an ATM surcharge fee) and negative if it is subtracted from the amount (such as a discount).
          - `currency` string, required — The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) code for the additional amount's currency.
        - `transit` object, nullable, required — The part of this transaction amount that was for transit-related services.
          - `amount` integer, required — The amount in minor units of the `currency` field. The amount is positive if it is added to the amount (such as an ATM surcharge fee) and negative if it is subtracted from the amount (such as a discount).
          - `currency` string, required — The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) code for the additional amount's currency.
        - `unknown` object, nullable, required — An unknown additional amount.
          - `amount` integer, required — The amount in minor units of the `currency` field. The amount is positive if it is added to the amount (such as an ATM surcharge fee) and negative if it is subtracted from the amount (such as a discount).
          - `currency` string, required — The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) code for the additional amount's currency.
        - `vision` object, nullable, required — The part of this transaction amount that was for vision-related services.
          - `amount` integer, required — The amount in minor units of the `currency` field. The amount is positive if it is added to the amount (such as an ATM surcharge fee) and negative if it is subtracted from the amount (such as a discount).
          - `currency` string, required — The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) code for the additional amount's currency.
      - `amount` integer, required — The pending amount in the minor unit of the transaction's currency. For dollars, for example, this is cents.
      - `card_payment_id` string, required — The ID of the Card Payment this transaction belongs to.
      - `currency` 'USD', required — The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) code for the transaction's currency.
      - `digital_wallet_token_id` string, nullable, required — If the authorization was made via a Digital Wallet Token (such as an Apple Pay purchase), the identifier of the token that was used.
      - `direction` 'settlement' | 'refund', required — The direction describes the direction the funds will move, either from the cardholder to the merchant or from the merchant to the cardholder.
      - `expires_at` string, date-time, required — The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) when this authorization will expire and the pending transaction will be released.
      - `healthcare` object, nullable, required — The healthcare-related fields for this authorization. Only present for specific programs.
        - `merchant_ninety_percent_eligibility` 'eligible' | 'not_eligible', required — The merchant's eligibility under the Internal Revenue Service's 90% Rule for Flexible Spending Account (FSA) and Health Savings Account (HSA) eligible products. The eligibility is determined based on the list of merchants maintained by the Special Interest Group for IIAS Standards (SIGIS).
      - `id` string, required — The Card Authorization identifier.
      - `merchant_acceptor_id` string, required — The merchant identifier (commonly abbreviated as MID) of the merchant the card is transacting with.
      - `merchant_category_code` string, required — The Merchant Category Code (commonly abbreviated as MCC) of the merchant the card is transacting with.
      - `merchant_city` string, nullable, required — The city the merchant resides in.
      - `merchant_country` string, required — The country the merchant resides in.
      - `merchant_descriptor` string, required — The merchant descriptor of the merchant the card is transacting with.
      - `merchant_postal_code` string, nullable, required — The merchant's postal code. For US merchants this is either a 5-digit or 9-digit ZIP code, where the first 5 and last 4 are separated by a dash.
      - `merchant_state` string, nullable, required — The state the merchant resides in.
      - `network_details` object, required — Fields specific to the `network`.
        - `category` 'visa' | 'pulse', required — The payment network used to process this card authorization.
        - `pulse` object, nullable, required — Fields specific to the `pulse` network.
        - `visa` object, nullable, required — Fields specific to the `visa` network.
          - `electronic_commerce_indicator` 'mail_phone_order' | 'recurring' | 'installment' | 'unknown_mail_phone_order' | 'secure_electronic_commerce' | 'non_authenticated_security_transaction_at_3ds_capable_merchant' | 'non_authenticated_security_transaction' | 'non_secure_transaction', nullable, required — For electronic commerce transactions, this identifies the level of security used in obtaining the customer's payment credential. For mail or telephone order transactions, identifies the type of mail or telephone order.
          - `point_of_service_entry_mode` 'unknown' | 'manual' | 'magnetic_stripe_no_cvv' | 'optical_code' | 'integrated_circuit_card' | 'contactless' | 'credential_on_file' | 'magnetic_stripe' | 'contactless_magnetic_stripe' | 'integrated_circuit_card_no_cvv', nullable, required — The method used to enter the cardholder's primary account number and card expiration date.
          - `stand_in_processing_reason` 'issuer_error' | 'invalid_physical_card' | 'invalid_cryptogram' | 'invalid_cardholder_authentication_verification_value' | 'internal_visa_error' | 'merchant_transaction_advisory_service_authentication_required' | 'payment_fraud_disruption_acquirer_block' | 'other', nullable, required — Only present when `actioner: network`. Describes why a card authorization was approved or declined by Visa through stand-in processing.
          - `terminal_entry_capability` 'unknown' | 'terminal_not_used' | 'magnetic_stripe' | 'barcode' | 'optical_character_recognition' | 'chip_or_contactless' | 'contactless_only' | 'no_capability', nullable, required — The capability of the terminal being used to read the card. Shows whether a terminal can e.g., accept chip cards or if it only supports magnetic stripe reads. This reflects the highest capability of the terminal — for example, a terminal that supports both chip and magnetic stripe will be identified as chip-capable.
      - `network_identifiers` object, required — Network-specific identifiers for a specific request or transaction.
        - `authorization_identification_response` string, nullable, required — The randomly generated 6-character Authorization Identification Response code sent back to the acquirer in an approved response.
        - `retrieval_reference_number` string, nullable, required — A life-cycle identifier used across e.g., an authorization and a reversal. Expected to be unique per acquirer within a window of time. For some card networks the retrieval reference number includes the trace counter.
        - `trace_number` string, nullable, required — A counter used to verify an individual authorization. Expected to be unique per acquirer within a window of time.
        - `transaction_id` string, nullable, required — A globally unique transaction identifier provided by the card network, used across multiple life-cycle requests.
      - `network_risk_score` integer, nullable, required — The risk score generated by the card network. For Visa this is the Visa Advanced Authorization risk score, from 0 to 99, where 99 is the riskiest. For Pulse the score is from 0 to 999, where 999 is the riskiest.
      - `original_card_payment_id` string, nullable, required — The ID of the Card Payment containing the original authorization or card validation this transaction references. For a merchant-initiated transaction, this is the Card Payment from when the card was first stored, which is typically where the CVV2 was verified. The reference this is derived from is supplied by the merchant or their acquirer, so it is not guaranteed to be present.
      - `pending_transaction_id` string, nullable, required — The identifier of the Pending Transaction associated with this Transaction.
      - `physical_card_id` string, nullable, required — If the authorization was made in-person with a physical card, the Physical Card that was used.
      - `presentment_amount` integer, required — The pending amount in the minor unit of the transaction's presentment currency.
      - `presentment_currency` string, required — The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) code for the transaction's presentment currency.
      - `processing_category` 'account_funding' | 'automatic_fuel_dispenser' | 'bill_payment' | 'original_credit' | 'purchase' | 'quasi_cash' | 'refund' | 'cash_disbursement' | 'cash_deposit' | 'balance_inquiry' | 'unknown', required — The processing category describes the intent behind the authorization, such as whether it was used for bill payments or an automatic fuel dispenser.
      - `real_time_decision_id` string, nullable, required — The identifier of the Real-Time Decision sent to approve or decline this transaction.
      - `scheme_fees` object[], required — The scheme fees associated with this card authorization.
        - `amount` string, required — The fee amount given as a string containing a decimal number.
        - `created_at` string, date-time, required — The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) time at which the fee was created.
        - `currency` 'USD', required — The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) code for the fee reimbursement.
        - `fee_type` 'visa_international_service_assessment_single_currency' | 'visa_international_service_assessment_cross_currency' | 'visa_authorization_domestic_point_of_sale' | 'visa_authorization_international_point_of_sale' | 'visa_authorization_canada_point_of_sale' | 'visa_authorization_reversal_point_of_sale' | 'visa_authorization_reversal_international_point_of_sale' | 'visa_authorization_address_verification_service' | 'visa_advanced_authorization' | 'visa_message_transmission' | 'visa_account_verification_domestic' | 'visa_account_verification_international' | 'visa_account_verification_canada' | 'visa_corporate_acceptance_fee' | 'visa_consumer_debit_acceptance_fee' | 'visa_business_debit_acceptance_fee' | 'visa_purchasing_acceptance_fee' | 'visa_purchase_domestic' | 'visa_purchase_international' | 'visa_credit_purchase_token' | 'visa_debit_purchase_token' | 'visa_clearing_transmission' | 'visa_direct_authorization' | 'visa_direct_transaction_domestic' | 'visa_service_commercial_credit' | 'visa_advertising_service_commercial_credit' | 'visa_community_growth_acceleration_program' | 'visa_processing_guarantee_commercial_credit' | 'pulse_switch_fee', required — The type of fee being assessed.
        - `fixed_component` string, nullable, required — The fixed component of the fee, if applicable, given in major units of the fee amount.
        - `variable_rate` string, nullable, required — The variable rate component of the fee, if applicable, given as a decimal (e.g., 0.015 for 1.5%).
      - `terminal_id` string, nullable, required — The terminal identifier (commonly abbreviated as TID) of the terminal the card is transacting with.
      - `type` 'card_authorization', required — A constant representing the object's type. For this resource it will always be `card_authorization`.
      - `verification` object, required — Fields related to verification of cardholder-provided values.
        - `card_verification_code` object, required — Fields related to verification of the Card Verification Code, a 3-digit code on the back of the card.
          - `result` 'not_checked' | 'match' | 'no_match', required — The result of verifying the Card Verification Code.
        - `cardholder_address` object, required — Cardholder address provided in the authorization request and the address on file we verified it against.
          - `actual_line1` string, nullable, required — Line 1 of the address on file for the cardholder.
          - `actual_postal_code` string, nullable, required — The postal code of the address on file for the cardholder.
          - `provided_line1` string, nullable, required — The cardholder address line 1 provided for verification in the authorization request.
          - `provided_postal_code` string, nullable, required — The postal code provided for verification in the authorization request.
          - `result` 'not_checked' | 'postal_code_match_address_no_match' | 'postal_code_no_match_address_match' | 'match' | 'no_match' | 'postal_code_match_address_not_checked', required — The address verification result returned to the card network.
        - `cardholder_name` object, nullable, required — Cardholder name provided in the authorization request.
          - `provided_first_name` string, nullable, required — The first name provided for verification in the authorization request.
          - `provided_last_name` string, nullable, required — The last name provided for verification in the authorization request.
          - `provided_middle_name` string, nullable, required — The middle name provided for verification in the authorization request.
    - `card_push_transfer_instruction` object, nullable — A Card Push Transfer Instruction object. This field will be present in the JSON response if and only if `category` is equal to `card_push_transfer_instruction`.
      - `amount` integer, required — The transfer amount in USD cents.
      - `transfer_id` string, required — The identifier of the Card Push Transfer that led to this Pending Transaction.
    - `category` 'account_transfer_instruction' | 'ach_transfer_instruction' | 'card_authorization' | 'check_deposit_instruction' | 'check_transfer_instruction' | 'fednow_transfer_instruction' | 'inbound_funds_hold' | 'user_initiated_hold' | 'real_time_payments_transfer_instruction' | 'wire_transfer_instruction' | 'inbound_wire_transfer_reversal' | 'swift_transfer_instruction' | 'card_push_transfer_instruction' | 'blockchain_onramp_transfer_instruction' | 'blockchain_offramp_transfer' | 'other', required — The type of the resource. We may add additional possible values for this enum over time; your application should be able to handle such additions gracefully.
    - `check_deposit_instruction` object, nullable — A Check Deposit Instruction object. This field will be present in the JSON response if and only if `category` is equal to `check_deposit_instruction`.
      - `amount` integer, required — The pending amount in USD cents.
      - `back_image_file_id` string, nullable, required — The identifier of the File containing the image of the back of the check that was deposited.
      - `check_deposit_id` string, nullable, required — The identifier of the Check Deposit.
      - `currency` 'USD', required — The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) code for the transaction's currency.
      - `front_image_file_id` string, required — The identifier of the File containing the image of the front of the check that was deposited.
    - `check_transfer_instruction` object, nullable — A Check Transfer Instruction object. This field will be present in the JSON response if and only if `category` is equal to `check_transfer_instruction`.
      - `amount` integer, required — The transfer amount in USD cents.
      - `currency` 'USD', required — The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) code for the check's currency.
      - `transfer_id` string, required — The identifier of the Check Transfer that led to this Pending Transaction.
    - `fednow_transfer_instruction` object, nullable — A FedNow Transfer Instruction object. This field will be present in the JSON response if and only if `category` is equal to `fednow_transfer_instruction`.
      - `transfer_id` string, required — The identifier of the FedNow Transfer that led to this Pending Transaction.
    - `inbound_funds_hold` InboundFundsHold — We hold funds for certain transaction types to account for return windows where funds might still be clawed back by the sending institution.
      - `amount` integer, required — The held amount in the minor unit of the account's currency. For dollars, for example, this is cents.
      - `automatically_releases_at` string, date-time, required — When the hold will be released automatically. Certain conditions may cause it to be released before this time.
      - `created_at` string, date-time, required — The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) time at which the hold was created.
      - `currency` 'USD', required — The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) code for the hold's currency.
      - `held_transaction_id` string, nullable, required — The ID of the Transaction for which funds were held.
      - `pending_transaction_id` string, nullable, required — The ID of the Pending Transaction representing the held funds.
      - `released_at` string, date-time, nullable, required — When the hold was released (if it has been released).
      - `status` 'held' | 'complete', required — The status of the hold.
      - `type` 'inbound_funds_hold', required — A constant representing the object's type. For this resource it will always be `inbound_funds_hold`.
    - `inbound_wire_transfer_reversal` InboundWireTransferReversal — An Inbound Wire Transfer Reversal Intention is created when Increase has received a wire and the User requests that it be reversed.
      - `inbound_wire_transfer_id` string, required — The ID of the Inbound Wire Transfer that is being reversed.
    - `other` object, nullable — If the category of this Transaction source is equal to `other`, this field will contain an empty object, otherwise it will contain null.
    - `real_time_payments_transfer_instruction` object, nullable — A Real-Time Payments Transfer Instruction object. This field will be present in the JSON response if and only if `category` is equal to `real_time_payments_transfer_instruction`.
      - `amount` integer, required — The transfer amount in USD cents.
      - `transfer_id` string, required — The identifier of the Real-Time Payments Transfer that led to this Pending Transaction.
    - `swift_transfer_instruction` object, nullable — A Swift Transfer Instruction object. This field will be present in the JSON response if and only if `category` is equal to `swift_transfer_instruction`.
      - `transfer_id` string, required — The identifier of the Swift Transfer that led to this Pending Transaction.
    - `user_initiated_hold` object, nullable — An User Initiated Hold object. This field will be present in the JSON response if and only if `category` is equal to `user_initiated_hold`. Created when a user initiates a hold on funds in their account.
    - `wire_transfer_instruction` object, nullable — A Wire Transfer Instruction object. This field will be present in the JSON response if and only if `category` is equal to `wire_transfer_instruction`.
      - `account_number` string, required — The account number for the destination account.
      - `amount` integer, required — The transfer amount in USD cents.
      - `message_to_recipient` string, required — The message that will show on the recipient's bank statement.
      - `routing_number` string, required — The American Bankers' Association (ABA) Routing Transit Number (RTN) for the destination account.
      - `transfer_id` string, required — The identifier of the Wire Transfer that led to this Pending Transaction.
  - `status` 'pending' | 'complete', required — Whether the Pending Transaction has been confirmed and has an associated Transaction.
  - `type` 'pending_transaction', required — A constant representing the object's type. For this resource it will always be `pending_transaction`.

## Other responses

- `4XX` — Error
- `5XX` — Error

---

[API](https://skmtc.net/increase/apis/increase-api-2.md) · [All operations](https://skmtc.net/increase/apis/increase-api-2/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/increase/increase-api-2/versions/e968bcd4dcf9/schema)
