Funciones de la API de Reembolso
Crear un reembolso
Crea un reembolso para un cargo ya creado pero aún no reembolsado. Se puede especificar el importe que se va a reembolsar o se puede reembolsar todo el importe del cargo sin especificar ningún importe. El reembolso se creará en la misma divisa que el cargo y con el mismo método de pago que el cargo.
Si intentas reembolsar un cargo que ya ha sido reembolsado, se producirá un error. Lo mismo ocurrirá si intentas reembolsar un importe superior al del cargo original.
Punto final: https://api.stripe.com/v1/refunds
Operación: POST
Ejemplos
Ejemplo de cURL:
curl -X POST https://api.stripe.com/v1/refunds \
-u <CLAVE_SECRETA>: \
-d "charge=ch_1NirD82eZvKYlo2CIvbtLWuY"
Respuestas
Las respuestas devolverán códigos estándar.
200: OK
{
"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
}
400: Bad Request
{
"error": {
"code": "parameter_invalid_integer",
"doc_url": "https://stripe.com/docs/error-codes/parameter-invalid-integer",
"message": "Número entero no válido: <integer>",
"param": "amount",
"request_log_url": "https://dashboard.stripe.com/test/logs/req_UQf6XBwBl9yk66?t=1734829676",
"type": "invalid_request_error"
}
}
401: No autorizado
{
"error": {
"type": "invalid_request_error",
"message": "Clave de API no válida proporcionada: sk_test_********************1234".
}
}
Parámetros
Parámetros del cuerpo
| Parámetro | Tipo | Descripción |
|---|---|---|
amount | integer | Importe a reembolsar, en céntimos. Si no se especifica, se reembolsará el importe total del cargo. |
charge | string | (Obligatorio) ID del cargo a reembolsar. |
currency | string | Código de moneda ISO de tres letras, en minúsculas. Debe ser una moneda admitida. Si no se especifica, se utilizará la moneda del cargo. |
expand[] | array of strings | Especifica qué campos de la respuesta deben expandirse. |
customer | string | ID del cliente al que pertenece el cargo. |
reason | string | Motivo del reembolso. Si se establece, los valores posibles son duplicate, fraudulent, o requested_by_customer. Si se establece como fraudulent, la tarjeta y el correo electrónico asociados con el cargo se añadirán a sus listas de bloqueo, y ayudarán a mejorar la detección de fraude de Stripe. |
payment_intent | string | ID del PaymentIntent a reembolsar. |
refund_application_fee | boolean | Indica si se debe reembolsar la tasa de solicitud. Si se reembolsa el importe total, también se reembolsará la tasa de solicitud. En caso contrario, la tasa de solicitud se reembolsará proporcionalmente a la devolución. Una tasa de solicitud sólo puede ser la solicitud que creó el cargo. |
origin | string | El origen del reembolso. |
reverse_transfer | boolean | Indica si se debe invertir la transferencia. La transferencia se invierte proporcionalmente al importe del reembolso (reembolso total o parcial). |
instructions_email | string | Utiliza la dirección de correo electrónico del cliente para las instrucciones de reembolso cuando se utiliza un método de pago sin soporte de reembolso. |
Actualizar un reembolso
Actualiza el reembolso especificado estableciendo los valores de los parámetros pasados. Cualquier parámetro no proporcionado se dejará sin cambios. Esto es útil para almacenar información adicional sobre el reembolso.
Punto final: https://api.stripe.com/v1/refunds/{id}
Operación: POST
Ejemplos
Ejemplo de cURL:
curl -X POST `https://api.stripe.com/v1/refunds/{id}` \
-u <CLAVE_SECRETA>: \
-d "metadata[order_id]=6735"
Respuestas
Las respuestas devolverán códigos estándar.
200: OK
{
"id": "re_1Nispe2eZvKYlo2Cd31jOCgZ",
"object": "refund",
"amount": 1000,
"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": {
"order_id": "6735"
},
"payment_intent": "pi_1GszsK2eZvKYlo2CfhZyoZLp",
"reason": null,
"receipt_number": null,
"source_transfer_reversal": null,
"status": "succeeded",
"transfer_reversal": null
}
400: Bad Request
{
"error": {
"code": "parameter_invalid_integer",
"doc_url": "https://stripe.com/docs/error-codes/parameter-invalid-integer",
"message": "Número entero no válido: <integer>",
"param": "amount",
"request_log_url": "https://dashboard.stripe.com/test/logs/req_UQf6XBwBl9yk66?t=1734829676",
"type": "invalid_request_error"
}
}
401: No autorizado
{
"error": {
"type": "invalid_request_error",
"message": "Clave de API no válida proporcionada: sk_test_********************1234".
}
}
Parámetros
Parámetros del cuerpo
| Parámetro | Tipo | Descripción |
|---|---|---|
metadata | object | Conjunto de pares clave-valor que se pueden adjuntar a un objeto. Esto puede ser útil para almacenar información adicional sobre el objeto en un formato estructurado. |
expand[] | array of strings | Especifica qué campos de la respuesta deben expandirse. |
Variables de ruta
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
id | string | Requerido | El ID del reembolso que se va a actualizar. |
Recuperar un reembolso
Recupera los detalles de un reembolso específico.
Punto final: https://api.stripe.com/v1/refunds/{id}
Operación: GET
Ejemplos
Ejemplo de cURL:
curl -X GET https://api.stripe.com/v1/refunds/re_1Nispe2eZvKYlo2Cd31jOCgZ \
-u <CLAVE_SECRETA>:
Respuestas
Las respuestas devolverán códigos estándar.
200: OK
{
"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
}
400: Bad Request
{
"error": {
"code": "parameter_invalid_integer",
"doc_url": "https://stripe.com/docs/error-codes/parameter-invalid-integer",
"message": "Número entero no válido: <integer>",
"param": "amount",
"request_log_url": "https://dashboard.stripe.com/test/logs/req_UQf6XBwBl9yk66?t=1734829676",
"type": "invalid_request_error"
}
}
401: No autorizado
{
"error": {
"type": "invalid_request_error",
"message": "Clave de API no válida proporcionada: sk_test_********************1234".
}
}
Parámetros
Parámetros de consulta
| Parámetro | Tipo | Descripción |
|---|---|---|
expand[] | array of strings | Especifica qué campos de la respuesta deben expandirse. |
Variables de ruta
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
id | string | Requerido | El ID del reembolso que se va a recuperar. |
Listar todos los reembolsos
Devuelve una lista de los reembolsos existentes. Los reintegros se muestran ordenados, con los reintegros más recientes en primer lugar. Los 10 reembolsos más recientes aparecen por defecto.
Punto final: https://api.stripe.com/v1/refunds
Operación: GET
Ejemplos
Ejemplo de cURL:
curl -X GET https://api.stripe.com/v1/refunds \
-u <CLAVE_SECRETA>:
Respuestas
Las respuestas devolverán códigos estándar.
200: OK
{
"object": "list",
"url": "/v1/refunds",
"has_more": false,
"data": [
{
"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
}
]
}
400: Bad Request
{
"error": {
"code": "resource_missing",
"doc_url": "https://stripe.com/docs/error-codes/resource-missing",
"message": "No such charge: 'ch_1NirD82eZvKYlo2CIvbtLWuY'",
"param": "charge",
"request_log_url": "https://dashboard.stripe.com/test/logs/req_HIH2jWkJGecwCk?t=1754504399",
"type": "invalid_request_error"
}
}
401: No autorizado
{
"error": {
"type": "invalid_request_error",
"message": "Clave de API no válida proporcionada: sk_test_********************1234".
}
}
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
charge | string | ID del cargo para el que recuperar reembolsos. Si no se especifica, se devolverán todos los reembolsos. |
created | dictionary | Devuelve sólo los reembolsos creados durante los intervalos de fechas indicados. Puede ser un diccionario con las siguientes claves: gt, gte, lt, lte. |
ending_before | string | Un cursor para usar en la paginación. Utilice el objeto ID ending_before para definir su lugar en la lista. Si haces una petición de lista y recibes 100 resultados, empezando por obj_bar, tu siguiente llamada puede incluir ending_before=obj_bar para obtener la página anterior de la lista. |
limit | integer | Un límite en el número de objetos a devolver. El límite puede oscilar entre 1 y 100. Por defecto es 10. |
payment_intent | string | ID del PaymentIntent para el que se recuperarán los reembolsos. Si no se especifica, se devolverán todos los reembolsos. |
starting_after | string | Un cursor para utilizar en la paginación. Utilice el objeto ID starting_after para definir su lugar en la lista. Si realiza una solicitud de lista y recibe 100 resultados, que terminan con obj_foo, su llamada posterior puede incluir starting_after=obj_foo para obtener la siguiente página de la lista. |
expand[] | array of strings | Especifica qué campos de la respuesta deben expandirse. |