Saltar al contenido principal

Primeros Pasos

Configura la autenticación, sincroniza tu reloj y realiza tu primera solicitud a la API C2C de Binance en menos de 5 minutos.

1. Requisitos Previos

Crea una API Key de Binance con estos permisos:

  • Read — requerido para todos los endpoints
  • Trade P2P — requerido para gestión de anuncios y órdenes
  • Sin retiros — nunca habilites permisos de retiro

Restringe tu API key a la dirección IP de tu servidor para mayor seguridad.

2. Sincronización de Tiempo

Todas las solicitudes firmadas incluyen un parámetro timestamp. Si el reloj de tu servidor se desvía más de recvWindow (por defecto 60.000ms) respecto al servidor de Binance, las solicitudes fallan con el error -1021.

No AuthAutoP2P Verified

3. Firma HMAC-SHA256

Proceso de Firma

  1. Recopila los parámetros del query string: timestamp=X&recvWindow=Y
  2. Ordénalos alfabéticamente por nombre de clave
  3. Concaténalos en un único query string
  4. Calcula HMAC-SHA256(secret_key, query_string)
  5. Añade &signature=RESULTADO a la URL
  6. Establece el header: X-MBX-APIKEY: api_key
  7. Establece el header: clientType: web
  8. Envía la solicitud — el body JSON NO se incluye en la firma

Cambio Crítico 2026: Percent-Encoding

A partir de 2026, Binance requiere percent-encoding de caracteres especiales en los valores del query string antes del cálculo HMAC. Los valores que contienen =,& o espacios deben estar URL-encoded antes de firmar. Anteriormente se aceptaban valores sin codificar.

HMAC Signing
import hmac, hashlib, time
from urllib.parse import urlencode

def sign_request(api_secret: str, params: dict) -> str:
    """Generate HMAC-SHA256 signature for Binance SAPI."""
    params["timestamp"] = int(time.time() * 1000)
    params["recvWindow"] = 60000
    # Sort alphabetically and encode
    query_string = urlencode(sorted(params.items()))
    signature = hmac.new(
        api_secret.encode(), query_string.encode(), hashlib.sha256
    ).hexdigest()
    return f"{query_string}&signature={signature}"

4. Alcance de la Firma

Importante: La firma HMAC cubre únicamente los parámetros del query string. El body JSON de la solicitud NO se incluye en el cálculo de la firma. Este comportamiento es consistente en todos los endpoints SAPI pero está pobremente documentado.

5. Headers Comunes

HeaderValorRequerido
X-MBX-APIKEYTu API keySí (firmado)
clientTypewebSí (toda SAPI)
Content-Typeapplication/jsonPara POST con body

6. Primera Solicitud (Sin Auth)

Comienza con un endpoint sin autenticación para verificar la conectividad:

No AuthAutoP2P Verified

7. Primera Solicitud Firmada

Ahora prueba una solicitud firmada para verificar tu implementación HMAC:

HMAC-SHA256AutoP2P VerifiedCritical

Próximos Pasos