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 }