MENU navbar-image

Introduction

This documentation aims to provide all the information you need to work with our API.

Authenticating requests

To authenticate requests, include a X-Munzen-Key header with the value "your-token".

All authenticated endpoints are marked with a requires authentication badge in the documentation below.

To get your API key contact with us.

Merchant API

API methods for our merchants.

Invoices

Actions with invoices.

Get invoice by id

requires authentication

Shows information about invoice with provided ID.

Example request:
const url = new URL(
    "https://crp-backend.munzen.io/api/v1/merchant/invoices/48e81488-9fb7-4771-a599-8d99df10456c"
);

const params = {
    "timestamp": "1681897688",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "X-Munzen-Key": "cahedD8f5164EaVkZ3gvbP6",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "X-Munzen-Signature": "{YOUR_REQUEST_SIGNATURE}",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "data": {
        "id": "0196626d-73b8-72b2-8089-8f9eea1e7dbe",
        "short_id": "Yu8cDwLX4nvPFVnYMje7J",
        "number": 32851181,
        "price_currency": "EUR",
        "price_amount": "85.85",
        "pay_currency": "BCH",
        "pay_amount": "720.94667359",
        "exchange_rate": "8.39792069",
        "exchange_rate_expires_at": "2025-04-23T11:49:22.000000Z",
        "address": "vK9YEhT705fYKONlrvZW5PxsuMBJjy",
        "address_tag": "ov2kM",
        "address_uri": "bitcoincash:vK9YEhT705fYKONlrvZW5PxsuMBJjy?amount=720.94667359",
        "paid_amount": "12030166.652762",
        "paid_amount_minus_fee": "12030111.500341",
        "transaction_hash": null,
        "transaction_risk_score": null,
        "transactions": [],
        "received_currency": "BCH",
        "received_amount": "12030111.500341",
        "conversion_exchange_rate": null,
        "fees": {
            "processing_invoice": {
                "currency": "BCH",
                "amount": "55.15242053"
            }
        },
        "fiat_amounts": [],
        "external_id": "965",
        "customer_external_id": "0aIdBPKTxsNAkdSu",
        "external_data": "{\"foo\":\"bar\"}",
        "name": "Prof. Mohammed Dickens",
        "description": "Gunner Roob",
        "redirect_url": "https://schaden.biz/eum-quam-sed-sit-iusto-et.html",
        "failure_redirect_url": "https://gorczany.biz/possimus-debitis-exercitationem-et-rerum-eligendi-magnam-mollitia.html",
        "created_at": "2025-04-23T11:34:22.000000Z",
        "expires_at": "2025-04-23T12:04:22.000000Z",
        "status": "paid_partially",
        "status_context": "underpaid",
        "status_reason": null,
        "can_be_paid_partially": true
    },
    "error": null
}
 

Example response (401, Unauthenticated request):


{
    "data": null,
    "error": {
        "code": "authentication_error",
        "message": "Unauthenticated."
    }
}
 

Example response (404, Requested resource was not found):


{
    "data": null,
    "error": {
        "code": "http_error",
        "message": "Not found."
    }
}
 

Example response (422, Non-UUID invoice ID in url):


{
    "data": null,
    "error": {
        "code": "validation_error",
        "message": "Invoice ID url param must be valid UUID."
    }
}
 

Example response (500, Internal server error):


{
    "data": null,
    "error": {
        "code": "internal_error",
        "message": "..."
    }
}
 

Request      

GET api/v1/merchant/invoices/{invoiceId}

Headers

X-Munzen-Key      

Example: cahedD8f5164EaVkZ3gvbP6

Content-Type      

Example: application/json

Accept      

Example: application/json

X-Munzen-Signature      

Example: {YOUR_REQUEST_SIGNATURE}

URL Parameters

invoiceId   uuid   

The ID of the invoice. Example: 48e81488-9fb7-4771-a599-8d99df10456c

Query Parameters

timestamp   string   

Current Unix timestamp in seconds. Must be a valid date in the format U. Example: 1681897688

Get invoice by externalId

requires authentication

Shows information about invoice with provided externalId.

Example request:
const url = new URL(
    "https://crp-backend.munzen.io/api/v1/merchant/invoices/by-external-id/48e899dfd9gb453sds10456c"
);

const params = {
    "timestamp": "1681897688",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "X-Munzen-Key": "bEDkf6Z8Pv4ghca3V61ade5",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "X-Munzen-Signature": "{YOUR_REQUEST_SIGNATURE}",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "data": {
        "id": "0196626d-73f4-7196-84f9-0f7b15225885",
        "short_id": "wuFnNJFwAGau3U8ZMje7J",
        "number": 97401000,
        "price_currency": "UAH",
        "price_amount": "3602751.92",
        "pay_currency": "USDCBEP20",
        "pay_amount": "5676962.5216589",
        "exchange_rate": "1.57572951",
        "exchange_rate_expires_at": "2025-04-23T11:48:22.000000Z",
        "address": "CYd0ubhJBeJFU4Ug8FdeJvCmvNSbNP",
        "address_tag": "zgR8T",
        "address_uri": "ethereum:CYd0ubhJBeJFU4Ug8FdeJvCmvNSbNP?amount=5676962.5216589",
        "paid_amount": "60160768.2833",
        "paid_amount_minus_fee": "59749756.196732",
        "transaction_hash": null,
        "transaction_risk_score": null,
        "transactions": [],
        "received_currency": "USDCBEP20",
        "received_amount": "59749756.196732",
        "conversion_exchange_rate": null,
        "fees": {
            "processing_invoice": {
                "currency": "USDCBEP20",
                "amount": "411012.0865681"
            }
        },
        "fiat_amounts": [],
        "external_id": "220",
        "customer_external_id": "kI1WiqLmGu29xEnQ",
        "external_data": "{\"foo\":\"bar\"}",
        "name": "Kacie Doyle",
        "description": "Earl Gorczany Jr.",
        "redirect_url": "https://bailey.net/incidunt-quos-dolorum-commodi-amet-sit-velit-quia-amet.html",
        "failure_redirect_url": "http://mertz.com/repellendus-sunt-aut-minus-dolores-et-id.html",
        "created_at": "2025-04-23T11:34:22.000000Z",
        "expires_at": "2025-04-23T12:01:22.000000Z",
        "status": "refunded",
        "status_context": "underpaid",
        "status_reason": null,
        "can_be_paid_partially": true
    },
    "error": null
}
 

