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?