---
title: "Create payin from deposit method"
method: POST
path: "/v1/deposit_methods/{deposit_method_id}/payin"
tags: ["Deposit Methods"]
---

# Create payin from deposit method

`POST /v1/deposit_methods/{deposit_method_id}/payin`

## Request

- Base URL: `https://api.sandbox.rainforestpay.com`
- URL: `https://api.sandbox.rainforestpay.com/v1/deposit_methods/{deposit_method_id}/payin`
- Auth: HTTP bearer

Create and process a payin using a payin configuration and a deposit method. The merchant status must be ACTIVE to create a payin.

The deposit method details (i.e bank account number and billing contact) will be duplicated to a payment method and a payin will process against the newly created payment method. Metadata, method metadata, and new billing contact details can be defined on the [Payin Config](ref:create_payin_config).

This endpoint requires Rainforest approval.

## Headers

- `Rainforest-Api-Version` '2024-10-16'

## Parameters

- `#/paths/~1v1~1deposit_methods~1{deposit_method_id}/get/parameters/1` (unresolved $ref)

## Request body

- object
  - `payin_config_id` string, required: The unique payin config identifier. A payin must be configured prior to this request. See "Create a Payin Config" if a payin configuration has not been created yet. Prefix is "cfg" in production and "sbx_cfg" in sandbox.

## Response `200`

OK

