Skip to main content

Orders Refund

The Order Refunds API enables order or order items refund operations.

Note: All requests require an X-API-Key header with your API key.


1. Full Order Refund

Service Call: OrderService.RefundOrder

Refund entire order amount.

Examples

import com.kodypay.grpc.ordering.v1.OrderServiceGrpc;
import com.kodypay.grpc.ordering.v1.RefundOrderRequest;
import io.grpc.ManagedChannelBuilder;
import io.grpc.Metadata;
import io.grpc.stub.MetadataUtils;
import java.util.UUID;

public class FullRefundExample {
public static void main(String[] args) {
Metadata metadata = new Metadata();
metadata.put(Metadata.Key.of("X-API-Key", Metadata.ASCII_STRING_MARSHALLER), API_KEY);

var channel = ManagedChannelBuilder.forAddress("grpc-staging.kodypay.com", 443)
.useTransportSecurity().build();
var client = OrderServiceGrpc.newBlockingStub(channel)
.withInterceptors(MetadataUtils.newAttachHeadersInterceptor(metadata));

RefundOrderRequest request = RefundOrderRequest.newBuilder()
.setStoreId("STORE_123")
.setOrderId("ORDER_456")
.setReason("Wrong item shipped")
.setIdempotencyUuid(UUID.randomUUID().toString())
.build();

var response = client.refundOrder(request);
System.out.println("Refund status: " + (response.getSuccess() ? "Success" : "Failed"));
System.out.println("Amount refunded: " + response.getAmount());
}
}

2. Order Items Refund

Service Call: OrderService.RefundItem

Refund specific items within an order.

Examples

RefundItemRequest request = RefundItemRequest.newBuilder()
.setStoreId("STORE_123")
.setOrderId("ORDER_456")
.addItems(RefundItem.newBuilder()
.setOrderItemId("ITEM_789")
.setQuantity(2)
)
.addItems(RefundItem.newBuilder()
.setOrderItemId("ITEM_101")
.setQuantity(1)
)
.setReason("Damaged during shipping")
.setIdempotencyUuid(UUID.randomUUID().toString())
.build();

var response = client.refundItem(request);
System.out.println("Partial refund processed: " + response.getSuccess());
System.out.println("Refunded amount: " + response.getAmount());