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.
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ĂĄmetro | Tipo | DescripciĂłn | Ejemplo |
Authorization | String | Token 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_payment | Object | Objeto que agrupa información de pago procesado a través de Wallet Connect. | N/A |
transaction_amount | Double | Valor por el cual se efectĂșa el pago. | 550.0 |
description | String | Descripción genérica del pago que se estå efectuando. | "Descripción del pago" |
external_reference | String | Referencia de pago asignada por el vendedor. Solo acepta nĂșmeros y letras. | "Pagamento_123" |
discount | Object | Campo 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 |
amount | Double | Valor del descuento a aplicar en el pago. | 55.0 |
description | String | DescripciĂłn del descuento. | "Descuento para Black Friday". |
detail | Object | Objeto que proporciona informaciĂłn sobre las caracterĂsticas del descuento. | N/A |
value | Double | Cantidad de descuento a aplicar en el pago. Este campo se corresponde con el type mencionado abajo, por ejemplo, 30 por ciento. | 10.0 |
type | String | Unidad de medida del valor de descuento, pudiendo ser porcentual o un monto fijo. | percent (para porcentaje) o fixed (para valores fijos). |
cap | Double | Valor mĂĄximo por el cual el descuento puede ser aplicado en un pago. | 5000 |
payer | Object | Objeto que contiene los datos del pagador. | N/A |
token | String | Token especĂfico del pagador, utilizado para realizar toda la validaciĂłn del flujo de pago. | payer1-token2-test3-example4 |
type_token | String | Tipo 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
}
]
}