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

# Crear Cuenta

> Endpoint para crear una cuenta bancaria.

### Headers

<ParamField header="x-idempotency" type="string" required placeholder="Token único para garantizar la idempotencia de la petición">
  Token único para garantizar la idempotencia de la petición
</ParamField>

<Warning>
  El parámetro `authorization` debe ser `true`. Sin esto, la cuenta se crea pero el usuario nunca recibe la solicitud de enrolamiento en su billetera y no podrás realizar cargos.
</Warning>

<ParamField body="subtype" type="string" required placeholder="SAVINGS">
  Tipo de cuenta bancaria \[SAVINGS, CHECKING, ELECTRONIC\_DEPOSIT, KEY(Bre-B)]
</ParamField>

<ParamField body="authorization" type="boolean" required placeholder="true">
  Indica si el usuario ha autorizado débitos automáticos para esta cuenta.
</ParamField>

<ParamField body="re-enrollment" type="boolean" required placeholder="false">
  Indica si es una re-vinculación de una cuenta que ya existió previamente. Útil para rastrear cuentas que fueron eliminadas y vueltas a crear.
</ParamField>

<ParamField body="account_number" type="string" required placeholder="6253141">
  Número de cuenta bancaria, si es cuenta de Bre-B alfa numérica debe empezar con @
</ParamField>

<ParamField body="external_id" type="string" placeholder="98371293719">
  Identificador único del cliente.
</ParamField>

<ParamField body="bank_id" type="string" placeholder="9957817c-f17e-472b-b531-e3d1490bf757">
  Identificador único del banco \[requerido si el tipo de cuenta es SAVINGS o CHECKING]
</ParamField>

<ParamField body="customer_id" type="string" required placeholder="9dd4158b-0e45-42bc-b56f-a4c1f856814d">
  ID del cliente dueño de la cuenta. [Crear cliente](/client/customers/create).
</ParamField>

<ParamField body="related_to" type="string" placeholder="9dd4158b-0e45-42bc-b56f-a4c1f856814d">
  ID del cliente relacionado (opcional). Útil para vincular cuentas de familiares, socios o representantes autorizados al cliente principal.
</ParamField>

<ResponseExample>
  ```json 200 theme={null}
  {
     "id":"84cc072e-90e8-33cf-9305-098095fed32f",
     "title":"Ms.",
     "subtype":"CHECKING",
     "status":"PENDING",
     "authorization":true,
     "customer_id":"9e01d019-b438-40d2-89e1-52430c69dfb7",
     "re_enroll":false,
     "external_id":null,
     "bank_id":"9e01d019-b731-48bc-b111-2baa3ea56ef6",
     "bank":{
        "id":"9e01d019-b731-48bc-b111-2baa3ea56ef6",
        "name":"Maggio-Hills",
        "logo":null,
        "base64_logo":""
     },
     "customer":{
        "id":"9e01d019-b438-40d2-89e1-52430c69dfb7",
        "first_name":"Izaiah",
        "last_name":"Rogahn",
        "email":"",
        "phone":"+17478695836",
        "document_type":"CC",
        "document_number":"156762",
        "created_at":"2025-01-19T17:03:55.000000Z",
        "is_test":true
     }
  }
  ```

  ```json 409 theme={null}
  {
    "message": "No se puede generar la operación, genera un token de idempotencia y envíelo en los headers como x-idempotency",
    "code": 10003,
    "code_name": "idempotency_error"
  }
  ```
</ResponseExample>

<RequestExample>
  ```bash cURL theme={null}
  curl https://api.onepay.la/v1/accounts \
    -X POST \
    -H "Authorization: Bearer sk_test_xxx" \
    -H "Content-Type: application/json" \
    -H "x-idempotency: account-001" \
    -d '{
      "subtype": "SAVINGS",
      "authorization": true,
      "re-enrollment": false,
      "account_number": "1234567890",
      "customer_id": "9dd4158b-0e45-42bc-b56f-a4c1f856814d",
      "bank_id": "9957817c-f17e-472b-b531-e3d1490bf757"
    }'
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch('https://api.onepay.la/v1/accounts', {
    method: 'POST',
    headers: {
      'Authorization': 'Bearer sk_test_xxx',
      'Content-Type': 'application/json',
      'x-idempotency': 'account-001'
    },
    body: JSON.stringify({
      subtype: 'SAVINGS',
      authorization: true,
      're-enrollment': false,
      account_number: '1234567890',
      customer_id: '9dd4158b-0e45-42bc-b56f-a4c1f856814d',
      bank_id: '9957817c-f17e-472b-b531-e3d1490bf757'
    })
  });

  const account = await response.json();
  ```

  ```python Python theme={null}
  import requests

  response = requests.post(
      'https://api.onepay.la/v1/accounts',
      headers={
          'Authorization': 'Bearer sk_test_xxx',
          'Content-Type': 'application/json',
          'x-idempotency': 'account-001'
      },
      json={
          'subtype': 'SAVINGS',
          'authorization': True,
          're-enrollment': False,
          'account_number': '1234567890',
          'customer_id': '9dd4158b-0e45-42bc-b56f-a4c1f856814d',
          'bank_id': '9957817c-f17e-472b-b531-e3d1490bf757'
      }
  )

  account = response.json()
  ```

  ```php PHP theme={null}
  <?php
  $curl = curl_init();

  curl_setopt_array($curl, [
    CURLOPT_URL => "https://api.onepay.la/v1/accounts",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_HTTPHEADER => [
      "Authorization: Bearer sk_test_xxx",
      "Content-Type: application/json",
      "x-idempotency: account-001"
    ],
    CURLOPT_POSTFIELDS => json_encode([
      "subtype" => "SAVINGS",
      "authorization" => true,
      "re-enrollment" => false,
      "account_number" => "1234567890",
      "customer_id" => "9dd4158b-0e45-42bc-b56f-a4c1f856814d",
      "bank_id" => "9957817c-f17e-472b-b531-e3d1490bf757"
    ])
  ]);

  $response = curl_exec($curl);
  $account = json_decode($response, true);
  ?>
  ```
</RequestExample>
