def refund_payment()

in src/backend/payment/src/refund-payment/refund.py [0:0]


def refund_payment(charge_id):
    """Refunds payment from a given charge ID through Payment API

    For more info on Stripe Refund Object: https://stripe.com/docs/api/refunds/object

    Parameters
    ----------
    charge_id : string
        Pre-authorized charge ID received from Payment API

    Returns
    -------
    dict
        refundId: string
    """
    if not payment_endpoint:
        logger.error({"operation": "input_validation", "details": os.environ})
        raise ValueError("Payment API URL is invalid -- Consider reviewing PAYMENT_API_URL env")

    refund_payload = {"chargeId": charge_id}

    try:
        logger.debug({"operation": "payment_refund", "details": refund_payload})
        ret = requests.post(payment_endpoint, json=refund_payload)
        ret.raise_for_status()
        
        refund_response = ret.json()
        tracer.put_metadata(charge_id, ret.json())
        logger.info(
            {
                "operation": "payment_refund",
                "details": {
                    "response_headers": ret.headers,
                    "response_payload": refund_response,
                    "response_status_code": ret.status_code,
                    "url": ret.url,
                },
            }
        )
        
        return {"refundId": refund_response["createdRefund"]["id"]}
    except requests.exceptions.RequestException as err:
        logger.exception({"operation": "payment_refund"})
        raise RefundException(details=err)