Create a refund | Moov Documentation

Create a refund

Initiate a refund for a card transfer.

Use the Cancel or refund a card transfer endpoint for more comprehensive cancel and refund options.

See the reversals guide for more information.

To access this endpoint using an access token you will need to specify the /accounts/{accountID}/transfers.write scope.

HTTP Method

POST

Endpoint

/accounts/{accountID}/transfers/{transferID}/refunds

Example Requests

cURL

curl -X POST "https://api.moov.io/accounts/{accountID}/transfers/{transferID}/refunds" \
  -H "Authorization: Bearer {token}" \
  -H "X-Moov-Version: v2026.07.00"

Go

mc, _ := moov.NewClient()

var accountID string
var transferID string

mc.RefundTransfer(ctx, accountID, transferID, moov.CreateRefund{
    Amount: 1700,
})

TypeScript

import { Moov } from "@moovio/sdk";

const moov = new Moov({
  security: {
    username: "",
    password: "",
  },
});

async function run() {
  const result = await moov.transfers.initiateRefund({
    xIdempotencyKey: "8d9af6b8-67e1-4efa-8188-68039f34097d",
    accountID: "cb6ae9f9-afab-4f06-9eb0-8abf54a3ada2",
    transferID: "04022119-95be-4ef4-9dd4-b3782f6aa7b9",
    createRefund: {
      amount: 1000,
      amountDetails: {
        surcharge: {
          currency: "USD",
          valueDecimal: "12.987654321",
        },
      },
    },
  });

console.log(result);
}

run();

PHP

declare(strict_types=1);

require 'vendor/autoload.php';

use Moov\