Example response (401, Unauthenticated request):


{
    "data": null,
    "error": {
        "code": "authentication_error",
        "message": "Unauthenticated."
    }
}
 

Example response (404, Requested resource was not found):


{
    "data": null,
    "error": {
        "code": "http_error",
        "message": "Not found."
    }
}
 

Example response (500, Internal server error):


{
    "data": null,
    "error": {
        "code": "internal_error",
        "message": "..."
    }
}
 

Request      

GET api/v1/merchant/invoices/by-external-id/{externalId}

Headers

X-Munzen-Key      

Example: bEDkf6Z8Pv4ghca3V61ade5

Content-Type      

Example: application/json

Accept      

Example: application/json

X-Munzen-Signature      

Example: {YOUR_REQUEST_SIGNATURE}

URL Parameters

externalId   string   

The external ID of the invoice. Example: 48e899dfd9gb453sds10456c

Query Parameters

timestamp   string   

Current Unix timestamp in seconds. Must be a valid date in the format U. Example: 1681897688

Create invoice

requires authentication

Creates new invoice with provided data and shows information about it.

Example request:
const url = new URL(
    "https://crp-backend.munzen.io/api/v1/merchant/invoices"
);

const headers = {
    "X-Munzen-Key": "6cg8ZV5aDda13f4kEebvPh6",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "X-Munzen-Signature": "{YOUR_REQUEST_SIGNATURE}",
};

let body = {
    "price_currency": "AURORANEAR",
    "price_amount": 291.96108,
    "pay_currency": "ETHBASE",
    "customer_external_id": "48276dd8-1e88-49fb-950c-f64bff01a66d",
    "external_data": "{\"param1\":\"value1\",\"param2\":\"value2\"}",
    "external_id": "57c5e8a7-d2dd-455b-9e4f-beb449d0989a",
    "customer_email": "example@gmail.com",
    "send_cheque": false,
    "name": "Your invoice name",
    "description": "Your invoice description",
    "redirect_url": "https:\/\/www.runolfsson.com\/similique-dignissimos-ut-animi-quisquam-voluptate-architecto-id",
    "failure_redirect_url": "http:\/\/little.org\/sapiente-omnis-repellendus-odit-laudantium-facilis.html",
    "timestamp": 1681897688
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "data": {
        "id": "0196626d-742b-7026-878d-f941ab1e7c22",
        "short_id": "qxoznmvpMCzCfrRZMje7J",
        "number": 1019328,
        "price_currency": "KZT",
        "price_amount": "8400.55",
        "pay_currency": "ETHBASE",
        "pay_amount": "59398.192164654",
        "exchange_rate": "7.07075155",
        "exchange_rate_expires_at": "2025-04-23T11:47:22.000000Z",
        "address": "ulu87t3Dw6qDFnm4kKeQBE5eWHgF4H",
        "address_tag": "uK5Oj",
        "address_uri": "ethereum:ulu87t3Dw6qDFnm4kKeQBE5eWHgF4H?amount=59398.192164654",
        "paid_amount": "66.43755939",
        "paid_amount_minus_fee": "-2351.0688617114",
        "transaction_hash": null,
        "transaction_risk_score": null,
        "transactions": [],
        "received_currency": "ETHBASE",
        "received_amount": "-2351.0688617114",
        "conversion_exchange_rate": null,
        "fees": {
            "processing_invoice": {
                "currency": "ETHBASE",
                "amount": "2417.5064211014"
            }
        },
        "fiat_amounts": [],
        "external_id": "878",
        "customer_external_id": "yFPNBwLFJ4ZzPxUQ",
        "external_data": "{\"foo\":\"bar\"}",
        "name": "Johnathan Grant",
        "description": "Derick Wilkinson",
        "redirect_url": "http://langworth.com/tenetur-veritatis-cumque-repellendus-est-sit",
        "failure_redirect_url": "http://jones.com/tenetur-nesciunt-quia-officia-quam-deserunt",
        "created_at": "2025-04-23T11:34:22.000000Z",
        "expires_at": "2025-04-23T11:54:22.000000Z",
        "status": "created",
        "status_context": "underpaid",
        "status_reason": null,
        "can_be_paid_partially": false
    },
    "error": null
}
 

Example response (401, Unauthenticated request):


{
    "data": null,
    "error": {
        "code": "authentication_error",
        "message": "Unauthenticated."
    }
}
 

Example response (422, Validation error):


{
    "data": null,
    "error": {
        "code": "validation_error",
        "message": "The given data was invalid.",
        "payload": {
            "field": [
                "error_1",
                "error_2"
            ]
        }
    }
}
 

