Inicio
DocumentaciĂłn
Recursos
Partners
Comunidad

Recursos

Revisa las actualizaciones de nuestras soluciones y operatividad del sistema o pide soporte técnico.

Partners

Conoce nuestro programa para agencias o desarrolladores que ofrecen servicios de integraciĂłn y vendedores que quieren contratarlos.

Comunidad

Recibe las Ășltimas novedades, pide ayuda a otros integradores y comparte tus conocimientos.

Cobros online
Cobros presenciales
Herramientas y recursos
APIs y SDKS
Procesar pagos con descuento - Descuentos - Mercado Pago Developers

Procesar pagos con descuento

En esta secciĂłn, detallamos las solicitudes y los parĂĄmetros necesarios para procesar pagos con descuento, y las respuestas esperadas para cada una de ellas.

Importante
El reembolso del descuento no es instantĂĄneo; puede tardar unos 200 milisegundos sin un cupĂłn y hasta 10 segundos con un cupĂłn. Por lo tanto, recomendamos crear la promesa de descuento y proceder inmediatamente con el pago.

Para realizar el procesamiento de los pagos con descuento, utiliza el curl a continuaciĂłn y asegĂșrate de que los parĂĄmetros de la solicitud estĂ©n completos de acuerdo con la informaciĂłn descrita en la siguiente tabla.

ParĂĄmetroTipoDescripciĂłnEjemplo
AuthorizationStringToken de autorizaciĂłn del usuario (Access token). Esta informaciĂłn se puede obtener a travĂ©s del menĂș Tus integraciones.APP_USR-123456-test-access-t0ken
wallet_paymentObjectObjeto que agrupa información de pago procesado a través de Wallet Connect.N/A
transaction_amountDoubleValor por el cual se efectĂșa el pago.550.0
descriptionStringDescripción genérica del pago que se estå efectuando."Descripción del pago"
external_referenceStringReferencia de pago asignada por el vendedor. Solo acepta nĂșmeros y letras."Pagamento_123"
discountObjectCampo opcional que agrupa los datos del descuento a aplicar. Este campo sĂłlo es obligatorio si deseas crear un pago con descuento. Si se envĂ­a vacĂ­o, crearĂĄ un pago sin descuento.N/A
amountDoubleValor del descuento a aplicar en el pago.55.0
descriptionStringDescripciĂłn del descuento."Descuento para Black Friday".
detailObjectObjeto que proporciona informaciĂłn sobre las caracterĂ­sticas del descuento.N/A
valueDoubleCantidad de descuento a aplicar en el pago. Este campo se corresponde con el type mencionado abajo, por ejemplo, 30 por ciento.10.0
typeStringUnidad de medida del valor de descuento, pudiendo ser porcentual o un monto fijo.percent (para porcentaje) o fixed (para valores fijos).
capDoubleValor mĂĄximo por el cual el descuento puede ser aplicado en un pago.5000
payerObjectObjeto que contiene los datos del pagador.N/A
tokenStringToken especĂ­fico del pagador, utilizado para realizar toda la validaciĂłn del flujo de pago.payer1-token2-test3-example4
type_tokenStringTipo de token a ser utilizado en los pagos.wallet-token (este es el Ășnico tipo de token aceptado para los pagos a travĂ©s de Wallet Connect).
          
curl -X POST \
'https://api.mercadopago.com/v1/advanced_payments' \
--header 'Authorization: <YOUR_ACCESS_TOKEN>' \
--data '{
    "wallet_payment": {
        "transaction_amount": 550,
        "description": "DescripciĂłn del pago",
        "external_reference": "Pago_123",
        "discount": {
            "amount": 55.0,
            "description": "Pruebas wc",
            "detail": {
                "value": 10.0,
                "type": "percent",
                "cap": 5000
            }
        }
    },
    "payer": {
        "token": "PAYER_TOKEN",
        "type_token": "wallet-token"
    }
}'


        

Respuestas

A continuación detallamos las diferentes respuestas que pueden recibirse al procesar un pago con descuento. Las mismas se categorizan en base al resultado de la solicitud, variando desde el éxito en el procesamiento hasta un error específico.

Éxito

Json

{
  "id": 1234567,
  "status": "approved",
  "marketplace": null,
  "sponsor_id": null,
  "payments": [
    {
      "id": "PAYMENT-ID",
      "status": "approved",
      "status_detail": "accredited",
      "payment_type_id": "account_money",
      "payment_method_id": "account_money",
      "token": null,
      "transaction_amount": 500,
      "installments": 1,
      "processing_mode": "aggregator",
      "issuer_id": null,
      "coupon_amount": 10.0,
      "campaign_id": "CAMPAIGN-ID",
      "coupon_code": null,
      "description": "Payment Wallet",
      "external_reference": null,
      "statement_descriptor": null,
      "date_of_expiration": null,
      "merchant_account_id": null,
      "payment_method_option_id": null,
      "additional_info": null,
      "transaction_details": null,
      "net_amount": null,
      "taxes": null
    }
  ],
  "disbursements": null,
  "payer": {
    "id": "PAYER-ID",
    "email": "PAYER-EMAIL",
    "address": null,
    "identification": null,
    "first_name": null,
    "last_name": null,
    "phone": null,
    "token": "PAYER-TOKEN",
    "external_payer_id": "EXTERNAL-PAYER-ID"
  },
  "external_reference": null,
  "description": null,
  "binary_mode": true,
  "capture": true,
  "date_created": "2023-07-24T14:30:45.574-04:00",
  "date_last_updated": "2023-07-24T14:30:46.517-04:00",
  "metadata": null,
  "additional_info": null,
  "wallet_payment": {
    "transaction_amount": 550,
    "description": "Payment Wallet",
    "external_reference": null,
    "subscription_data": null,
    "user_present": null,
    "discount": {
      "amount": 50.0,
      "description": "wallet connect test",
      "detail": {
        "value": 10.0,
        "type": "percent",
        "cap": 100000.0
      }
    },
    "payment_preference": {
      "active": true,
      "user_id": 1431302201,
      "payment_method": [
        {
          "priority": 1,
          "payment_method": "account_money"
        }
      ]
    }
  },
  "pos_id": null,
  "store_id": null,
  "wallet_connect_discount": {
    "amount": 10.0,
    "token": "DISCOUNT-TOKEN"
  }
}

Error

En caso de que el descuento aplicado en el pago no sea vĂĄlido o el valor indicado en el pedido no corresponda al valor del descuento establecido, se generarĂĄ un error, como se describe a continuaciĂłn.

Json

{
  "error": "bad_request",
  "message": "discount doesn't exist or amount is incorrect",
  "status": 400,
  "cause": [
    {
      "code": 400136,
      "description": "discount doesn't exist or amount is incorrect",
      "data": null
    }
  ]
}