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

# Documentos de Cuenta Virtual

> Genera instrucciones de pago, formularios de depósito directo de nómina y cartas de estado de cuenta en PDF para el número de cuenta virtual de una cuenta de gasto.

Tres consultas devuelven documentos PDF listos para compartir para el [número de cuenta virtual](/features/virtual-account-numbers) de una cuenta de gasto. Cada uno se genera bajo demanda, se devuelve como una **cadena codificada en base64**, y está pensado para decodificarse y renderizarse en tu UI o ofrecerse como descarga.

Las tres:

* Requieren el alcance `LIST_PAYMENT`.
* Aceptan un `userCashBalanceId` que identifica la cuenta de gasto.
* Aceptan un `virtualAccountNumberId` opcional. **Cuando se omite, se usa el VAN principal de la cuenta de gasto.**
* Devuelven `SpendAccountPdfDocument!`.

***

## Decodificar la respuesta

```graphql theme={null}
query getSpendAccountPaymentInstructions($userCashBalanceId: UUID!) {
  getSpendAccountPaymentInstructions(userCashBalanceId: $userCashBalanceId) {
    fileName
    pdfBase64
  }
}
```

```javascript theme={null}
const { fileName, pdfBase64 } = data.getSpendAccountPaymentInstructions;

// Browser: turn the base64 payload into a downloadable file
const bytes = Uint8Array.from(atob(pdfBase64), (c) => c.charCodeAt(0));
const blob = new Blob([bytes], { type: "application/pdf" });
const url = URL.createObjectURL(blob);

const a = document.createElement("a");
a.href = url;
a.download = fileName;
a.click();
URL.revokeObjectURL(url);
```

<Warning>
  Estos PDFs contienen el número de ruta y de cuenta completos, sin enmascarar. No los caches, registres ni almacenes fuera de la sesión del usuario. En su lugar, vuelve a generarlos bajo demanda.
</Warning>

***

## Instrucciones de pago

`getSpendAccountPaymentInstructions` produce un PDF que contiene los datos de ruta y cuenta necesarios para fondear el número de cuenta virtual. Úsalo cuando un usuario necesite indicar a un cliente, proveedor o a su propio banco externo a dónde enviar dinero.

```graphql theme={null}
query paymentInstructions(
  $userCashBalanceId: UUID!
  $virtualAccountNumberId: UUID
) {
  getSpendAccountPaymentInstructions(
    userCashBalanceId: $userCashBalanceId
    virtualAccountNumberId: $virtualAccountNumberId
  ) {
    fileName
    pdfBase64
  }
}
```

| Argumento                | Tipo    | Requerido | Descripción                                                                          |
| ------------------------ | ------- | --------- | ------------------------------------------------------------------------------------ |
| `userCashBalanceId`      | `UUID!` | Sí        | La cuenta de gasto en la que deben acreditarse los fondos.                           |
| `virtualAccountNumberId` | `UUID`  | No        | VAN específico a documentar. De forma predeterminada, el VAN principal de la cuenta. |

[Referencia de API](/api-reference/queries/get-spend-account-payment-instructions)

***

## Formulario de depósito de nómina

`getSpendAccountPaycheckDepositForm` produce un formulario de autorización de depósito directo prellenado que un usuario puede presentar al departamento de nómina de su empleador. Esta es la vía prevista para enrutar todo o parte de un pago de nómina a una cuenta de gasto de Fluz.

```graphql theme={null}
query paycheckDepositForm(
  $userCashBalanceId: UUID!
  $virtualAccountNumberId: UUID
  $depositType: PaycheckDepositType!
  $depositAmount: Float
  $depositPercentage: Float
  $employerName: String
  $employeeName: String
  $eSignForm: Boolean
) {
  getSpendAccountPaycheckDepositForm(
    userCashBalanceId: $userCashBalanceId
    virtualAccountNumberId: $virtualAccountNumberId
    depositType: $depositType
    depositAmount: $depositAmount
    depositPercentage: $depositPercentage
    employerName: $employerName
    employeeName: $employeeName
    eSignForm: $eSignForm
  ) {
    fileName
    pdfBase64
  }
}
```

