Uploading Transaction Payloads to GCS - Example

import json

import requests

# API endpoint and credentials
api_url = "The GCS URL from the `/api/v1/transaction-monitoring/transactions/upload-via-url`"
payload = {
    "transaction_id": "txn_internal_010",
    "type": "deposit",
    "subtype": "TRADE",
    "event_time": "2025-10-17T22:15:45Z",
    "amount": "2000.00",
    "amount_currency": "USD",
    "sender": {
        "entity_id": "user_david_321",
        "name": None,
        "blockchain_addresses": ["0xabc123def456789012345678901234567890abcd"],
        "asset_out": {"amount": "0.75", "currency_id": 60, "currency_type": "crypto", "currency_symbol": "ETH"},
    },
    "receiver": {
        "entity_id": "user_david_321",
        "name": None,
        "blockchain_addresses": ["0xdef789abc012345678901234567890abcdef1234"],
        "asset_in": {"amount": "0.75", "currency_id": 60, "currency_type": "crypto", "currency_symbol": "ETH"},
    },
    "balance": "12500.00",
    "blockchain": {
        "transaction_hash": "0x9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba",
        "chain_id": 1,
        "chain_symbol": "ETH",
    },
}

new_headers = {"Content-Type": "application/json"}
response = requests.put(api_url, headers=new_headers, data=json.dumps(payload))
print(response)