---
title: "Update Existing Transfer"
method: PUT
path: "/programs/{programCode}/transfers/{transferIdentifier}"
tags: ["Transfers"]
---

# Update Existing Transfer

`PUT /programs/{programCode}/transfers/{transferIdentifier}`

Updates an existing transfer, including reversals. Reversals are subject to account status and balance requirements. Returns updated transfer details.

## Path parameters

- `programCode` string, required
- `transferIdentifier` string, required

## Headers

- `X-GD-RequestId` string, required

## Request body

- UpdateTransferRequest — Represents a request to update an existing funds transfer. This request is used to modify transfer details such as authorization type, transfer endpoint, and device information before the transfer is executed or completed. It supports business rules for updating transfer state, endpoint, or debit-to-negative settings, and is typically used for compliance, risk, or operational adjustments to a pending or in-process transfer.
  - `transferAuthorizationType` string, nullable — The type of authorization being requested for the transfer update (e.g., "execute", "hold", "accept", "cancel", "reject", "system", "reverse"). Determines the intended action for the transfer update.
  - `transferEndpoint` UpdateTransferEndpoint — Represents the endpoint details for updating a transfer, such as the source or target of funds. Contains information about the endpoint type, unique identifier, and card data (encrypted or unencrypted) used in the transfer update process. Used to specify or modify the source or destination for a transfer during an update operation.
    - `isSource` boolean — Indicates whether this endpoint is the source of funds (true) or the target (false) in the transfer.
    - `transferEndPointType` string, nullable — The type of transfer endpoint (e.g., "account", "card", "external"). Specifies the nature of the source or target for the transfer.
    - `identifier` string, nullable — The unique identifier for the endpoint, such as an account number, card number, or external reference.
    - `encryptedCardData` EncryptedData — Represents a container for encrypted data used in secure data transfer operations. Contains the encrypted payload and associated cryptographic metadata, including encryption version, ephemeral public key, and public key hash. Used to securely transmit sensitive information such as user data, ensuring confidentiality and integrity during transport.
      - `version` string, nullable — The version of the encryption algorithm used to encrypt the data (e.g., "v1", "v2").
      - `ephemeralPublicKey` string, nullable — The ephemeral public key used in the encryption process, typically for key exchange or session establishment.
      - `publicKeyHash` string, nullable — The hash of the public key used to verify the integrity and authenticity of the encryption key.
      - `data` string, nullable — The encrypted data payload, typically base64-encoded, containing the sensitive information.
  - `debitToNegative` boolean, nullable — Indicates whether the update allows the account to be debited to a negative balance (true if allowed).
  - `device` DeviceInfo — Represents device-specific information used when initiating a transfer or other sensitive operation. Contains details about the device and network, such as device ID, make, model, operating system, and IP addresses. Used for device identification, risk assessment, auditing, and fraud prevention.
    - `deviceId` string, nullable — The unique identifier assigned to the device (e.g., device UUID or hardware ID). Used to uniquely identify the device making the request.
    - `deviceMake` string, nullable — The make or manufacturer of the device (e.g., "Apple", "Samsung", "Dell").
    - `deviceVersion` string, nullable — The model or version of the device (e.g., "iPhone 14", "Galaxy S22", "Latitude 7420").
    - `deviceOS` string, nullable — The operating system running on the device (e.g., "iOS", "Android", "Windows").
    - `deviceOSVersion` string, nullable — The version of the operating system running on the device (e.g., "16.4", "13", "11 Pro").
    - `ipAddress` string, nullable — The IP address of the device as detected by the application or device itself. Used for geolocation, risk analysis, and fraud prevention.
    - `customerIP` string, nullable — The customer’s public IP address as seen by the server or network edge. May be used for additional risk analysis or logging.

## Response `200`

OK

- UpdateTransferResponse — UpdateTransferResponse
  - `transfer` UpdatedTranfer — Represents the updated status of a transfer operation. Contains the transfer status value, which reflects the current state of the transfer (e.g., "Pending", "Completed", "Failed"). Used to communicate or persist transfer status updates in API responses, workflows, or business logic.
    - `transferStatus` string, nullable — The current status of the transfer (e.g., "Pending", "Completed", "Failed").
  - `responseDetails` ResponseDetail[], nullable — Required: A list of response details providing status codes, descriptions, and additional information about the result of the operation.
    - `code` integer — The primary status or error code for the response (e.g., 200 for success, 400 for validation error).
    - `subCode` integer, nullable — An optional subcode providing more granular detail about the response or error.
    - `description` string, nullable — A human-readable description of the response, error, or status.
    - `url` string, nullable — A URL linking to documentation or a web page with more information about the response code.

## Other responses

- `401` — Unauthorized
- `403` — Forbidden
- `500` — Internal Server Error
- `503` — Service Unavailable

---

[API](https://skmtc.net/greendot/apis/baas-apis.md) · [All operations](https://skmtc.net/greendot/apis/baas-apis/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/greendot/baas-apis/versions/666553766b78/schema)