Example response (500, Internal server error):


{
    "data": null,
    "error": {
        "code": "internal_error",
        "message": "..."
    }
}
 

Request      

POST api/v1/merchant/invoices

Headers

X-Munzen-Key      

Example: 6cg8ZV5aDda13f4kEebvPh6

Content-Type      

Example: application/json

Accept      

Example: application/json

X-Munzen-Signature      

Example: {YOUR_REQUEST_SIGNATURE}

Body Parameters

price_currency   string   

Example: AURORANEAR

Must be one of:
  • BTC
  • BCH
  • LTC
  • ETH
  • MATIC
  • TRX
  • XLM
  • SOL
  • BNB
  • ETHBASE
  • NEAR
  • AURORA
  • USDTERC20
  • USDTTRC20
  • USDTMATIC
  • USDTBEP20
  • USDTNEAR
  • USDTENEAR
  • USDTAURORA
  • USDCERC20
  • USDCTRC20
  • USDCMATIC
  • USDCNEAR
  • USDCENEAR
  • USDCBEP20
  • USDCAURORA
  • USDCXLM
  • USDCBASE
  • AURORANEAR
  • ETHAURORA
  • EUR
  • USD
  • UAH
  • KZT
price_amount   number   

Example: 291.96108

pay_currency   string   

Example: ETHBASE

Must be one of:
  • BTC
  • BCH
  • LTC
  • ETH
  • MATIC
  • TRX
  • XLM
  • SOL
  • BNB
  • ETHBASE
  • NEAR
  • AURORA
  • USDTERC20
  • USDTTRC20
  • USDTMATIC
  • USDTBEP20
  • USDTNEAR
  • USDTENEAR
  • USDTAURORA
  • USDCERC20
  • USDCTRC20
  • USDCMATIC
  • USDCNEAR
  • USDCENEAR
  • USDCBEP20
  • USDCAURORA
  • USDCXLM
  • USDCBASE
  • AURORANEAR
  • ETHAURORA
  • EUR
  • USD
  • UAH
  • KZT
customer_external_id   string   

Customer external unique ID. Example: 48276dd8-1e88-49fb-950c-f64bff01a66d

external_data   string  optional  

Must not be greater than 1024 characters. Example: {"param1":"value1","param2":"value2"}

external_id   string  optional  

Example: 57c5e8a7-d2dd-455b-9e4f-beb449d0989a

customer_email   string  optional  

Customer email. Required if send_cheque is true. Must be a valid email address. This field is required when send_cheque is true. Example: example@gmail.com

send_cheque   boolean  optional  

Send cheque to customer email. Example: false

name   string  optional  

Example: Your invoice name

description   string  optional  

Example: Your invoice description

redirect_url   string  optional  

Example: https://www.runolfsson.com/similique-dignissimos-ut-animi-quisquam-voluptate-architecto-id

failure_redirect_url   string  optional  

Example: http://little.org/sapiente-omnis-repellendus-odit-laudantium-facilis.html

timestamp   string   

Current Unix timestamp in seconds. Must be a valid date in the format U. Example: 1681897688

requires authentication

Creates new invoice payment link with provided data and shows information about it.

Example request:
const url = new URL(
    "https://crp-backend.munzen.io/api/v1/merchant/invoices/payment-link"
);

const headers = {
    "X-Munzen-Key": "P1a64v6adVeZhDgf5bkc38E",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "X-Munzen-Signature": "{YOUR_REQUEST_SIGNATURE}",
};

let body = {
    "price_currency": "NEAR",
    "price_amount": 8854271,
    "currencies_for_pay": [
        "BNB"
    ],
    "link_expires_at": 1681897689,
    "external_data": "{\"param1\":\"value1\",\"param2\":\"value2\"}",
    "external_id": "b850baf0-6149-43a9-a467-17862c412097",
    "customer_external_id": "04b20ff6-02ab-4574-a43d-71c452ee8efd",
    "customer_email": "example@gmail.com",
    "send_cheque": false,
    "name": "Your invoice name",
    "description": "Your invoice description",
    "redirect_url": "http:\/\/ferry.biz\/excepturi-nihil-alias-illo-sint-modi-porro.html",
    "failure_redirect_url": "http:\/\/www.wiza.com\/",
    "timestamp": 1681897688
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "data": {
        "id": "0196626d-745c-72e4-b483-5784219188d8",
        "short_id": "eiVSJjNjHiJaPNhZMje7J",
        "number": 35857948,
        "price_currency": "UAH",
        "price_amount": "7844479.02",
        "pay_currency": "NEAR",
        "pay_amount": "73676917.0728",
        "exchange_rate": "9.39220015",
        "exchange_rate_expires_at": "2025-04-23T11:47:22.000000Z",
        "address": "t5J9DLXoMNhiG0fAo7SmuA1cdW13X7",
        "address_tag": "o2SDU",
        "address_uri": "near:t5J9DLXoMNhiG0fAo7SmuA1cdW13X7?amount=73676917.0728",
        "paid_amount": "0.597152502",
        "paid_amount_minus_fee": "-5606812.7920876",
        "transaction_hash": null,
        "transaction_risk_score": null,
        "transactions": [],
        "received_currency": "NEAR",
        "received_amount": "-5606812.7920876",
        "conversion_exchange_rate": null,
        "fees": {
            "processing_invoice": {
                "currency": "NEAR",
                "amount": "5606813.3892401"
            }
        },
        "fiat_amounts": [],
        "external_id": "119",
        "customer_external_id": "LHnJEQoRQlvcExtJ",
        "external_data": "{\"foo\":\"bar\"}",
        "name": "Mr. Douglas Baumbach",
        "description": "Catalina Waelchi",
        "redirect_url": "http://www.rosenbaum.net/",
        "failure_redirect_url": "http://hoppe.com/",
        "created_at": "2025-04-23T11:34:22.000000Z",
        "expires_at": "2025-04-23T12:01:22.000000Z",
        "status": "expired",
        "status_context": "underpaid",
        "status_reason": null,
        "can_be_paid_partially": true
    },
    "error": null
}
 

