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

# Account-to-Card Transfer (Money Out)

> Push funds from your wallet out to an enrolled user's card. The transfer is reviewed by Finogate before it is sent.



## OpenAPI

````yaml POST /v1/platform/payment/cards/account-to-card
openapi: 3.1.0
info:
  title: Finogate Platform API v1
  version: 0.1.0
servers:
  - url: https://api-sandbox.finogates.com
    description: Sandbox
  - url: https://api.finogates.com
    description: Production
security: []
tags:
  - name: auth
  - name: users
  - name: payees
  - name: verification
  - name: bank accounts
  - name: card processing
  - name: digital-assets
  - name: international
  - name: fees
  - name: onboarding
  - name: pending-applications
  - name: wallets
  - name: payments
  - name: document mailing
  - name: merchant onboarding
  - name: catalog
  - name: webhooks
  - name: screening
  - name: Platform - File Scanning
  - name: phone-numbers
  - name: sms
  - name: calls
  - name: listings
  - name: Card Transfers
  - name: embed-tokens
paths:
  /v1/platform/payment/cards/account-to-card:
    post:
      tags:
        - Card Transfers
      summary: Account-to-Card Transfer (money out)
      description: >-
        Push funds from your wallet out to an enrolled user's card. The transfer
        is reviewed by Finogate before it is sent.
      operationId: >-
        create_account_to_card_transfer_v1_platform_payment_cards_account_to_card_post
      parameters:
        - name: X-Idempotency-Key
          in: header
          required: false
          schema:
            anyOf:
              - type: string
                maxLength: 120
              - type: 'null'
            description: >-
              Optional. A unique value you choose so a retry of the same
              transfer doesn't run twice. Sending the same key returns the
              original transfer.
            title: X-Idempotency-Key
          description: >-
            Optional. A unique value you choose so a retry of the same transfer
            doesn't run twice. Sending the same key returns the original
            transfer.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CardTransferCreate'
      responses:
        '202':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CommonResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - _AuthenticatedBearer: []
components:
  schemas:
    CardTransferCreate:
      properties:
        wallet_id:
          type: string
          format: uuid
          title: Wallet Id
          description: >-
            REQUIRED. The wallet to credit (card-to-account) or debit
            (account-to-card). The cardholder/owner is resolved from this wallet
            — mirroring the wallet-to-bank flow.
        card_id:
          type: string
          format: uuid
          title: Card Id
          description: UUID of the enrolled card to transact on
        amount:
          anyOf:
            - type: number
              exclusiveMinimum: 0
            - type: string
              pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Amount
          description: Transfer amount in major units
        currency:
          type: string
          maxLength: 3
          minLength: 3
          title: Currency
          default: USD
        idempotency_key:
          type: string
          maxLength: 120
          minLength: 1
          title: Idempotency Key
          description: >-
            Required. A unique value you pick per transfer (UUID recommended).
            Reusing the same key with an identical request returns the original
            transfer; reusing it with a different request is rejected. Passed in
            the body, matching the other wallet payment endpoints.
        payment_type:
          type: string
          enum:
            - transfer
            - send
          title: Payment Type
          description: >-
            Required. ``transfer`` moves funds between the user's own wallet and
            own card. ``send`` (to another party's card) is reserved and not yet
            supported.
          examples:
            - transfer
        user_id:
          anyOf:
            - type: string
              format: uuid
            - type: 'null'
          title: User Id
          description: >-
            Optional safety cross-check. The owner is resolved from
            ``wallet_id``; if ``user_id`` is supplied it must match that owner
            or the request is rejected.
        from_hold:
          type: boolean
          title: From Hold
          description: >-
            Account-to-card (money-out) only. When true, the transfer draws the
            amount from the wallet's frozen (held) balance instead of its
            available balance; the held balance must cover the amount or the
            request is rejected with ``insufficient_held_funds``. Ignored on
            card-to-account (money-in), which has no wallet source to draw from
            — sending true there is rejected. Omit (or send false) for a normal
            transfer from available balance.
          default: false
          examples:
            - false
      type: object
      required:
        - wallet_id
        - card_id
        - amount
        - idempotency_key
        - payment_type
      title: CardTransferCreate
      description: >-
        Platform request to initiate one debit-card transfer.


        Direction is fixed by the endpoint path (``/card-to-account`` for AFT,

        ``/account-to-card`` for OCT). The optional idempotency key is supplied

        via the ``X-Idempotency-Key`` HTTP header rather than the body —
        matching

        the rest of Finogate's API surface (Stripe / Square convention).


        ``payment_type`` mirrors the rest of the payments API: ``transfer``
        moves

        funds between the user's OWN wallet and OWN card (card-to-wallet on

        card-to-account, wallet-to-card on account-to-card). ``send`` (moving
        funds

        to a different party's card) is reserved and not yet supported.
    CommonResponse:
      properties:
        status_code:
          type: integer
          title: Status Code
          description: HTTP status code for the response.
        data:
          title: Data
          description: Payload or error details.
        query_generated_time:
          type: integer
          title: Query Generated Time
          description: >-
            UTC timestamp (milliseconds since epoch) when response was
            generated.
      type: object
      required:
        - status_code
        - data
        - query_generated_time
      title: CommonResponse
      description: |-
        Standard response wrapper for single-object responses and errors.

        Generic over the payload type. A route that declares
        ``CommonResponse[SomeModel]`` gets the real ``data`` schema rendered in
        OpenAPI/Swagger; a bare ``CommonResponse`` leaves ``data`` untyped.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    _AuthenticatedBearer:
      type: oauth2
      flows:
        password:
          scopes: {}
          tokenUrl: /v1/platform/auth/token

````