---
title: "Load or Unload Card"
method: POST
path: "/api/v1/cards/{publicToken}/transactions"
tags: ["Transactions"]
---

# Load or Unload Card

`POST /api/v1/cards/{publicToken}/transactions`

## Path parameters

- `publicToken` string, required

## Request body

- CreateTransactionRequest — Request received by the Create Transaction endpoint.
  - `transactionType` 'Load' | 'Unload' | 'TransferFunds' | 'BalanceAdjustment' | 'Fee', required — The type of transaction for the request. This will be either Load, Unload, Fee, TransferFunds or BalanceAdjustment.
  - `amount` number, double, required — The value corresponding to the transaction. Required, unless transactionType is Fee
  - `currencyCode` string, required — The currency of the transaction (3 letter currency code).
  - `user` string, nullable — The actor initiating the transaction request.
  - `description` string, nullable — Free text field that is populated on card statement.
  - `feeAmount` number, double, required — The value corresponding to the transactions fees. Must be a positive amount. Required when transactionType is Fee
  - `feeType` 'Undefined' | 'FundsTransferFee' | 'PINCVVServiceFee' | 'MonthlyServiceFee' | 'ReloadFromMVCFee' | 'CardConversionFee' | 'PhysicalCardIssuingFee' | 'AdministrationFee' | 'CardReplacementFee' | 'VirtualCardIssuingFee' | 'ParentCardActivationFee' | 'ChildCardActivationFee' | 'FirstLoadFromMVCFee' | 'RecurringFee', required — Fee Type associated with Fee transactions. Required, when transactionType is Fee
  - `toPublicToken` string, required — Target public token of the request. Required if transactionType is TransferFunds.

## Response `200`

Success

- CreateTransactionResponse — Response class returned by a CardsController CreateTransaction web method.
  - `transaction` TransactionDetail[], nullable — Details of the transaction(s) performed
    - `transactionType` 'Load' | 'Unload' | 'TransferFunds' | 'BalanceAdjustment' | 'Fee' — The type of transaction that was performed.
    - `transactionId` integer — ID of the Transaction.
    - `amount` number, double — Transaction amount.
    - `currencyCode` string, nullable — 3-letter currency code - same value as in the request.
    - `publicToken` string, nullable — Public token to which transaction has been recorded against
  - `balance` BalanceResponse — Card balance.
    - `currencyCode` string, nullable — Currency code (3-letter format)
    - `cardBalance` number, double — Actual balance of the Card (including blocked amount)
    - `pendingAmount` number, double — Blocked Amount (i.e. part of available balance which cannot be used)
    - `availableBalance` number, double — Available Balance

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `422` — Client Error
- `500` — Server Error

---

[API](https://skmtc.dev/thredd/apis/core-cards.md) · [All operations](https://skmtc.dev/thredd/apis/core-cards/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/thredd/core-cards/revisions/841f62def5bf/schema)
