Saltar al contenido principal

Crear un reembolso

Realiza un reembolso de un cargo capturado. Puedes especificar un importe de reembolso personalizado u omitirlo para devolver el saldo íntegro. Stripe realiza los reembolsos en la moneda original y los envía directamente al método de pago inicial del cliente.

No se puede reembolsar un cargo por un importe superior a su saldo inicial. Si intentas reembolsar un cargo ya liquidado o superas el importe total original, Stripe devuelve un error.

POST https://api.stripe.com/v1/refunds

Ejemplos

Ejemplo de cURL:

cURL
curl -X POST https://api.stripe.com/v1/refunds \
-u <YOUR_SECRET_KEY>: \
-d "charge=ch_1NirD82eZvKYlo2CIvbtLWuY"

Respuestas

Las respuestas devuelven códigos estándar.

200: OK

Response
{
"id": "re_1Nispe2eZvKYlo2Cd31jOCgZ",
"object": "refund",
"amount": 212,
"balance_transaction": "txn_1Nispe2eZvKYlo2CYezqFhEx",
"charge": "ch_1NirD82eZvKYlo2CIvbtLWuY",
"created": 1692942318,
"currency": "usd",
"destination_details": {
"card": {
"reference": "123456789012",
"reference_status": "available",
"reference_type": "acquirer_reference_number",
"type": "refund"
},
"type": "card"
},
"metadata": {},
"payment_intent": "pi_1GszsK2eZvKYlo2CfhZyoZLp",
"reason": null,
"receipt_number": null,
"source_transfer_reversal": null,
"status": "succeeded",
"transfer_reversal": null
}

Respuestas de error

400: Bad Request

Response
{
"error": {
"code": "parameter_invalid_integer",
"doc_url": "https://stripe.com/docs/error-codes/parameter-invalid-integer",
"message": "Invalid integer: <integer>",
"param": "amount",
"request_log_url": "https://dashboard.stripe.com/test/logs/req_UQf6XBwBl9yk66?t=1734829676",
"type": "invalid_request_error"
}
}

401: Unauthorized

Response
{
"error": {
"type": "invalid_request_error",
"message": "Invalid API Key provided: sk_test_********************1234"
}
}

Parámetros

Parámetros del cuerpo
ParámetroTipoDescripción
amountenteroImporte del reembolso en céntimos. Si no se especifica, Stripe reembolsa el importe total del cargo.
chargecadena(Obligatorio) ID del cargo que se va a reembolsar.
currencycadenaCódigo ISO de tres letras de la divisa, en minúsculas. Debe ser una divisa admitida. Si se omite, Stripe adopta la divisa del cargo original.
expand[]matriz de cadenasIdentifica objetos de respuesta anidados para enriquecerlos y devolverlos en línea.
customercadenaID del cliente al que corresponde el cargo.
reasoncadenaMotivo del reembolso. Si se especifica, los valores posibles son duplicate, fraudulent o requested_by_customer. Si se establece en fraudulent, Stripe añade la tarjeta y la dirección de correo electrónico asociadas a tus listas de bloqueo. Esto ayuda a mejorar la detección de fraudes.
payment_intentcadenaID del PaymentIntent que se va a reembolsar.
refund_application_feebooleanoDetermina si Stripe devuelve la comisión de la plataforma a la cuenta. En el caso de los reembolsos totales, Stripe devuelve la comisión íntegra. En el caso de los reembolsos parciales, Stripe vuelve a calcularla y devuelve una cantidad proporcional. La comisión de la plataforma solo se aplica a la plataforma que generó el cargo.
origincadenaEl origen del reembolso.
reverse_transferbooleanoDetermina si Stripe recupera los fondos transferidos desde la cuenta vinculada. Stripe revierte las transferencias vinculadas en proporción al importe reembolsado (reembolso total o parcial).
instructions_emailcadenaEnvía instrucciones de pago manual a esta dirección de correo electrónico si el método de pago del cliente no admite reembolsos de forma nativa.