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

# Execute Batch Transfer V3

> Execute multiple transfer payouts in a single batch operation.

<Note>
  This endpoint can only be used with beneficiaries created with `auto_settlement` set to `false`.
</Note>

**Amount Specification:**

* Each transaction must include exactly one of `source_amount` or `destination_amount` (not both)
* `source_amount`: Minimum 500 cents (e.g. 500 = \$5.00)
* Only `PREFUNDED_BALANCE` transactions are eligible for refunds if they fail

## What changed from V1

| **V1** | **V3** |
| :- | :- |
| No idempotency header | `X-Idempotency-Key` header required. |

Send a unique `X-Idempotency-Key` (up to 255 characters) with every new request. A UUID works well:

```
X-Idempotency-Key: 3f1c9a2e-7b4d-4e8a-9c21-5d6f0b8e1a47
```

The request body and response are unchanged.

V1 remains available at `POST /v1/batch/transactions/commit`.


## OpenAPI

````yaml POST /v3/batch/transactions/commit
openapi: 3.1.0
info:
  title: Fin.com API
  version: 1.0.0
  description: >-
    A simple API specification for Fin.com, a financial services platform that
    provides a range of banking and payment solutions for businesses and
    individuals. This API allows developers to integrate Fin.com's services into
    their applications, enabling functionalities such as customer management,
    transaction processing, and access to financial data.
servers:
  - url: https://sandbox.api.fin.com
    description: Sandbox server
  - url: https://api.fin.com
    description: Production server
security: []
tags:
  - name: Authentication
    description: A modified OAuth 2.0 Client Credential Flow
  - name: Customers
    description: Customer management and document upload operations
  - name: Balances
    description: Retrieve wallet balance information
  - name: Catalogue
    description: |
      A set of endpoints to retrieve contextual data to assemble requests
      to fin.com's API
  - name: Beneficiaries
    description: Manage beneficiary accounts for payments and transfers
  - name: Transactions
    description: Transaction history and management for beneficiaries
  - name: Virtual Accounts
    description: Create and manage virtual accounts for USD to USDC conversions
  - name: Fees & FX Rates
    description: Retrieve fees and foreign exchange rates
  - name: Crypto Orchestration
    description: >-
      Accept crypto deposits from exchange and external wallets and settle them
      to a destination wallet
paths:
  /v3/batch/transactions/commit:
    post:
      tags:
        - Transactions
      summary: Execute Batch Transfer V3
      description: Execute multiple transfer payouts in a single batch operation.
      parameters:
        - $ref: '#/components/parameters/IdempotencyKeyHeader'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                type: object
                required:
                  - beneficiary_id
                  - source_currency
                  - deduct_from
                properties:
                  beneficiary_id:
                    type: string
                    format: uuid
                    example: d6ae4ea6-0482-47ab-a895-02e50ea6358b
                  source_amount:
                    type: number
                    minimum: 500
                    description: Amount in cents (e.g. 530 = $5.30). Minimum 500 cents.
                    example: 530
                  destination_amount:
                    type: number
                    example: 62000
                  source_currency:
                    type: string
                    example: USD
                  deduct_from:
                    type: string
                    enum:
                      - PREFUNDED_BALANCE
                      - LIQUIDATION_ADDRESS
                  remarks:
                    type: string
                    example: Monthly salary payment
            examples:
              With source amount:
                value:
                  - beneficiary_id: d6ae4ea6-0482-47ab-a895-02e50ea6358b
                    source_amount: 530
                    source_currency: USD
                    deduct_from: PREFUNDED_BALANCE
                    remarks: Monthly salary payment
              With destination amount:
                value:
                  - beneficiary_id: d6ae4ea6-0482-47ab-a895-02e50ea6358b
                    destination_amount: 62000
                    source_currency: USD
                    deduct_from: PREFUNDED_BALANCE
                    remarks: Monthly salary payment
      responses:
        '201':
          description: Batch created successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                        example: 3b1d73c0-0000-0000-0000-51aa2461f1
              examples:
                With source amount:
                  value:
                    data:
                      id: 3b1d73c0-0000-0000-0000-51aa2461f1
                With destination amount:
                  value:
                    data:
                      id: 3b1d73c0-0000-0000-0000-51aa2461f1
        '401':
          $ref: '#/components/responses/AuthenticationError'
        '422':
          $ref: '#/components/responses/ValidationError'
      security:
        - bearerAuth: []
components:
  parameters:
    IdempotencyKeyHeader:
      name: X-Idempotency-Key
      in: header
      description: >-
        Unique key that identifies this request. Use a new key for each new
        request. Maximum 255 characters.
      required: true
      schema:
        type: string
        maxLength: 255
      example: 3f1c9a2e-7b4d-4e8a-9c21-5d6f0b8e1a47
  responses:
    AuthenticationError:
      description: Authentication failed due to invalid credentials
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
                example: Authentication failed
    ValidationError:
      description: Failed due to a formatting error.
      content:
        application/json:
          schema:
            type: object
            required:
              - message
            properties:
              message:
                type: string
              errors:
                type: array
                items:
                  type: object
                  additionalProperties:
                    type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        Bearer token authentication. Obtain token from [Issue a
        Token](https://developer.fin.com/api-reference/authentication/issue-a-token)
        endpoint

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.