You can refund an order multiple times until all the money in it is refunded.
Refer to refund_possible in the order object to check if refunding is still possible.
If you wish to restock products in inventory, submit shipments array along with the refund request.
Submit a refund
POST /orders/ID/refund
{
// shipments are optional, use if you wish to restock products
"shipments": [
{
"id": "<Int>", // ID of the shipment
// list of products in this shipment, with quantity to restock
"items": [
{
"id": "<Int>", // ID of the line item from the order
"quantity": "<Int>"
}
]
}
],
"refund": "<Float>", // amount to refund
"notify": "<Bool>" // whether customer should be notified by email
}