Veem Wallet

Easily add or withdraw money from your wallet using the Wallet APIs

The wallet APIs allows users to manage their funds through two primary functions: addFunds for depositing money into the wallet and withdraw for taking money out of the wallet.

  1. fundingMethod this refers to the user's bank account or card from which funds will be taken to add money to the wallet.

Add Funds

The addFunds API is responsible for increasing the user's wallet balance.

POST https://sandbox-api.veem.com/veem/v1.2/payments/wallet/addFunds

With example request payload

{  
    "amount": {  
        "number": 100,  
        "currency": "USD"  
    },  
    "fundingMethod": {  
        "id": 3518,  
        "type": "Bank"  
    }
}

Example response:

{
    "id": 12345,
    "payee": {
        "email": "[email protected]",
        "phone": "tel:+33-1-23-45-67-89",
        "countryCode": "FR"
    },
    "status": "Sent",
    "claimLink": "https://api.veem.com/api/c/ABCDEF",
    "requestId": "e5dbaf73-38c2-4a92-bf3d-87bc65d77a9i",
    "payeeAmount": {
        "number": 15224,
        "currency": "USD"
    },
    "timeCreated": "2024-08-22T16:54:54.367-07:00",
    "timeUpdated": "2024-08-22T16:54:56.024-07:00",
    "fastTransfer": false,
    "debitCreditTxn": {
        "debitTxn": null,
        "creditTxn": null
    }
}


Wallet Withdraw

Allows users to withdraw money from their wallet.

  1. The withdrawal process will transfer the funds to the account's default funding method, whether it’s a bank account or card.

POST https://sandbox-api.veem.com/veem/v1.2/payments/wallet/withdraw

With example request payload

{
    "amount": {
        "number": 50,
        "currency": "USD"
    }
}

Example response:

{
    "id": 12345,
    "payee": {
        "email": "[email protected]",
        "phone": "tel:+33-1-23-45-67-89",
        "countryCode": "FR"
    },
    "status": "Sent",
    "claimLink": "https://api.veem.com/api/c/ABCDEF",
    "requestId": "e5dbaf73-38c2-4a92-bf3d-87bc65d77a9i",
    "payeeAmount": {
        "number": 15224,
        "currency": "USD"
    },
    "timeCreated": "2024-08-22T16:54:54.367-07:00",
    "timeUpdated": "2024-08-22T16:54:56.024-07:00",
    "fastTransfer": false,
    "debitCreditTxn": {
        "debitTxn": null,
        "creditTxn": null
    }
}

Move funds between Wallets

The Multi-Currency Wallet Payment API allows users to transfer funds between different wallets under their account. This API replicates the same functionality as CustApp, enabling seamless movement of funds between wallets.

POST https://sandbox-api.veem.com/veem/v1.2/payments/wallet/convert


Headers

HeaderMandatory?ValueDescription
X-REQUEST-IDYes48855846-628d-4177-b071-80332a116f0a (example)Unique request identifier
Content-TypeYesapplication/jsonSpecifies JSON format
AuthorizationYesBearer <access_token>API authentication token

Request Payloads

The API supports two types of payloads:

Sending Exact Amount

Used when the user specifies the exact amount to send from the source wallet.

Request Body:

{
    "sourceWallet": {
        "currency": "USD",
        "number": 50
    },
    "destinationWallet": {
        "currency": "MXN"
    }
}

Receiving Exact Amount

Used when the user specifies the exact amount to receive in the destination wallet.

Request Body:

{
    "sourceWallet": {
        "currency": "USD"
    },
    "destinationWallet": {
        "currency": "MXN",
        "number": 1030
    }
}

Validation Rules

  • The number field cannot be sent in both sourceWallet and destinationWallet at the same time.
  • The request should be structured to either specify:
    • The amount to send (sourceWallet.number)
    • The amount to receive (destinationWallet.number)
  • At least one wallet must be USD: source or destination

Response Format

Success Response:

{
    "id": 462531,
    "status": "Sent",
    "exchangeRate": {
        "fromAmount": 50.00,
        "fromCurrency": "USD",
        "toAmount": 50.00,
        "toCurrency": "USD"
    },
    "payeeAmount": {
        "number": 911.59,
        "currency": "MXN"
    },
    "payerFundingMethodType": "Wallet",
    "receiverFundingMethodType": "Wallet"
  ....
}

Error Responses


HTTP StatusDescription
400 Bad RequestConverting number must be provided either in sourceWallet OR destinationWallet, but not both or neither.
400 Bad RequestMissing Wallet Source currency code
400 Bad RequestThe amount $ 500000 exceeds the available balance $ 344.09
400 Bad RequestChoose USD as one currency to proceed with conversion