- object
  - `status` Status (unresolved $ref)
  - `data` object: The payin details.
    - `payin_id` string: The unique payin identifier. Prefix is "pyi" in production and "sbx_pyi" in sandbox.
    - `payin_config_id` PayinConfigId (unresolved $ref)
    - `merchant_id` string: The unique merchant identifier. Prefix is "mid" in production and "sbx_mid" in sandbox.
    - `payment_method_id` string: The unique payment method identifier. Prefix is "mtd" in production and "sbx_mtd" in sandbox.
    - `payment_method_config_id` string: The unique payment method config identifier. Prefix is "pmc" in production and "sbx_pmc" in sandbox.
    - `device_registration_id` string: The unique device registration identifier. Prefix is "dvc" in production and "sbx_dvc" in sandbox.
    - `threeds_attempt_id` string, nullable: The unique threeds attempt identifier. Prefix is "tds" in production and "sbx_tds" in sandbox.
    - `idempotency_key` IdempotencyKey (unresolved $ref)
    - `billing_type` 'NET' | 'GROSS': The merchant billing type.
    - `amount` integer: The amount of the payin, in minor units. For example, 1000 is 10.00 USD.
    - `currency_code` CurrencyCode (unresolved $ref)
    - `is_partially_authorized` boolean: Boolean indicating if payin was authorized for a partial amount.
    - `authorized_amount` integer: The amount of the payin that was authorized, in minor units. For example, 1000 is 10.00 USD.
    - `captured_amount` integer: The amount of the payin that was captured, in minor units. For example, 1000 is 10.00 USD.
    - `tip_amount` integer: The amount of the payin that was collected as a tip from processing on a device, in minor units. For example, 1000 is 10.00 USD.
    - `refundable_amount` integer: The amount of the payin that can still be refunded, in minor units. For example, 1000 is 10.00 USD.
    - `non_refundable_reason_code` 'VOIDED' | 'FAILED' | 'FULLY_REFUNDED' | 'HAS_CHARGEBACKS' | 'HAS_ACH_RETURN' | 'IN_ACH_RETURN_WINDOW' | 'IN_SETTLEMENT_WINDOW', nullable: Why the payin is nonrefundable. Provided when refundable_amount is 0.
    - `status` 'AUTHORIZED' | 'CANCELED' | 'CREATED' | 'FAILED' | 'IN_REVIEW' | 'PRESENTING' | 'PROCESSING' | 'RETURNED' | 'SUCCEEDED': The status of the payin.
    - `refusal_code` string: The code explaining the reason for the refusal if the payin or refund failed to process. This value will be `null` if the payin or refund succeeded.
    - `refusal_desc` string: The description explaining the reason for the refusal if the payin or refund failed to process. This will be a human-readable value that may be presented to the end user. This value will be `null` if the payin or refund succeeded.
    - `detailed_refusal_code` string: The detailed refusal code that could be more descriptive than the refusal code. It may take up to 5 minutes for the detailed refusal code to populate after the payment fails. This value will be `null` if the payment succeeded.
    - `detailed_refusal_desc` string: The description explaining the detailed refusal reason if the payin or refund failed to process. This will be a human-readable value that may be presented to the end user. This value will be `null` if the payment succeeded.
    - `auth_code` string: The authorization code if the payin was approved.
    - `avs_result_code` string: The address verification service result code.
    - `cvc_result_code` string: The card verification code result code.
    - `amount_splits` object[]: Represents how the payin amount was allocated to the originating merchant, the platform and one or more other merchants. A `PLATFORM` split defines a platform fee on the payin. A `MERCHANT` split allocates a portion of the payin to the specified merchant. Any remaining amount not specified by the amount splits was allocated to the originating merchant associated with the payin.
      - `amount` integer, required: The amount allocated, in minor units. For example, 1000 is 10.00 USD.
      - `currency_code` CurrencyCode, required (unresolved $ref)
      - `type` 'PLATFORM' | 'MERCHANT', required: The type of receiver for this split. `PLATFORM` allocates the split amount to the platform. `MERCHANT` allocates the split amount to the merchant specified by merchant_id.
      - `merchant_id` string: Required when type is `MERCHANT`. The unique identifier of the merchant receiving this split. The merchant must be fully onboarded and in an ACTIVE status. Must not match the merchant_id of the originating merchant on the payin. Must not be duplicated within the same amount_splits array. Not valid when object type is `PLATFORM`. Prefix: mid in production, sbx_mid in sandbox.
      - `platform` object: The minimal representation of the platform receiving this split. Present when type is `PLATFORM`.
        - `platform_id` PlatformId (unresolved $ref)
        - `name` string: The platform name.
      - `merchant` Merchant (unresolved $ref)
    - `merchant_fees` object: The amount of the payin billed to the merchant.
      - `total_amount` object: The total amount of fees billed to the merchant.
        - `amount` integer: The amount, in minor units. For example, 1000 is 10.00 USD.
        - `currency_code` CurrencyCode (unresolved $ref)
    - `applied_billing` object: The rate, rate cap, and fee applied to calculate the billing fee, along with the source that determined the billing fee.
      - `rate` integer: Rate, in percent mille (1 PCM = 0.001%). For example, 3000 is 3%.
      - `rate_cap` integer: Rate cap, in minor units. Used to cap the rate to a specified amount. For example, 1000 is 10.00 USD.
      - `fee` integer: Fee, in minor units. For example, 1000 is 10.00 USD.
      - `currency_code` CurrencyCode (unresolved $ref)
      - `source` 'BILLING_PROFILE' | 'MERCHANT_BILLING' | 'MERCHANT_BILLING_METHOD': The source that determined the billing fee. `BILLING_PROFILE` - the merchant's billing profile `MERCHANT_BILLING` - the top-level rate, rate cap, and fee in the payin config's merchant billing object `MERCHANT_BILLING_METHOD` - the payment method object in the payin config's merchant billing object
      - `merchant_billing_method_type` 'card' | 'ach' | 'validated_ach' | 'accelerated_ach' | 'paypal_wallet' | 'venmo' | 'paypal_paylater': The payment method object in the payin config's merchant billing object utilized to calculate the billing fee. Applicable when the source is `MERCHANT_BILLING_METHOD`.
    - `method_type` 'CARD' | 'APPLE_PAY' | 'GOOGLE_PAY' | 'ACH' | 'PLAID_ACH' | 'PAYPAL_WALLET' | 'VENMO' | 'PAYPAL_PAYLATER': The type of payment method.
    - `card` object: Card payment method details.
      - `type` 'CREDIT' | 'DEBIT' | 'PREPAID': Card type.
      - `brand` 'VISA' | 'MASTERCARD' | 'DISCOVER' | 'AMERICAN_EXPRESS' | 'OTHER': Card brand.
      - `brand_desc` 'Visa' | 'Mastercard' | 'Discover' | 'American Express' | 'Other': Card brand in a friendly language.
      - `last_4` string: Last 4 digits of the card number.
      - `exp_month` integer: The card expiration month.
      - `exp_year` integer: The card expiration year, in 4-digits.
      - `country` string, nullable: 2-digit country code. Find country codes here: https://www.iso.org/obp
      - `is_business` boolean, nullable: Is a business card. Value of `true` / `false` indicates the classification was evaluated; `null` indicates it was not evaluated.
      - `is_healthcare` boolean, nullable: Is a healthcare card. Value of `true` / `false` indicates the classification was evaluated; `null` indicates it was not evaluated.
    - `apple_pay` object: Apple Pay payment method details.
      - `type` Type (unresolved $ref)
      - `brand` Brand (unresolved $ref)
      - `brand_desc` BrandDesc (unresolved $ref)
      - `description` string: A human-readable description of the payment method provided by Apple.
    - `google_pay` object: Google Pay payment method details.
      - `type` Type (unresolved $ref)
      - `brand` Brand (unresolved $ref)
      - `brand_desc` BrandDesc (unresolved $ref)
      - `description` string: A human-readable description of the payment method provided by Google.
    - `ach` object: ACH payment method details.
      - `account_number_last_4` string: The last 4 digits of the account number.
      - `routing_number` RoutingNumber (unresolved $ref)
      - `bank_name` string: The bank name.
      - `account_type` AccountType (unresolved $ref)
      - `account_holder_type` AccountHolderType (unresolved $ref)
    - `plaid_ach` PlaidAch (unresolved $ref)
    - `paypal_wallet` object: PayPal Wallet payment method. Required for method_type PAYPAL_WALLET.
      - `email` string: The email address of the PayPal user
    - `venmo` object: Venmo payment method. Required for method_type VENMO.
      - `email` string: The email address of the Venmo user
    - `paypal_paylater` object: PayPal PayLater payment method. Required for method_type PAYPAL_PAYLATER.
      - `email` string: The email address of the PayPal user
    - `billing_contact` BillingContact (unresolved $ref)
    - `shipping_address` object
      - `name` string: Recipient's first and last name.
      - `address_line_1` AddressLine1 (unresolved $ref)
      - `address_line_2` AddressLine2 (unresolved $ref)
      - `city` City (unresolved $ref)
      - `state` State (unresolved $ref)
      - `postal_code` PostalCode (unresolved $ref)
      - `country` Country (unresolved $ref)
    - `device_data` object: Device data
      - `application_identifier` string: Identifies the application that the device used on the payin or payment method as described in ISO/IEC 7816-5.
      - `application_label` string: The human-readable name associated with the application identifier according to ISO/IEC 7816-5.
      - `application_preferred_name` string: The human-readable name associated with the application identifier in the cardholder’s local language.
      - `transaction_status_information` string: A collection of indicators that the device will set to show what processing steps have been performed on the current transaction (e.g. Cardholder Verification, Data Authentication).
      - `application_pan_sequence_number` string: Identifies and differentiates cards with the same PAN.
      - `entry_type` 'TAPPED' | 'SWIPED' | 'DIPPED' | 'KEYED' | 'INVALID' | 'UNKNOWN': The entry type used on the device.
      - `verification_type` 'SIGNATURE' | 'OFFLINE_PIN' | 'ONLINE_PIN' | 'OFFLINE_PIN_SIGNATURE' | 'NONE': The verification type for verifying the user processing the payment is the cardholder. Types: * `SIGNATURE` - The user provided a signature on the device. * `OFFLINE_PIN` - The user entered their pin on the device and it was verified by the EMV chip card. * `ONLINE_PIN` - The user entered their pin on the device and it was verified by the card issuer. * `OFFLINE_PIN_SIGNATURE` - The user entered their PIN and provided a signature on the device. * `NONE` - The user could not be verified.
      - `signature` string: A signature image, formatted as a base64 encoded data URI
    - `method_metadata` Metadata (unresolved $ref)
    - `metadata` Metadata (unresolved $ref)
    - `refunds` object[]
      - `refund_id` string: The unique refund identifier. Prefix is "rfd" in production and "sbx_rfd" in sandbox.
      - `payin_id` string: The unique payin identifier that was voided or refunded. Prefix is "pyi" in production and "sbx_pyi" in sandbox.
      - `merchant_id` MerchantId (unresolved $ref)
      - `billing_type` BillingType (unresolved $ref)
      - `amount` integer: The amount refunded, in minor units. For example, 1000 is 10.00 USD.
      - `currency_code` CurrencyCode (unresolved $ref)
      - `merchant_fees` object: The refund fee billed to the merchant.
        - `total_amount` object: The total amount of fees billed to the merchant.
          - `amount` Amount (unresolved $ref)
          - `currency_code` CurrencyCode (unresolved $ref)
      - `applied_billing` AppliedBilling (unresolved $ref)
      - `reason` string: The reason a refund was issued.
      - `status` 'CREATED' | 'PROCESSING' | 'SUCCEEDED' | 'FAILED' | 'CANCELED' | 'IN_REVIEW': The status of the refund.
      - `refusal_code` RefusalCode (unresolved $ref)
      - `refusal_desc` RefusalDesc (unresolved $ref)
      - `detailed_refusal_code` DetailedRefusalCode (unresolved $ref)
      - `detailed_refusal_desc` DetailedRefusalDesc (unresolved $ref)
      - `non_voidable_reason_code` 'VOIDED' | 'PAST_SETTLEMENT', nullable: Why the refund is nonvoidable.
      - `auth_code` string: The authorization code if the refund was approved.
      - `metadata` Metadata (unresolved $ref)
      - `amount_splits` object[]: Represents how the refund amount was allocated between the originating merchant, the platform, and one or more other merchants. A `PLATFORM` split defines the amount debited from the platform. A `MERCHANT` split defines the amount debited from the specified merchant. Any remaining amount not specified by the amount splits was debited from the originating merchant.
        - `amount` integer, required: The amount allocated, in minor units. For example, 1000 is 10.00 USD.
        - `currency_code` CurrencyCode, required (unresolved $ref)
        - `type` 'PLATFORM' | 'MERCHANT', required: The type of receiver for this split. `PLATFORM` allocates the split amount to the platform. `MERCHANT` allocates the split amount to the merchant specified by merchant_id.
        - `merchant_id` string: Required when type is `MERCHANT`. The unique identifier of the merchant debited from. Not valid when type is `PLATFORM`.
      - `expected_deposit_date` ExpectedDepositDate (unresolved $ref)
      - `ach_return` AchReturn (unresolved $ref)
      - `has_ach_return` HasAchReturn (unresolved $ref)
      - `source` 'API_DIRECT' | 'COMPONENT' | 'EXTERNAL': The source of the refund. Indicates the integration that created the refund.
      - `source_desc` string: The description of the source of the refund. This will be a human-readable value that may be presented to the end user.
      - `created_at` string, date-time: Date and time void or refund was created at in UTC RFC 3339 format.
      - `updated_at` string, date-time: Date and time refund was last updated at in UTC RFC 3339 format.
    - `has_refunds` boolean: Boolean indicating that the payin has one or more refunds created.
    - `chargebacks` object[]
      - `chargeback_id` string: The unique chargeback identifier. Prefix is "chb" in production and "sbx_chb" in sandbox.
      - `payin_id` PayinId (unresolved $ref)
      - `merchant_id` MerchantId (unresolved $ref)
      - `amount` integer: The amount of the chargeback, in minor units. For example, 1000 is 10.00 USD.
      - `currency_code` CurrencyCode (unresolved $ref)
      - `status` 'INQUIRY_ACTION_REQUIRED' | 'DISPUTE_ACTION_REQUIRED' | 'INQUIRY_RESPONDED' | 'CHARGEBACK_PROCESSING' | 'PRE_ARBITRATION_PROCESSING' | 'PROVISIONAL_WIN' | 'WON' | 'LOST' | 'ARBITRATION': The status of the chargeback.
      - `metadata` Metadata (unresolved $ref)
      - `merchant_fees` object: The dispute fee billed to the merchant.
        - `total_amount` object: The total amount of fees billed to the merchant.
          - `amount` Amount (unresolved $ref)
          - `currency_code` CurrencyCode (unresolved $ref)
      - `applied_billing` AppliedBilling (unresolved $ref)
      - `method_type` 'CARD' | 'APPLE_PAY' | 'GOOGLE_PAY' | 'PAYPAL_WALLET' | 'VENMO' | 'PAYPAL_PAYLATER': The type of payment method.
      - `card` Card (unresolved $ref)
      - `apple_pay` ApplePay (unresolved $ref)
      - `google_pay` GooglePay (unresolved $ref)
      - `paypal_wallet` PaypalWallet (unresolved $ref)
      - `venmo` Venmo (unresolved $ref)
      - `paypal_paylater` PaypalPaylater (unresolved $ref)
      - `reason_code` 'CREDIT_NOT_PROCESSED' | 'DUPLICATE_TRANSACTION' | 'FRAUD' | 'GENERAL' | 'INCORRECT_AMOUNT' | 'NOT_RECEIVED' | 'NOT_ACCEPTABLE' | 'SUBSCRIPTION_CANCELED' | 'UNRECOGNIZED' | 'UNCATEGORIZED': The code explaining the dispute reason for the chargeback.
      - `reason_desc` string: The description explaining the dispute reason for the chargeback. This will be a human-readable value that may be presented to the end user.
      - `acquirer_ref` string: Acquirer Reference Number (ARN) is the unique identifier to trace the chargeback with the issuing bank.
      - `due_date` ExpectedDepositDate (unresolved $ref)
      - `chargeback_evidence` object[]
        - `chargeback_evidence_id` string: The unique chargeback evidence identifier. Prefix is "cbe" in production and "sbx_cbe" in sandbox.
        - `chargeback_id` ChargebackId (unresolved $ref)
        - `is_required` boolean: Boolean indicating if evidence is required to dispute the chargeback.
        - `type` '3DS_VERIFICATION' | 'ADDITIONAL_AUTHORIZED_SIGNER' | 'ADDITIONAL_HOUSEHOLD_SIGNER' | 'AUTHORIZATION' | 'CANCELLATION_POLICY' | 'CVV2_CAPTURE' | 'DIGITAL_DOWNLOAD' | 'ITEM_CONDITION' | 'LEGAL_ATTESTATION' | 'ORDER_FORM' | 'OTHER' | 'OTHER_PAYMENT_METHODS' | 'PRODUCT_OR_SERVICE_USAGE' | 'PROOF_OF_DELIVERY_TO_EMPLOYEE' | 'PROOF_OF_DELIVERY' | 'REBUTTAL' | 'RECEIPT' | 'RECURRING_BILLING_AGREEMENT' | 'RENTAL_AGREEMENT' | 'TRANSACTION_HISTORY': The type of evidence.
        - `type_desc` string: The description explaining the type of evidence.
        - `file_upload_mode` ResponseMode (unresolved $ref)
        - `file_upload_ids` string[], nullable: List of file upload IDs for the evidence.
        - `response_mode` 'ALLOWED' | 'NOT_ALLOWED' | 'REQUIRED': The mode for adding a response to the evidence. If `REQUIRED`, the `response` must be set to respond to the chargeback.
        - `response` string, nullable: Plain text description to provide additional information for the chargeback evidence.
        - `created_at` CreatedAt (unresolved $ref)
        - `updated_at` CreatedAt (unresolved $ref)
      - `validation_errors` object[]: List of errors with the chargeback evidence to respond to the chargeback, if applicable.
        - `field` string: The field in the request that had an error, if applicable.
        - `code` string: The code describing the error.
        - `message` string: The description of the error related to the field.
      - `expected_deposit_date` ExpectedDepositDate (unresolved $ref)
      - `source` 'SYSTEM': The source of the chargeback. Indicates the integration that created the chargeback.
      - `source_desc` string: The description of the source of the chargeback. This will be a human-readable value that may be presented to the end user.
      - `created_at` string, date-time: Date and time chargeback was created at in UTC RFC 3339 format.
      - `updated_at` CreatedAt (unresolved $ref)
    - `has_chargebacks` boolean: Boolean indicating that the payin has one or more chargebacks created.
    - `ach_return` object: The ACH return details.
      - `ach_return_id` string: The unique ACH return identifier. Prefix is "ret" in production and "sbx_ret" in sandbox.
      - `merchant_id` MerchantId (unresolved $ref)
      - `payin_id` PayinId (unresolved $ref)
      - `refund_id` string: The unique refund identifier. This will only be set if there is not a payin_id set. Prefix is "rfd_" in production and "sbx_rfd_" in sandbox.
      - `status` 'SUCCEEDED': The status of the ACH return.
      - `return_code` 'R01' | 'R02' | 'R03' | 'R05' | 'R06' | 'R07' | 'R08' | 'R09' | 'R10' | 'R11' | 'R12' | 'R13' | 'R14' | 'R15' | 'R16' | 'R17' | 'R18' | 'R19' | 'R20' | 'R21' | 'R22' | 'R23' | 'R24' | 'R25' | 'R26' | 'R27' | 'R28' | 'R29' | 'R30' | 'R31' | 'R32' | 'R33' | 'R34' | 'R35' | 'R36' | 'R37' | 'R38' | 'R39' | 'R40' | 'R41' | 'R42' | 'R43' | 'R44' | 'R45' | 'R46' | 'R47' | 'R50' | 'R51' | 'R52' | 'R53' | 'R61' | 'R62' | 'R67' | 'R68' | 'R69' | 'R70' | 'R71' | 'R72' | 'R73' | 'R74' | 'R75' | 'R76' | 'R77' | 'R80' | 'R81' | 'R82' | 'R83' | 'R84' | 'R85': The code explaining the reason the ACH payment was returned.
      - `return_desc` string: The description explaining the reason the ACH payment was returned. This will be a human-readable value that may be presented to the end user.
      - `amount` integer: The amount captured by the ACH return, in minor units. For example, 1000 is 10.00 USD.
      - `currency_code` CurrencyCode (unresolved $ref)
      - `amount_splits` AmountSplits (unresolved $ref)
      - `merchant_fees` object: The ACH return fee billed to the merchant
        - `total_amount` object: The total amount of fees billed to the merchant.
          - `amount` Amount (unresolved $ref)
          - `currency_code` CurrencyCode (unresolved $ref)
      - `applied_billing` AppliedBilling (unresolved $ref)
      - `metadata` Metadata (unresolved $ref)
      - `expected_deposit_date` ExpectedDepositDate (unresolved $ref)
      - `source` 'SYSTEM': The source of the ACH return. Indicates the integration that created the ACH return.
      - `source_desc` string: The description of the source of the ACH return. This will be a human-readable value that may be presented to the end user.
      - `created_at` string, date-time: Date and time ACH return was created at in UTC RFC 3339 format.
      - `updated_at` string, date-time: Date and time ACH return was last updated at in UTC RFC 3339 format.
    - `has_ach_return` boolean: Boolean indicating that the payin has an ACH return.
    - `payin_config` object: Payin config details.
      - `payin_config_id` PayinConfigId (unresolved $ref)
      - `processing_mode` 'AUTHORIZE' | 'AUTHORIZE_AND_CAPTURE': Determines how to process the payin when [creating the payin](ref:create_payin) via the Payment Component or the API. Options: * `AUTHORIZE` - Only authorize the payin, separating the authorization and capture of funds. Authorize will place a hold on the funds and the payin must be [captured](ref:capture_payin) in a separate request. * `AUTHORIZE_AND_CAPTURE` - Authorize and capture the payin in a single request (default).
      - `amount` integer: The total amount requested for processing, in minor units. For example, 1000 is 10.00 USD.
      - `currency_code` CurrencyCode (unresolved $ref)
      - `amount_splits` object[]
        - `rate` integer: The amount split defined as a rate, in percent mille (1 PCM = 0.001%). The amount split will be calculated on the authorized amount of the payin. For example, 3000 is 3%.
        - `rate_cap` integer: The amount split rate cap, in minor units. Used to cap the rate to a specified amount. For example, 1000 is 10.00 USD. The following validation must be met: If the rate is greater than 0%, then the rate_cap must be greater than $0. For example, to bill a rate of 1% up to $100 set the value to 10000. If the rate is 0%, then the rate_cap must be $0.
        - `amount` integer, required: The amount split, in minor units. For example, 1000 is 10.00 USD.
        - `currency_code` CurrencyCode, required (unresolved $ref)
        - `type` 'PLATFORM' | 'MERCHANT', required: The type of receiver for this split. `PLATFORM` allocates the split amount to the platform. `MERCHANT` allocates the split amount to the merchant specified by merchant_id.
        - `merchant_id` string: Required when type is `MERCHANT`. The unique identifier of the merchant receiving this split. The merchant status must be ACTIVE. The following constraints must be met: - Cannot match the merchant_id of the originating merchant on the payin. - Cannot be duplicated within the same amount_splits array. - Not valid when type is `PLATFORM`. Prefix is mid in production and sbx_mid in sandbox.
        - `amount_split_reversal_config` object: Controls whether this amount split is reversed on a refund for the full amount or an ACH return. When not provided, both attributes default to false.
          - `on_full_refund` boolean: Determines whether this amount split is reversed when a refund for the full amount is processed on this payin. When `true`, the receiver's allocation is pulled back on the refund. When `false`, the receiver retains their allocation and the originating merchant absorbs this amount of the refund. This configuration only applies to full refunds. For partial refunds, amount_splits on the refund request can be provided to specify the reversal amounts.
          - `on_ach_return` boolean: Determines whether this amount split is reversed when an ACH return is processed on this payin. When `true`, the receiver's allocation is pulled back on the ACH return. When `false`, the receiver retains their allocation and the originating merchant absorbs this amount of the ACH return.
    - `threeds_attempt` object, nullable: 3DS attempt details.
      - `threeds_attempt_id` string: The unique threeds attempt identifier. Prefix is "tds" in production and "sbx_tds" in sandbox.
      - `merchant_id` MerchantId (unresolved $ref)
      - `payin_config_id` string: The unique payin config identifier. Prefix is "cfg" in production and "sbx_cfg" in sandbox.
      - `status` 'CREATED' | 'FINGERPRINTED' | 'SUCCEEDED' | 'CHALLENGED' | 'FAILED': The status of the threeds attempt.
      - `failed_reason_code` '3DS_ATTEMPT_TIMED_OUT' | 'CARD_NOT_ENROLLED' | 'CHALLENGE_FAILED' | 'MERCHANT_NOT_BOARDED' | 'UNEXPECTED_ERROR' | 'UNSUPPORTED_PAYMENT_DATA', nullable: The code explaining the reason for the 3DS request failure. This value will be set if the 3DS attempt status is `FAILED`.
      - `failed_reason_desc` string, nullable: The description explaining the reason for the payin's 3DS request failure. This will be a human-readable value that may be presented to the end user. This value will be `null` if the 3DS request succeeded or if not applicable.
      - `created_at` CreatedAt (unresolved $ref)
      - `updated_at` CreatedAt (unresolved $ref)
      - `fingerprinted_at` CreatedAt (unresolved $ref)
      - `challenged_at` CreatedAt (unresolved $ref)
      - `succeeded_at` CreatedAt (unresolved $ref)
      - `failed_at` CreatedAt (unresolved $ref)
    - `expected_deposit_date` string, date: Date the funds are expected to be available in a deposit.
    - `source` 'API_DIRECT' | 'API_STORED_PAYMENT_METHOD' | 'COMPONENT' | 'DEVICE' | 'EXTERNAL' | 'IVR' | 'TAP_TO_PHONE': The source of the payin. Indicates the integration that created the payin.
    - `source_desc` string: The description of the source of the payin. This will be a human-readable value that may be presented to the end user.
    - `created_at` string, date-time: Date and time payin was created at in UTC RFC 3339 format.
    - `updated_at` string, date-time: Date and time payin was last updated at in UTC RFC 3339 format.
  - `errors` Errors (unresolved $ref)

## Other responses

- `400` (unresolved $ref)
- `401` (unresolved $ref)
- `403` (unresolved $ref)
- `409`: Conflict on the requested resource.
- `5XX` (unresolved $ref)

---

[API](https://skmtc.dev/rainforestpay/apis/deposits.md) - [All operations](https://skmtc.dev/rainforestpay/apis/deposits/llms.txt) - [OpenAPI document](https://skmtc.dev/rainforestpay/apis/deposits/revisions/78538ac34cb2?raw)
