Cargos

Genera cargos a tus clientes.

La autorización es utilizada para que el banco emisor autorice realizar un cargo en la cuenta del tarjetahabiente.

Durante el proceso de autorización se verifica si una tarjeta es válida, robada o si el tarjetahabiente tiene fondos suficientes para concretar la compra. También, pasa por el proceso de fraude, durante el cual se puede denegar la transacción por comportamientos sospechosos.

Si la transacción se autoriza, el banco realizará una retención por el monto de la transacción en la cuenta del tarjetahabiente.

Cuando una tarjeta se rechaza por cualquiera de los motivos citados anteriormente, la compra no se habrá realizado.

Creando un cargo

El primer paso para crear un cargo es tener un token (éste puede ser creado usando el Checkout, CulqiJS o el API mismo). Una vez lo tengas, debes enviar al API los siguientes parámetros:

Una vez tengas un token, debes enviar al API los siguientes parámetros:

{
  "amount": "10000", // En céntimos
  "currency_code": "PEN", // PEN o USD
  "email": "richard@piedpiper.com",
  "source_id": "tkn_test_0CjjdWhFpEAZlxlz", //Soporta cargos únicos como recurrencia
}

Para nuestro ejemplo usamos el token como source_id, sin embargo el API de cargos soporta otros tipos de token como el de recurrencia (crd_test_XXXXX).

Respuesta del cargo

En caso un cargo haya sido creado correctamente, éste devolverá un objeto similar al siguiente:

{
  "duplicated": false,
  "object": "charge",
  "id": "chr_live_kEazTaQBDtzNdwFr",
  "amount": 10000,
  "amount_refunded": 0,
  "current_amount": 10000,
  "installments": 0,
  "installments_amount": null,
  "currency": "PEN",
  "email": null,
  "description": null,
  "source": {
    "object": "token",
    "id": "tkn_live_701ug3CDNJOAt5Q6",
    "type": "card",
    "creation_date": 1487021247000,
    "card_number": "411111******1111",
    "last_four": "1111",
    "active": true,
    "iin": {
      "object": "iin",
      "bin": "411111",
      "card_brand": "Visa",
      "card_type": "credit",
      "card_category": "Clásica",
      "issuer": {
        "name": "JPMORGAN CHASE BANK, N.A.",
        "country": "United States",
        "country_code": "PE",
        "website": null,
        "phone_number": null
      },
      "installments_allowed": [ 2, 4, 6, 8, 10, 12]
    },
    "client": {
      "ip": "190.235.231.153",
      "ip_country": "Perú",
      "ip_country_code": "PE",
      "browser": null,
      "device_fingerprint": null,
      "device_type": null
    }
  },
  "fraud_score": null,
  "antifraud_details": {
    "country_code": null,
    "first_name": null,
    "last_name": null,
    "address_city": null,
    "address": null,
    "email": "richard@piedpiper.com",
    "phone": null,
    "object": "client"
  },
  "date": 1487021262000,
  "reference_code": "kwd3glvhbs",
  "fee": null,
  "fee_details": [
    {
      "type": "comision_porcentual",
      "amount": 375,
      "taxes": 68,
      "total_amount": 443,
      "currency_code": "PEN",
      "object": "fee"
    }
  ],
  "net_amount": 9557,
  "response_code": "venta_exitosa",
  "merchant_message": "La operación de venta ha sido autorizada exitosamente",
  "user_message": "Su compra ha sido exitosa.",
  "device_ip": "190.235.231.153",
  "device_country": null,
  "country_ip": null,
  "product": "token",
  "state": "Exitosa",
  "metadata": null
}

Pago en cuotas

Permite que tus clientes puedan pagar una compra en varias partes con los intereses que genere el banco emisor de la tarjeta. En la creación de cargos, es posible especificar si el cobro a la tarjeta debe realizarse en un número determinado de cuotas. Esta característica sólo es aplicable cuando se intenta crear un cargo con una tarjeta de crédito.

Para utilizarlo, se debe crear un cargo indicando en el campo installments el número de cuotas en que será cobrada la venta. Previamente, en la creación del token, debes verificar en la respuesta si la tarjeta acepta las cuotas.

{
  "amount": "10000", // En céntimos
  "currency_code": "PEN", // PEN o USD
  "email": "richard@piedpiper.com",
  "source_id": "tkn_test_0CjjdWhFpEAZlxlz", //Soporta cargos únicos como recurrencia
  "installments": "2" //Obtenerlo del token
}

Añadir información adicional al cargo

Puedes añadir metadata a la mayoría de las peticiones de creación, y una de ellas es crear cargos. La información en este campo es para tu uso interno. Puedes añadir, por ejemplo: Información de la orden de compra, información del cliente, etc.

Toda la metadata se encuentra visible en el CulqiPanel, al visualizar el detalle de un cargo o durante la exportación de información. Esta funcionalidad es ideal para que tu equipo de contabilidad o finanzas puede conciliar fácilmente los cargos en Culqi con las órdenes en tu sistema:

{
  "amount": 1000,
  "currency_code": "PEN",
  "source_id": "tkn_test_vzMuTHoueOMlgUPj"
  "description": "Venta de prueba"
  "email": "test@culqi.com",
  "installments": 1,
  "metadata": {
    "ORDER_ID": "123"
  }
}

Reduciendo denegaciones por ventas muy riesgosas

El motor de prevención de fraudes es una herramienta de inteligencia artificial automatizada que aprende del comportamiento fraudulento de tu negocio y rechazará los cargos que le parecen muy riesgosos.

Es muy importante que nos envíes lo datos de tus clientes cada vez que realizas un cargo a través del objeto antifraud_details para que el motor tenga más información para poder tomar decisiones.

{
  "source_id": "tkn_live_bk75nbyKfdGuiHvU",
  "email": "juan.perez@culqi.com",
  "currency_code": "PEN",
  "amount": 100000,
  "antifraud_details": {
    "address": "Avenida Lima 123",
    "address_city": "Lima",
    "country_code": "PE",
    "first_name": "Juan",
    "last_name": "Perez",
    "phone_number": 9912321123
  }
}

Creando un cargo con YAPE

El primer paso para crear un cargo con YAPE es haber creado un token YAPE (éste puede ser creado usando el Checkout, CulqiJS o el API mismo). Una vez lo tengas, debes enviar al API los siguientes parámetros:

{
  "amount": "10000", // En céntimos
  "currency_code": "PEN", // PEN o USD
  "email": "richard@piedpiper.com",
  "source_id": "ype_live_0CjjdWhFpEAZlxlz", // Cargos soporta 3 tipos de Tokens (tkn, crd, ype)
}

Para nuestro ejemplo usamos el token YAPE como source_id (ype_live).

Cargos API

Para más información revisa los siguientes enlaces: