# Simulate a balance top-up

Simulates a top-up so that a balance can be used to fund transfers and/or card spend.

Endpoint: POST /v1/simulation/balance/topup
Security: UserToken

## Request fields (application/json):

  - `profileId` (integer, required)
    The profile ID linked to the balance account.

  - `balanceId` (integer, required)
    The ID of the balance account that is going to receive the funds.

  - `currency` (string, required)
    The currency to top up the balance account in. Must be the same currency as the balance account.

  - `amount` (number, required)
    The amount to top up the balance account with.

  - `channel` (string)
    Type of top-up. Not providing a channel will default to CARD.
    Enum: "TRANSFER", "CARD"

## Response 200 fields (application/json):

  - `transactionId` (integer)
    The ID of the top-up transaction.

  - `state` (string)
    The state of the transaction. COMPLETED is always returned when using this endpoint.

  - `balancesAfter` (array)

  - `balancesAfter.id` (integer)
    The ID of the balance account.

  - `balancesAfter.value` (number)
    The new amount available in the balance account.

  - `balancesAfter.currency` (string)
    The currency of the balance account.


