Skip to content

Create Deposit

POST /api-access/transactions/client/sessions/deposit

Create a new deposit transaction to add funds to a wallet.

Authentication

Required Headers:

Authorization: HMAC-SHA256 PUBLIC_KEY:PRIVATE_KEY
X-Origin: third-party-api
X-Timestamp: 2025-10-12T14:30:00.000Z
Content-Type: application/json

Request

Body Parameters:

ParameterTypeRequiredDescription
descriptionstringNoDescription of the deposit
quote_idstringNoQuote ID from deposit calculator
direct_debit_tokenstringNoDirect debit token for payment
wallet_idstringYesWallet ID to deposit into
transactionobjectYesTransaction details object
transaction.amountnumberYesAmount to deposit
transaction.payin_countrystringYesCountry code (e.g., ca)
transaction.payin_methodstringYesPayment method (e.g., interac_request, bank_transfer, direct_debit)
metadataobjectNoAdditional metadata
account_namestringNoAccount name

Response

Success Response (200):

json
{
  "data": {
    "success": false,
    "transaction_id": "string",
    "transaction_reference": "string",
    "message": "string",
    "payment_link": "string",
    "status": "string",
    "http_status": 0,
    "session_id": "string",
    "extra": {}
  },
  "success": true,
  "message": "string",
  "detail": {}
}

Examples

bash
curl -X POST "https://sandbox.mara.boo/api-access/transactions/client/sessions/deposit" \
  -H "Authorization: HMAC-SHA256 YOUR_PUBLIC_KEY:YOUR_PRIVATE_KEY" \
  -H "X-Origin: third-party-api" \
  -H "X-Timestamp: 2025-10-12T14:30:00.000Z" \
  -H "Content-Type: application/json" \
  -d '{
    "description": "Monthly deposit",
    "quote_id": "quote-123",
    "wallet_id": "wallet-456",
    "transaction": {
      "amount": 1000,
      "payin_country": "ca",
      "payin_method": "interac_request"
    },
    "metadata": {},
    "account_name": "Business Account"
  }'
javascript
const response = await fetch('https://sandbox.mara.boo/api-access/transactions/client/sessions/deposit', {
  method: 'POST',
  headers: {
    'Authorization': 'HMAC-SHA256 YOUR_PUBLIC_KEY:YOUR_PRIVATE_KEY',
    'X-Origin': 'third-party-api',
    'X-Timestamp': '2025-10-12T14:30:00.000Z',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    description: "Monthly deposit",
    quote_id: "quote-123",
    wallet_id: "wallet-456",
    transaction: {
      amount: 1000,
      payin_country: "ca",
      payin_method: "interac_request"
    },
    metadata: {},
    account_name: "Business Account"
  })
});

const data = await response.json();
python
import requests

response = requests.post(
    'https://sandbox.mara.boo/api-access/transactions/client/sessions/deposit',
    headers={
        'Authorization': 'HMAC-SHA256 YOUR_PUBLIC_KEY:YOUR_PRIVATE_KEY',
        'X-Origin': 'third-party-api',
        'X-Timestamp': '2025-10-12T14:30:00.000Z',
        'Content-Type': 'application/json'
    },
    json={
        "description": "Monthly deposit",
        "quote_id": "quote-123",
        "wallet_id": "wallet-456",
        "transaction": {
            "amount": 1000,
            "payin_country": "ca",
            "payin_method": "interac_request"
        },
        "metadata": {},
        "account_name": "Business Account"
    }
)

data = response.json()
go
package main

import (
    "bytes"
    "encoding/json"
    "net/http"
    "io/ioutil"
)

func main() {
    payload := map[string]interface{}{
        "description": "Monthly deposit",
        "quote_id": "quote-123",
        "wallet_id": "wallet-456",
        "transaction": map[string]interface{}{
            "amount": 1000,
            "payin_country": "ca",
            "payin_method": "interac_request",
        },
        "metadata": map[string]interface{}{},
        "account_name": "Business Account",
    }

    jsonData, _ := json.Marshal(payload)

    client := &http.Client{}
    req, _ := http.NewRequest("POST", "https://sandbox.mara.boo/api-access/transactions/client/sessions/deposit", bytes.NewBuffer(jsonData))

    req.Header.Set("Authorization", "HMAC-SHA256 YOUR_PUBLIC_KEY:YOUR_PRIVATE_KEY")
    req.Header.Set("X-Origin", "third-party-api")
    req.Header.Set("X-Timestamp", "2025-10-12T14:30:00.000Z")
    req.Header.Set("Content-Type", "application/json")

    resp, _ := client.Do(req)
    defer resp.Body.Close()

    body, _ := ioutil.ReadAll(resp.Body)
}
java
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

String jsonPayload = """
{
  "description": "Monthly deposit",
  "quote_id": "quote-123",
  "wallet_id": "wallet-456",
  "transaction": {
    "amount": 1000,
    "payin_country": "ca",
    "payin_method": "interac_send"
  },
  "metadata": {},
  "account_name": "Business Account"
}
""";

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://sandbox.mara.boo/api-access/transactions/client/sessions/deposit"))
    .header("Authorization", "HMAC-SHA256 YOUR_PUBLIC_KEY:YOUR_PRIVATE_KEY")
    .header("X-Origin", "third-party-api")
    .header("X-Timestamp", "2025-10-12T14:30:00.000Z")
    .header("Content-Type", "application/json")
    .POST(HttpRequest.BodyPublishers.ofString(jsonPayload))
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
csharp
using System.Net.Http;
using System.Text;
using System.Text.Json;

var payload = new
{
    description = "Monthly deposit",
    quote_id = "quote-123",
    wallet_id = "wallet-456",
    transaction = new
    {
        amount = 1000,
        payin_country = "ca",
        payin_method = "interac_request"
    },
    metadata = new { },
    account_name = "Business Account"
};

var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://sandbox.mara.boo/api-access/transactions/client/sessions/deposit");

request.Headers.Add("Authorization", "HMAC-SHA256 YOUR_PUBLIC_KEY:YOUR_PRIVATE_KEY");
request.Headers.Add("X-Origin", "third-party-api");
request.Headers.Add("X-Timestamp", "2025-10-12T14:30:00.000Z");

var jsonContent = JsonSerializer.Serialize(payload);
request.Content = new StringContent(jsonContent, Encoding.UTF8, "application/json");

var response = await client.SendAsync(request);
var content = await response.Content.ReadAsStringAsync();

Error Responses

Status CodeDescription
400Bad Request - Invalid parameters
401Unauthorized - Invalid authentication
403Forbidden - Missing required headers
422Validation Error - Field validation failed
500Internal Server Error