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 } ] }