| Argumento                | Tipo                   | Requerido   | Descripción                                                                                                                                                                         |
| ------------------------ | ---------------------- | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `userCashBalanceId`      | `UUID!`                | Sí          | La cuenta de gasto en la que debe acreditarse la nómina.                                                                                                                            |
| `virtualAccountNumberId` | `UUID`                 | No          | De forma predeterminada, el VAN principal de la cuenta.                                                                                                                             |
| `depositType`            | `PaycheckDepositType!` | Sí          | Cuánto de cada nómina debe enviar el empleador: `FULL` para el cheque completo, `FIXED` para un monto fijo en dólares, o `PERCENTAGE` para un porcentaje.                           |
| `depositAmount`          | `Float`                | Condicional | **Obligatorio cuando `depositType` es `FIXED`.**                                                                                                                                    |
| `depositPercentage`      | `Float`                | Condicional | **Obligatorio cuando `depositType` es `PERCENTAGE`.** Valor de 1–100.                                                                                                               |
| `employerName`           | `String`               | No          | Nombre impreso en la línea del empleador del formulario, de 1 a 150 caracteres. Se deja en blanco cuando se omite.                                                                  |
| `employeeName`           | `String`               | No          | Nombre impreso como titular de la cuenta, de 1 a 150 caracteres. De forma predeterminada, el nombre legal de la cuenta, con cualquier nombre de DBA en una segunda línea.           |
| `eSignForm`              | `Boolean`              | No          | Prellena la línea de firma con el nombre impreso del titular de la cuenta, en cursiva. De forma predeterminada está desactivado, lo que deja la línea en blanco para firmar a mano. |

<Warning>
  **La validación se aplica del lado del servidor.** Enviar `depositType: FIXED` sin `depositAmount`, o `depositType: PERCENTAGE` sin un `depositPercentage` entre 1 y 100, devuelve un error. Valida en tu UI antes de llamar.
</Warning>

```json Variables theme={null}
{
  "userCashBalanceId": "9c1f6b2e-4d7a-4c3b-9f11-2a5e8b0d6c74",
  "depositType": "PERCENTAGE",
  "depositPercentage": 25,
  "employerName": "Acme Corp",
  "employeeName": "Jane Doe",
  "eSignForm": true
}
```

[Referencia de API](/api-reference/queries/get-spend-account-paycheck-deposit-form)

***

## Carta de estado de cuenta

`getSpendAccountStatusLetter` produce una carta que confirma que la cuenta existe y está al día, el equivalente a una carta bancaria. Establece `displayBalance` en `true` para incluir el saldo actual en la carta; déjalo desactivado cuando el usuario solo necesite probar que la cuenta existe.

```graphql theme={null}
query statusLetter(
  $userCashBalanceId: UUID!
  $virtualAccountNumberId: UUID
  $displayBalance: Boolean
  $balanceCheckDate: DateTime
) {
  getSpendAccountStatusLetter(
    userCashBalanceId: $userCashBalanceId
    virtualAccountNumberId: $virtualAccountNumberId
    displayBalance: $displayBalance
    balanceCheckDate: $balanceCheckDate
  ) {
    fileName
    pdfBase64
  }
}
```

| Argumento                | Tipo       | Requerido | Descripción                                                                                                                                                                                                                                                                                                 |
| ------------------------ | ---------- | --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `userCashBalanceId`      | `UUID!`    | Sí        | La cuenta de gasto a documentar.                                                                                                                                                                                                                                                                            |
| `virtualAccountNumberId` | `UUID`     | No        | De forma predeterminada, el VAN principal de la cuenta.                                                                                                                                                                                                                                                     |
| `displayBalance`         | `Boolean`  | No        | Incluye el saldo de la cuenta en la carta. Predeterminado desactivado.                                                                                                                                                                                                                                      |
| `balanceCheckDate`       | `DateTime` | No        | Reporta el saldo disponible al final de este día (hora del Este de EE. UU.) en lugar del saldo actual, y etiqueta la línea “al” de la carta con esa fecha. No puede estar en el futuro. **Solo aplica cuando `displayBalance` es `true`**; de lo contrario, la carta no incluye saldo y la fecha se ignora. |

<Warning>
  `balanceCheckDate` acepta una marca de tiempo RFC-3339 completa; se rechaza una fecha simple como `"2026-07-01"`. Solo se usa el día en el que cae la marca de tiempo **en la hora del Este de EE. UU.**, así que anclála al Este: `"2026-07-01T00:00:00Z"` son las 8 p. m. del 30 de junio en la hora del Este y reporta el saldo del 30 de junio.
</Warning>

[Referencia de API](/api-reference/queries/get-spend-account-status-letter)

***

## Elegir el documento correcto

```mermaid theme={null}
flowchart TD
    Q{"Who is the user\ngiving this to?"}
    Q -->|Their employer| A["Paycheck Deposit Form\ngetSpendAccountPaycheckDepositForm"]
    Q -->|A customer, vendor,\nor outside bank| B["Payment Instructions\ngetSpendAccountPaymentInstructions"]
    Q -->|A landlord, lender,\nor auditor| C["Account Status Letter\ngetSpendAccountStatusLetter"]
```

***

**¿Quieres saber más?** Habla con nuestros expertos para más información o para solicitar una demo.