Example response (401, Unauthenticated request):


{
    "data": null,
    "error": {
        "code": "authentication_error",
        "message": "Unauthenticated."
    }
}
 

Example response (422, Validation error):


{
    "data": null,
    "error": {
        "code": "validation_error",
        "message": "The given data was invalid.",
        "payload": {
            "field": [
                "error_1",
                "error_2"
            ]
        }
    }
}
 

Example response (500, Internal server error):


{
    "data": null,
    "error": {
        "code": "internal_error",
        "message": "..."
    }
}
 

Cancel invoice

requires authentication

Cancels customer's invoice by id or 404 error.

Example request:
const url = new URL(
    "https://crp-backend.munzen.io/api/v1/merchant/invoices/48e81488-9fb7-4771-a599-8d99df10456c"
);

const headers = {
    "X-Munzen-Key": "bdg4D15f8vekVcP6ZE3haa6",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "X-Munzen-Signature": "{YOUR_REQUEST_SIGNATURE}",
};

let body = {
    "timestamp": 1681897688
};

fetch(url, {
    method: "DELETE",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "data": {},
    "error": null
}
 

Example response (401, Unauthenticated request):


{
    "data": null,
    "error": {
        "code": "authentication_error",
        "message": "Unauthenticated."
    }
}
 

Example response (404, Not found):


{
    "data": null,
    "error": {
        "code": "http_error",
        "message": "Not found."
    }
}
 

Example response (422, Validation error):


{
    "data": null,
    "error": {
        "code": "validation_error",
        "message": "The given data was invalid.",
        "payload": {
            "field": [
                "error_1",
                "error_2"
            ]
        }
    }
}
 

Example response (500, Internal server error):


{
    "data": null,
    "error": {
        "code": "internal_error",
        "message": "..."
    }
}
 

Request      

DELETE api/v1/merchant/invoices/{invoiceId}

Headers

X-Munzen-Key      

Example: bdg4D15f8vekVcP6ZE3haa6

Content-Type      

Example: application/json

Accept      

Example: application/json

X-Munzen-Signature      

Example: {YOUR_REQUEST_SIGNATURE}

URL Parameters

invoiceId   uuid   

The ID of the invoice. Example: 48e81488-9fb7-4771-a599-8d99df10456c

Body Parameters

timestamp   string   

Current Unix timestamp in seconds. Must be a valid date in the format U. Example: 1681897688

Payouts

Payouts for our merchants customers.

Request payout

requires authentication

Creates payout request.

Example request:
const url = new URL(
    "https://crp-backend.munzen.io/api/v1/merchant/payouts/request"
);

const headers = {
    "X-Munzen-Key": "8hagD461Vf5Zbd6EPvakc3e",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "X-Munzen-Signature": "{YOUR_REQUEST_SIGNATURE}",
};

let body = {
    "external_id": "123456",
    "customer_external_id": "123456",
    "currency": "USDTERC20",
    "amount": 266.5,
    "address": "0xb00e5760c0ab29ecdc51e39eea0e841a14415755",
    "address_tag": "123456",
    "timestamp": 1681897688,
    "source_currency": "EUR",
    "source_amount": 266.5
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "data": {
        "id": "0196626d-74c9-72b1-b2a8-acc1ee6829d8",
        "amount_requested": 517.48313,
        "amount_to_send": 509.98462,
        "fee_amount": 7.49851,
        "status": "failed",
        "status_reason": "tx_rejection",
        "currency": "USDTTRC20",
        "source_currency": "EUR",
        "source_amount": 752.95017,
        "source_exchange_rate": 531.96423
    },
    "error": null
}
 

Example response (401, Unauthenticated request):


{
    "data": null,
    "error": {
        "code": "authentication_error",
        "message": "Unauthenticated."
    }
}
 

Example response (422, Validation error):


{
    "data": null,
    "error": {
        "code": "validation_error",
        "message": "The given data was invalid.",
        "payload": {
            "field": [
                "error_1",
                "error_2"
            ]
        }
    }
}
 

Example response (500, Internal server error):


{
    "data": null,
    "error": {
        "code": "internal_error",
        "message": "..."
    }
}
 

Request      

POST api/v1/merchant/payouts/request

Headers

X-Munzen-Key      

Example: 8hagD461Vf5Zbd6EPvakc3e

Content-Type      

Example: application/json

Accept      

Example: application/json

X-Munzen-Signature      

Example: {YOUR_REQUEST_SIGNATURE}

Body Parameters

external_id   string  optional  

The external ID of the payout request. Must be unique for each project. Example: 123456

customer_external_id   string   

The external ID of your customer. Must be unique for each project. Example: 123456

currency   string   

Example: USDTERC20

Must be one of:
  • BTC
  • BCH
  • LTC
  • ETH
  • MATIC
  • TRX
  • XLM
  • SOL
  • BNB
  • ETHBASE
  • NEAR
  • AURORA
  • USDTERC20
  • USDTTRC20
  • USDTMATIC
  • USDTBEP20
  • USDTNEAR
  • USDTENEAR
  • USDTAURORA
  • USDCERC20
  • USDCTRC20
  • USDCMATIC
  • USDCNEAR
  • USDCENEAR
  • USDCBEP20
  • USDCAURORA
  • USDCXLM
  • USDCBASE
  • AURORANEAR
  • ETHAURORA
  • EUR
  • USD
  • UAH
  • KZT
amount   number  optional  

This field is required when source_currency is not present. Example: 266.5

address   string   

Example: 0xb00e5760c0ab29ecdc51e39eea0e841a14415755

address_tag   string  optional  

Example: 123456

timestamp   string   

Current Unix timestamp in seconds. Must be a valid date in the format U. Example: 1681897688

source_currency   string  optional  

This field is required when source_amount is present. Example: EUR

Must be one of:
  • BTC
  • BCH
  • LTC
  • ETH
  • MATIC
  • TRX
  • XLM
  • SOL
  • BNB
  • ETHBASE
  • NEAR
  • AURORA
  • USDTERC20
  • USDTTRC20
  • USDTMATIC
  • USDTBEP20
  • USDTNEAR
  • USDTENEAR
  • USDTAURORA
  • USDCERC20
  • USDCTRC20
  • USDCMATIC
  • USDCNEAR
  • USDCENEAR
  • USDCBEP20
  • USDCAURORA
  • USDCXLM
  • USDCBASE
  • AURORANEAR
  • ETHAURORA
  • EUR
  • USD
  • UAH
  • KZT
source_amount   number  optional  

This field is required when source_currency is present. Example: 266.5

Get payout by id

requires authentication

Gives payout by provided id.

Example request:
const url = new URL(
    "https://crp-backend.munzen.io/api/v1/merchant/payouts/48e81488-9fb7-4771-a599-8d99df10456c"
);

const params = {
    "timestamp": "1681897688",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "X-Munzen-Key": "V16hea4EDbk3cf6av8ZdP5g",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "X-Munzen-Signature": "{YOUR_REQUEST_SIGNATURE}",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "data": {
        "id": "0196626d-750d-7288-93d6-b98eeec25dd0",
        "currency": "XLM",
        "amount_requested": 138.91674,
        "amount_to_send": 138.91674,
        "amount_to_charge": 145.83435,
        "fee_amount": 6.91761,
        "status": "processing",
        "status_reason": "invalid_amount",
        "created_at": "2025-04-23T11:34:22.000000Z",
        "fee_included": false,
        "source_currency": "KZT",
        "source_amount": 412.38545,
        "source_exchange_rate": 549.00867
    },
    "error": null
}
 

Example response (401, Unauthenticated request):


{
    "data": null,
    "error": {
        "code": "authentication_error",
        "message": "Unauthenticated."
    }
}
 

Example response (422, Validation error):


{
    "data": null,
    "error": {
        "code": "validation_error",
        "message": "The given data was invalid.",
        "payload": {
            "field": [
                "error_1",
                "error_2"
            ]
        }
    }
}
 

Example response (500, Internal server error):


{
    "data": null,
    "error": {
        "code": "internal_error",
        "message": "..."
    }
}
 

Request      

GET api/v1/merchant/payouts/{payoutId}

Headers

X-Munzen-Key      

Example: V16hea4EDbk3cf6av8ZdP5g

Content-Type      

Example: application/json

Accept      

Example: application/json

X-Munzen-Signature      

Example: {YOUR_REQUEST_SIGNATURE}

URL Parameters

payoutId   string   

The ID of payout Example: 48e81488-9fb7-4771-a599-8d99df10456c

Query Parameters

timestamp   string   

Current Unix timestamp in seconds. Must be a valid date in the format U. Example: 1681897688

Get payout by external id

requires authentication

Gives payout by provided external id.

Example request:
const url = new URL(
    "https://crp-backend.munzen.io/api/v1/merchant/payouts/by-external-id/48e814889fb74771a5998d99d"
);

const params = {
    "timestamp": "1681897688",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "X-Munzen-Key": "5k4Ebad1c66e8gPZ3aDfhvV",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "X-Munzen-Signature": "{YOUR_REQUEST_SIGNATURE}",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "data": {
        "id": "0196626d-7559-701e-bba5-f821d74c8c7f",
        "currency": "SOL",
        "amount_requested": 734.57624,
        "amount_to_send": 734.57624,
        "amount_to_charge": 742.14654,
        "fee_amount": 7.5703,
        "status": "pending",
        "status_reason": "tx_rejection",
        "created_at": "2025-04-23T11:34:22.000000Z",
        "fee_included": false,
        "source_currency": "KZT",
        "source_amount": 325.14579,
        "source_exchange_rate": 499.18983
    },
    "error": null
}
 

Example response (401, Unauthenticated request):


{
    "data": null,
    "error": {
        "code": "authentication_error",
        "message": "Unauthenticated."
    }
}
 

Example response (422, Validation error):


{
    "data": null,
    "error": {
        "code": "validation_error",
        "message": "The given data was invalid.",
        "payload": {
            "field": [
                "error_1",
                "error_2"
            ]
        }
    }
}
 

Example response (500, Internal server error):


{
    "data": null,
    "error": {
        "code": "internal_error",
        "message": "..."
    }
}
 

Request      

GET api/v1/merchant/payouts/by-external-id/{externalId}

Headers

X-Munzen-Key      

Example: 5k4Ebad1c66e8gPZ3aDfhvV

Content-Type      

Example: application/json

Accept      

Example: application/json

X-Munzen-Signature      

Example: {YOUR_REQUEST_SIGNATURE}

URL Parameters

externalId   string   

The external ID of payout Example: 48e814889fb74771a5998d99d

Query Parameters

timestamp   string   

Current Unix timestamp in seconds. Must be a valid date in the format U. Example: 1681897688

Channels

Actions with channels.

Create channel

requires authentication

Creates new channel with provided data and shows information about it.

Example request:
const url = new URL(
    "https://crp-backend.munzen.io/api/v1/merchant/channels"
);

const headers = {
    "X-Munzen-Key": "vkZdh8D643Va6P5agbEecf1",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "X-Munzen-Signature": "{YOUR_REQUEST_SIGNATURE}",
};

let body = {
    "currency": "USDTTRC20",
    "customer_external_id": "1",
    "external_id": "a4713b7f-d45a-46ef-a55f-847d6ce0e4e2",
    "external_data": "{\"param1\":\"value1\",\"param2\":\"value2\"}",
    "timestamp": 1681897688
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "data": {
        "id": "0196626d-7583-70a6-9ac2-f0af1731736d",
        "customer_external_id": "N7CVFVeUUddb9aMm",
        "external_id": "RfKgUvkXHX",
        "external_data": "{\"foo\":\"bar\"}",
        "currency": "USDCBEP20",
        "address": "RTe7Ik58kyZcv6aLhudbLHbfD4AV25",
        "address_tag": "gSMiX",
        "address_uri": "ethereum:RTe7Ik58kyZcv6aLhudbLHbfD4AV25",
        "created_at": "2025-04-23T11:34:22.000000Z"
    },
    "error": null
}
 

Example response (401, Unauthenticated request):


{
    "data": null,
    "error": {
        "code": "authentication_error",
        "message": "Unauthenticated."
    }
}
 

Example response (401, Not found):


{
    "data": null,
    "error": {
        "code": "http_error",
        "message": "Not found."
    }
}
 

Example response (422, Validation error):


{
    "data": null,
    "error": {
        "code": "validation_error",
        "message": "The given data was invalid.",
        "payload": {
            "field": [
                "error_1",
                "error_2"
            ]
        }
    }
}
 

Example response (500, Internal server error):


{
    "data": null,
    "error": {
        "code": "internal_error",
        "message": "..."
    }
}
 

Request      

POST api/v1/merchant/channels

Headers

X-Munzen-Key      

Example: vkZdh8D643Va6P5agbEecf1

Content-Type      

Example: application/json

Accept      

Example: application/json

X-Munzen-Signature      

Example: {YOUR_REQUEST_SIGNATURE}

Body Parameters

currency   string   

Example: USDTTRC20

Must be one of:
  • BTC
  • BCH
  • LTC
  • ETH
  • MATIC
  • TRX
  • XLM
  • SOL
  • BNB
  • ETHBASE
  • NEAR
  • AURORA
  • USDTERC20
  • USDTTRC20
  • USDTMATIC
  • USDTBEP20
  • USDTNEAR
  • USDTENEAR
  • USDTAURORA
  • USDCERC20
  • USDCTRC20
  • USDCMATIC
  • USDCNEAR
  • USDCENEAR
  • USDCBEP20
  • USDCAURORA
  • USDCXLM
  • USDCBASE
  • AURORANEAR
  • ETHAURORA
  • EUR
  • USD
  • UAH
  • KZT
customer_external_id   string   

Example: 1

external_id   string  optional  

Example: a4713b7f-d45a-46ef-a55f-847d6ce0e4e2

external_data   string  optional  

Must not be greater than 1024 characters. Example: {"param1":"value1","param2":"value2"}

timestamp   string   

Current Unix timestamp in seconds. Must be a valid date in the format U. Example: 1681897688

List of merchant project channels for customer

requires authentication

Returns list of merchant project channels for provided customer external ID.

Example request:
const url = new URL(
    "https://crp-backend.munzen.io/api/v1/merchant/channels"
);

const params = {
    "customer_external_id": "1",
    "timestamp": "1681897688",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "X-Munzen-Key": "V3Z6k18vchf4ba6PdEa5gDe",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "X-Munzen-Signature": "{YOUR_REQUEST_SIGNATURE}",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "data": [
        {
            "id": "0196626d-75a4-71bf-9cd9-a5167e3536d9",
            "customer_external_id": "jr5JvF0qHCr6Jny1",
            "external_id": "HrDcpIDpfR",
            "external_data": "{\"foo\":\"bar\"}",
            "currency": "USDCBASE",
            "address": "RX7S6BQ9mLhbvBZpwYPZpD9Ttf4Mmn",
            "address_tag": "qlUSI",
            "address_uri": "ethereum:RX7S6BQ9mLhbvBZpwYPZpD9Ttf4Mmn",
            "created_at": "2025-04-23T11:34:22.000000Z"
        }
    ],
    "error": null
}
 

Example response (401, Unauthenticated request):


{
    "data": null,
    "error": {
        "code": "authentication_error",
        "message": "Unauthenticated."
    }
}
 

Example response (404, Not found):


{
    "data": null,
    "error": {
        "code": "http_error",
        "message": "Not found."
    }
}
 

Request      

GET api/v1/merchant/channels

Headers

X-Munzen-Key      

Example: V3Z6k18vchf4ba6PdEa5gDe

Content-Type      

Example: application/json

Accept      

Example: application/json

X-Munzen-Signature      

Example: {YOUR_REQUEST_SIGNATURE}

Query Parameters

customer_external_id   string   

Example: 1

timestamp   string   

Current Unix timestamp in seconds. Must be a valid date in the format U. Example: 1681897688

List of payments in merchant project channel

requires authentication

Returns list of payments in merchant project channel with pagination.

Example request:
const url = new URL(
    "https://crp-backend.munzen.io/api/v1/merchant/channels/DDABedDd-fafb-CfAd-EaCf-FAEeddbaAadb/payments"
);

const headers = {
    "X-Munzen-Key": "haZP6kVgeED4a1v3fc658bd",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "X-Munzen-Signature": "{YOUR_REQUEST_SIGNATURE}",
};

let body = {
    "cursor": "sikAiLsryrD2YGPZ",
    "per_page": 10,
    "timestamp": 1681897688
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "data": {
        "list": [
            {
                "id": "0196626d-75c7-720e-9cdc-71e8efa4cc7f",
                "channel_id": "0196626d-75c6-73f1-bd58-2d844b810824",
                "customer_external_id": "tcq2XxwcYxHCj46j",
                "external_id": "4NUszIR0Jx",
                "external_data": "{\"foo\":\"bar\"}",
                "currency": "BTC",
                "amount": "430.44439",
                "amount_minus_fee": "430.14307893",
                "received_currency": "BTC",
                "received_amount": "430.14307893",
                "conversion_exchange_rate": null,
                "fees": {
                    "processing_channel": {
                        "currency": "BTC",
                        "amount": "0.30131107"
                    }
                },
                "fiat_amounts": [],
                "address": "MQyT8CyCs0PADeS5tMlAOtCSIIkMYL",
                "address_tag": "H1XsQ",
                "address_uri": "bitcoin:MQyT8CyCs0PADeS5tMlAOtCSIIkMYL",
                "transaction_hash": null,
                "transaction_risk_score": null,
                "created_at": "2025-04-23T11:34:22.000000Z",
                "status": "paid",
                "status_reason": null
            }
        ],
        "metadata": {
            "total": 384818,
            "per_page": 320656,
            "next_cursor": "wusrKIsejaz0erg8",
            "previous_cursor": "PiwtjNhNnd65lb8w"
        }
    },
    "error": null
}
 

Example response (401, Unauthenticated request):


{
    "data": null,
    "error": {
        "code": "authentication_error",
        "message": "Unauthenticated."
    }
}
 

Example response (404, Not found):


{
    "data": null,
    "error": {
        "code": "http_error",
        "message": "Not found."
    }
}
 

Request      

GET api/v1/merchant/channels/{channelId}/payments

Headers

X-Munzen-Key      

Example: haZP6kVgeED4a1v3fc658bd

Content-Type      

Example: application/json

Accept      

Example: application/json

X-Munzen-Signature      

Example: {YOUR_REQUEST_SIGNATURE}

URL Parameters

channelId   string   

Example: DDABedDd-fafb-CfAd-EaCf-FAEeddbaAadb

Body Parameters

cursor   string  optional  

Example: sikAiLsryrD2YGPZ

per_page   integer  optional  

Must be at least 10. Must not be greater than 500. Example: 10

timestamp   string   

Current Unix timestamp in seconds. Must be a valid date in the format U. Example: 1681897688

Get channel payment by id

requires authentication

Returns information about channel payments in merchant project channel with pagination.

Example request:
const url = new URL(
    "https://crp-backend.munzen.io/api/v1/merchant/channels/payments/deCdFdda-fbcf-dcfA-dBCa-AEdBEeabaDBC"
);

const params = {
    "timestamp": "1681897688",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "X-Munzen-Key": "EfecbkZvh6adD14g68VPa53",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "X-Munzen-Signature": "{YOUR_REQUEST_SIGNATURE}",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "data": {
        "id": "0196626d-75f1-7100-b103-598789edcb91",
        "channel_id": "0196626d-75f0-706a-a440-970bc9a58d57",
        "customer_external_id": "JOB9gqJ8Ed74DTub",
        "external_id": "tQKNCYg8uf",
        "external_data": "{\"foo\":\"bar\"}",
        "currency": "XLM",
        "amount": "425.12407",
        "amount_minus_fee": "424.8689956",
        "received_currency": "XLM",
        "received_amount": "424.8689956",
        "conversion_exchange_rate": null,
        "fees": {
            "processing_channel": {
                "currency": "XLM",
                "amount": "0.2550744"
            }
        },
        "fiat_amounts": [],
        "address": "Mu3FgYIbITKuXMtd8WLCYC5YhjRoPd",
        "address_tag": "XgjFq",
        "address_uri": "Mu3FgYIbITKuXMtd8WLCYC5YhjRoPd",
        "transaction_hash": null,
        "transaction_risk_score": null,
        "created_at": "2025-04-23T11:34:22.000000Z",
        "status": "paid",
        "status_reason": null
    },
    "error": null
}
 

Example response (401, Unauthenticated request):


{
    "data": null,
    "error": {
        "code": "authentication_error",
        "message": "Unauthenticated."
    }
}
 

Example response (404, Not found):


{
    "data": null,
    "error": {
        "code": "http_error",
        "message": "Not found."
    }
}
 

Request      

GET api/v1/merchant/channels/payments/{channelPaymentId}

Headers

X-Munzen-Key      

Example: EfecbkZvh6adD14g68VPa53

Content-Type      

Example: application/json

Accept      

Example: application/json

X-Munzen-Signature      

Example: {YOUR_REQUEST_SIGNATURE}

URL Parameters

channelPaymentId   string   

Example: deCdFdda-fbcf-dcfA-dBCa-AEdBEeabaDBC

Query Parameters

timestamp   string   

Current Unix timestamp in seconds. Must be a valid date in the format U. Example: 1681897688

Exchange rates

Actions with exchange rates.

Get exchange rate

requires authentication

Returns exchange rate found with provided params otherwise returns not found error

Example request:
const url = new URL(
    "https://crp-backend.munzen.io/api/v1/merchant/exchange-rate"
);

const params = {
    "base_currency": "UAH",
    "quote_currency": "USDTERC20",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "X-Munzen-Key": "hk8bv5fD6ge4ZEd6a3acPV1",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "X-Munzen-Signature": "{YOUR_REQUEST_SIGNATURE}",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "data": {
        "base_currency": "EUR",
        "quote_currency": "NEAR",
        "exchange_rate": 7.66002565,
        "decimals": 26,
        "round_off": 10
    },
    "error": null
}
 

Example response (401, Unauthenticated request):


{
    "data": null,
    "error": {
        "code": "authentication_error",
        "message": "Unauthenticated."
    }
}
 

Example response (404, Not found):


{
    "data": null,
    "error": {
        "code": "http_error",
        "message": "Not found."
    }
}
 

Example response (422, Validation error):


{
    "data": null,
    "error": {
        "code": "validation_error",
        "message": "The given data was invalid.",
        "payload": {
            "field": [
                "error_1",
                "error_2"
            ]
        }
    }
}
 

Example response (500, Internal server error):


{
    "data": null,
    "error": {
        "code": "internal_error",
        "message": "..."
    }
}
 

Request      

GET api/v1/merchant/exchange-rate

Headers

X-Munzen-Key      

Example: hk8bv5fD6ge4ZEd6a3acPV1

Content-Type      

Example: application/json

Accept      

Example: application/json

X-Munzen-Signature      

Example: {YOUR_REQUEST_SIGNATURE}

Query Parameters

base_currency   string   

Base currency ticker with network. Example: UAH

quote_currency   string   

Quote currency ticker with network. Example: USDTERC20

Customers

Actions with customers.

Get limits by customer external id

requires authentication

Shows information about customer's limits.

Example request:
const url = new URL(
    "https://crp-backend.munzen.io/api/v1/merchant/customers/by-external-id/ipsum/limit"
);

const headers = {
    "X-Munzen-Key": "d3k4bVv81afea5E6ZhcgPD6",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "X-Munzen-Signature": "{YOUR_REQUEST_SIGNATURE}",
};

let body = {
    "timestamp": 1681897688
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "data": {
        "limit": 909509,
        "remaining_amount": 3687037.420754
    },
    "error": null
}
 

Example response (401, Unauthenticated request):


{
    "data": null,
    "error": {
        "code": "authentication_error",
        "message": "Unauthenticated."
    }
}
 

Example response (422, Validation error):


{
    "data": null,
    "error": {
        "code": "validation_error",
        "message": "The given data was invalid.",
        "payload": {
            "field": [
                "error_1",
                "error_2"
            ]
        }
    }
}
 

Example response (500, Internal server error):


{
    "data": null,
    "error": {
        "code": "internal_error",
        "message": "..."
    }
}
 

Request      

GET api/v1/merchant/customers/by-external-id/{externalId}/limit

Headers

X-Munzen-Key      

Example: d3k4bVv81afea5E6ZhcgPD6

Content-Type      

Example: application/json

Accept      

Example: application/json

X-Munzen-Signature      

Example: {YOUR_REQUEST_SIGNATURE}

URL Parameters

externalId   string   

Example: ipsum

Body Parameters

timestamp   string   

Current Unix timestamp in seconds. Must be a valid date in the format U. Example: 1681897688

Upload customer's documents

requires authentication

Please note that this endpoint uses multipart/form-data

Example request:
const url = new URL(
    "https://crp-backend.munzen.io/api/v1/merchant/customers/documents"
);

const headers = {
    "X-Munzen-Key": "dVa18a3Z4cPvk5gbe66EDfh",
    "Content-Type": "multipart/form-data",
    "Accept": "application/json",
    "X-Munzen-Signature": "{YOUR_REQUEST_SIGNATURE}",
};

const body = new FormData();
body.append('timestamp', '1681897688');
body.append('customer_external_id', 'dolor');
body.append('documents[]', 'natus');

fetch(url, {
    method: "POST",
    headers,
    body,
}).then(response => response.json());

Example response (200):


{
    "data": [],
    "error": null
}
 

Example response (401, Unauthenticated request):


{
    "data": null,
    "error": {
        "code": "authentication_error",
        "message": "Unauthenticated."
    }
}
 

Example response (422, Validation error):


{
    "data": null,
    "error": {
        "code": "validation_error",
        "message": "The given data was invalid.",
        "payload": {
            "field": [
                "error_1",
                "error_2"
            ]
        }
    }
}
 

Example response (500, Internal server error):


{
    "data": null,
    "error": {
        "code": "internal_error",
        "message": "..."
    }
}
 

Request      

POST api/v1/merchant/customers/documents

Headers

X-Munzen-Key      

Example: dVa18a3Z4cPvk5gbe66EDfh

Content-Type      

Example: multipart/form-data

Accept      

Example: application/json

X-Munzen-Signature      

Example: {YOUR_REQUEST_SIGNATURE}

Body Parameters

timestamp   string   

Current Unix timestamp in seconds. Must be a valid date in the format U. Example: 1681897688

customer_external_id   string   

Example: dolor

documents   string[]