Refund Object

A refund object is created when you initiate a refund request.

{
  "id": "01990e74-5bc9-79a5-a651-400af0ad13ef",
  "clientReferenceId": "1755665477",
  "paymentSessionId": "44a14481-fa75-49a5-b17f-d03d8c5d52a6",
  "chargeId": "110eb890-d238-4212-aedc-533a8c77a53e",
  "capturedAmount": {
    "currency": "IDR",
    "value": "10000.00"
  },
  "isFullAmount": true,
  "amount": {
    "currency": "IDR",
    "value": "10000.00"
  },
  "status": "SUCCESS",
  "reason": "REQUESTED_BY_CUSTOMER",
  "description": "Customer didn't receive the Product",
  "destinationType": "CHANNEL",
  "method": "AUTO",
  "transferDestination": {
    "channelCode": "BCA",
    "channelInformation": {
      "accountNumber": "17677665415",
      "accountName": "Reforza Jordan Geotama"
    },
    "description": "Refund Pivot"
  },
  "metadata": {
    "notes": "Customer called support"
  },
  "createdAt": "2025-09-03T07:22:11Z",
  "updatedAt": "2025-09-03T07:22:13Z"
}

Detail Refund Object

Parameter
Data Type
Character Limit
Requirement
Description

id

String

-

Auto Generated

Unique ID generated from Pivot as refund identifier

clientReferenceId

Alphanumeric

1-100

M

Unique ID from merchant to identify the refund

paymentSessionId

String

-

C

Payment Session ID merchant intend to perform refund on

chargeId

String

-

C

Singular Charge ID merchant intend to perform refund on

capturedAmount

Object

-

M

Total captured amount from Payment Session ID – amount available to be refunded

  • currency

String

1-3

M

Currency ISO 4217

  • value

String

1-18

M

Amount value

isFullAmount

Boolean

-

C

Indicate if the refund amount is the same with capturedAmount, possible values

  • false (default)

  • true

amount

Object

-

C

Required if isFullAmount = false

  • currency

String

1-3

M

Currency ISO 4217

  • value

String

1-18

M

Amount value

status

String

-

M

Status of Refund, possible values:

  • PENDING

  • WAITING_BANK_TRANSFER

  • SUCCESS

  • FAILED

  • CANCELLED

reason

String

-

M

Reason for user performing refund, possible values:

  • SUSPECT_FRAUDULENT

  • DUPLICATE

  • REQUESTED_BY_CUSTOMER

  • CANCELLATION

  • OTHERS

description

String

0-50

O

Information describing the refund for merchant internal notes

destinationType

String

-

C

Value is available after refund reached to final status, indicating the refund destination OR if status = WAITING_BANK_TRANSFER then value will always be ACCOUNT

Possible values

  • CHANNEL → fund is credited back to the payment channel used on the transaction

  • ACCOUNT → fund is transferred to the submitted destination

method

String

-

O

Refund method preferred by Merchant / customer, possible values:

  • AUTO (default) → Pivot will perform refund through Channel, if failed then fallback to Bank Transfer if available

  • TRANSFER_ONLY → Refund will be performed through Bank Transfer only, Merchant is required to send the destination account

transferDestination

Object

-

C

Required if preferredMethod = TRANSFER_ONLY

  • channelCode

String

-

M

Channel code for payout destination such as Bank, E wallet or other channels

List of Channel code can be accessed Channel Codes

  • channelInformation

Object

-

M

  • accountNumber

String

-

M

Account Number of payout destination

  • accountName

String

-

M

Account Name of payout destination

  • description

String

-

O

Information that will be seen by beneficiary account in statement

Note:

  • Maximum length each channel code is 20 characters

  • Support alphanumeric characters only

metadata

Object

-

O

Free object for merchant to store any extra information about the payment session

createdAt

String

-

M

Refund created time with format YYYY-MM-DDTHH:MM:SSZ

updatedAt

String

-

M

Refund latest updated time with format YYYY-MM-DDTHH:MM:SSZ

Last updated