Proof of Funds

License Terms

Under our license, we have a monthly limit of €10,000 (10k), below which we do not require any documents from the end client (identified by the customer_external_id field from our API). Once a client exceeds this limit, all their deposits are put on hold until we receive documents verifying the source of their funds.

Transaction Process

When creating a channel, as well as when generating invoices and payouts, we ask merchants to provide the customer_external_id - a unique user ID in their system. This is used to calculate the monthly turnover, considering both incoming and outgoing amounts for the client.

The initial turnover limit for each user is €10,000 (10k) per month, specifically accounting for the current calendar month.

Exceeding the Limit

Once a user surpasses the €10,000 (10k) threshold, the creation of invoices and payouts for that client results in an error with the code month_limit_exceeded and a 412 status. Subsequently, incoming payments through the channel are halted, switching to on_hold status, and a notification is issued (a webhook with type deposit_on_hold).

Compliance and Limit Increase

Upon receiving such a webhook, it is necessary to upload documents verifying the user's income, enabling us to increase their limit. This process is facilitated using the method described in the Munzen Merchant API documentation ("Upload customer's documents" section).

Our support team will review the uploaded documents and, if compliant, will increase the limit for the specified user. Additionally, they will process all deposits in on_hold status. Your system will then receive webhooks confirming that all deposits have been successfully credited.

Webhooks

In cases where a user makes a deposit and exceeds limits, we send webhooks with specific statuses as indicated below. You can add handlers to your system to enhance user experience. The main difference is event and status fields.

{
    "type": "invoice",
    "event": "deposit_on_hold",
    "data": {
        "id": "018bc9b1-6fcd-710e-91d7-13b541244ebb",
        "number": 73109,
        "price_currency": "USD",
        "price_amount": 500,
        "pay_currency": "XLM",
        "pay_amount": 102,
        "exchange_rate": 0.2,
        "exchange_rate_expires_at": "2023-11-13T17:28:50.000000Z",
        "address": "toPIYnnXGxPAlIMVbJ1Rx5OK8JpqqR",
        "address_tag": "lL2zi",
        "address_uri": "toPIYnnXGxPAlIMVbJ1Rx5OK8JpqqR?amount=102",
        "paid_amount": 1000051,
        "paid_amount_minus_fee": 984550.2095,
        "transaction_hash": "YsbqrYkQcAXfQiYN",
        "transaction_risk_score": 7,
        "received_currency": "XLM",
        "received_amount": 984550.2095,
        "conversion_exchange_rate": null,
        "fees": {
            "processing_invoice": {
                "currency": "XLM",
                "amount": 15500.7905
            }
        },
        "fiat_amounts": {
            "EUR": {
                "paid_amount": 200010.2,
                "fee_amount": 3100.16
            },
            "USD": {
                "paid_amount": 200010.2,
                "fee_amount": 3100.16
            },
            "UAH": {
                "paid_amount": 200010.2,
                "fee_amount": 3100.16
            },
            "KZT": {
                "paid_amount": 200010.2,
                "fee_amount": 3100.16
            }
        },
        "external_id": "686",
        "customer_external_id": "3m7wMMyA8bZkQGQt",
        "external_data": null,
        "name": "Dr. Mario Lakin III",
        "description": "Lester Murazik",
        "redirect_url": "http://hudson.biz/",
        "failure_redirect_url": "http://www.beahan.com/",
        "created_at": "2023-11-13T17:18:50.000000Z",
        "expires_at": "2023-11-13T17:48:50.000000Z",
        "status": "on_hold",
        "status_context": "overpaid"
    },
    "timestamp": 1699895931
}

Last updated