Commet
  • Precios
Iniciar SesiónRegistrarse
Introducción

Inicio rápido

Aprender

Resumen de FinanzasVerificación de cuentaPaíses soportadosMerchant of RecordPolítica de uso aceptable

Recursos

Referencia del SDKVersionado de APIManejo de erroresTestingCLI

Plugins

Better Auth
DocumentaciónRecursosConstruir con AIAPI ReferenceWebhooks

Verificación de cuenta

Cómo verificar tu cuenta para payouts — proceso de KYC con Stripe.

Puedes empezar a aceptar pagos inmediatamente, pero necesitas verificar tu cuenta antes de poder retirar dinero.

Cómo funciona

Haz clic en Verificar cuenta en la sección de finanzas para iniciar el proceso único de KYC a través de Stripe. Proporciona la información de tu negocio y los datos de tu cuenta bancaria, y luego espera la aprobación — normalmente unos pocos días.

Qué vas a necesitar

  • Información del negocio: Nombre de la empresa, dirección, número de registro
  • Información personal: De los dueños del negocio y directores
  • Datos de la cuenta bancaria: A dónde quieres que se envíen los payouts

Seguridad

Toda la verificación pasa por el entorno seguro de Stripe. Stripe está certificado SOC 2, ISO 27001 y cumple con PCI DSS.

La aprobación puede tardar varios días. Recibirás una notificación cuando tu cuenta esté lista.

Administrar payouts con el SDK

Verifica tu cuenta, agrega cuentas bancarias de destino y retira tu balance de forma programática.

Verificar tu cuenta

Provisiona tu cuenta de payout en una sola llamada con el payload completo de KYC y banco. La cuenta arranca en pending_verification y pasa a verified cuando llega el webhook del proveedor. Esta llamada es idempotente — devuelve la cuenta existente si tu organización ya tiene una.

const verification = await commet.payouts.completeVerification({
  email: 'founder@acme.com',
  businessType: 'individual',
  businessUrl: 'https://acme.com',
  documentUrl: 'https://files.acme.com/id.pdf',
  bank: {
    accountNumber: '000123456789',
    accountHolderName: 'Jane Doe',
    routingNumber: '110000000',
    accountType: 'checking',
  },
  individual: {
    firstName: 'Jane',
    lastName: 'Doe',
    phone: '+15555550100',
    dateOfBirth: '1990-01-15',
    address: {
      line1: '123 Market St',
      city: 'San Francisco',
      state: 'CA',
      postalCode: '94103',
      country: 'US',
    },
  },
})
from commet.types import (
    CompletePayoutVerificationParamsBank,
    CompletePayoutVerificationParamsIndividual,
    CompletePayoutVerificationParamsIndividualAddress,
)

verification = commet.payouts.complete_verification(
    email="founder@acme.com",
    business_type="individual",
    business_url="https://acme.com",
    document_url="https://files.acme.com/id.pdf",
    bank=CompletePayoutVerificationParamsBank(
        account_number="000123456789",
        account_holder_name="Jane Doe",
        routing_number="110000000",
        account_type="checking",
    ),
    individual=CompletePayoutVerificationParamsIndividual(
        first_name="Jane",
        last_name="Doe",
        phone="+15555550100",
        date_of_birth="1990-01-15",
        address=CompletePayoutVerificationParamsIndividualAddress(
            line1="123 Market St",
            city="San Francisco",
            state="CA",
            postal_code="94103",
            country="US",
        ),
    ),
)
verification, err := client.Payouts.CompleteVerification(ctx, &commet.CompletePayoutVerificationParams{
    Email:        "founder@acme.com",
    BusinessType: "individual",
    BusinessURL:  "https://acme.com",
    DocumentURL:  "https://files.acme.com/id.pdf",
    Bank: commet.CompletePayoutVerificationParamsBank{
        AccountNumber:     "000123456789",
        AccountHolderName: "Jane Doe",
    },
    Individual: &commet.CompletePayoutVerificationParamsIndividual{
        FirstName:   "Jane",
        LastName:    "Doe",
        Phone:       "+15555550100",
        DateOfBirth: "1990-01-15",
        Address: commet.CompletePayoutVerificationParamsIndividualAddress{
            Line1:      "123 Market St",
            City:       "San Francisco",
            PostalCode: "94103",
            Country:    "US",
        },
    },
})
var verification = commet.payouts().completeVerification(
    CompletePayoutVerificationParams.builder(
        "founder@acme.com",
        "individual",
        "https://acme.com",
        "https://files.acme.com/id.pdf",
        new CompletePayoutVerificationParamsBank(
            "000123456789", "Jane Doe", "110000000", "checking"
        )
    )
    .individual(new CompletePayoutVerificationParamsIndividual(
        "Jane", "Doe", "+15555550100", "1990-01-15", null, null,
        new CompletePayoutVerificationParamsIndividualAddress(
            "123 Market St", null, "San Francisco", "CA", "94103", "US"
        )
    ))
    .build()
);
$verification = $commet->payouts->completeVerification(
    email: 'founder@acme.com',
    businessType: 'individual',
    businessUrl: 'https://acme.com',
    documentUrl: 'https://files.acme.com/id.pdf',
    bank: [
        'accountNumber' => '000123456789',
        'accountHolderName' => 'Jane Doe',
        'routingNumber' => '110000000',
        'accountType' => 'checking',
    ],
    individual: [
        'firstName' => 'Jane',
        'lastName' => 'Doe',
        'phone' => '+15555550100',
        'dateOfBirth' => '1990-01-15',
        'address' => [
            'line1' => '123 Market St',
            'city' => 'San Francisco',
            'state' => 'CA',
            'postalCode' => '94103',
            'country' => 'US',
        ],
    ],
);
curl -X POST https://commet.co/api/payouts/verification \
  -H "x-api-key: $COMMET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "founder@acme.com",
    "businessType": "individual",
    "businessUrl": "https://acme.com",
    "documentUrl": "https://files.acme.com/id.pdf",
    "bank": {
      "accountNumber": "000123456789",
      "accountHolderName": "Jane Doe",
      "routingNumber": "110000000",
      "accountType": "checking"
    },
    "individual": {
      "firstName": "Jane",
      "lastName": "Doe",
      "phone": "+15555550100",
      "dateOfBirth": "1990-01-15",
      "address": {
        "line1": "123 Market St",
        "city": "San Francisco",
        "state": "CA",
        "postalCode": "94103",
        "country": "US"
      }
    }
  }'

Pasa company en lugar de individual cuando businessType es company.

Agregar una cuenta bancaria

Agrega una cuenta bancaria de destino adicional a una cuenta de payout existente. El país y la moneda se resuelven desde tu organización. El número de cuenta completo nunca se devuelve — solo last4.

const account = await commet.payouts.addBankAccount({
  accountNumber: '000123456789',
  accountHolderName: 'Jane Doe',
  routingNumber: '110000000',
  accountType: 'checking',
  setDefault: true,
})
account = commet.payouts.add_bank_account(
    account_number="000123456789",
    account_holder_name="Jane Doe",
    routing_number="110000000",
    account_type="checking",
    set_default=True,
)
account, err := client.Payouts.AddBankAccount(ctx, &commet.AddPayoutBankAccountParams{
    AccountNumber:     "000123456789",
    AccountHolderName: "Jane Doe",
})
var account = commet.payouts().addBankAccount(
    AddPayoutBankAccountParams.builder("000123456789", "Jane Doe")
        .routingNumber("110000000")
        .accountType("checking")
        .setDefault(true)
        .build()
);
$account = $commet->payouts->addBankAccount(
    accountNumber: '000123456789',
    accountHolderName: 'Jane Doe',
    routingNumber: '110000000',
    accountType: 'checking',
    setDefault: true,
);
curl -X POST https://commet.co/api/payouts/bank-accounts \
  -H "x-api-key: $COMMET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "accountNumber": "000123456789",
    "accountHolderName": "Jane Doe",
    "routingNumber": "110000000",
    "accountType": "checking",
    "setDefault": true
  }'

Solicitar un payout

Retira el balance disponible a tu cuenta de payout verificada. amount está en centavos (USD, mínimo 1000 = $10). El payout se crea en pending y pasa a paid de forma asíncrona a medida que llegan los webhooks del proveedor.

const payout = await commet.payouts.request({
  amount: 50000,
  description: 'March payout',
})
payout = commet.payouts.request(amount=50000, description="March payout")
description := "March payout"
payout, err := client.Payouts.Request(ctx, &commet.RequestPayoutParams{
    Amount:      50000,
    Description: &description,
})
var payout = commet.payouts().request(
    RequestPayoutParams.builder(50000).description("March payout").build()
);
$payout = $commet->payouts->request(amount: 50000, description: 'March payout');
curl -X POST https://commet.co/api/payouts \
  -H "x-api-key: $COMMET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"amount": 50000, "description": "March payout"}'

Relacionado

  • Resumen de Finanzas — Balances, payouts e historial de transacciones
  • Merchant of Record — Cómo Commet maneja impuestos y cumplimiento

¿Cómo está esta guía?

Resumen de Finanzas

Cómo se mueve el dinero en Commet — balances, payouts e historial de transacciones.

Países soportados

Países donde Commet soporta payouts y operaciones de negocio.

En esta página

Cómo funciona
Qué vas a necesitar
Seguridad
Administrar payouts con el SDK
Verificar tu cuenta
Agregar una cuenta bancaria
Solicitar un payout
Relacionado