Skip to main content

Currencies

Currencies​

Two read-only endpoints return the chains and tokens the Morph Payments API currently supports:

  • Receiving currencies — the chains and tokens you (the merchant) can use as the receiving target when creating a Payment Link or Invoice.
  • Paying currencies — the chains and tokens an end customer can choose to pay with on the Hosted Checkout page.

The two catalogs are configured independently: a chain or token may appear in one list, both, or neither. Both endpoints return the full list in a single call — there is no pagination and no chain filter.

All requests must be authenticated with your API Key. The gateway resolves your merchant identity from the API Key, so you do not send merchant_id in the query — it is ignored if present.

Base URL​

https://pay-openapi.morph.network/pro/merchant/payin/v1

Endpoint paths in this page are relative to that base URL.

Response envelope​

Every response is wrapped in a common envelope:

{
"error_code": 0,
"msg": "success",
"data": {},
"trace": "..."
}
note

Business success or failure is determined by error_code (error_code == 0 means success), not by the HTTP status code alone. See the Error Codes reference for the full list.

Receiving currencies​

GET /currencies/receiving

No query parameters. Returns the full set of chains and tokens available for receiving_network / receiving_token_symbol / receiving_token_address when creating a Payment Link or Invoice. This is the dynamic source for the values listed in Supported Tokens & Networks. Do not use this list to fill support_networks / support_tokens — those fields are the payer allowlist and come from Paying currencies.

Success response​

{
"error_code": 0,
"msg": "success",
"data": {
"list": [
{
"chain_code": "morph",
"chain_name": "Morph",
"chain_id": 2818,
"tokens": [
{ "chain_code": "morph", "token_code": "usdt", "token_name": "USDT", "token_contract": "0xe7cd86e13ac4309349f30b3435a9d337750fc82d", "token_decimals": 6 },
{ "chain_code": "morph", "token_code": "usdc", "token_name": "USDC", "token_contract": "0xcfb1186f4e93d60e60a8bdd997427d1f33bc372b", "token_decimals": 6 }
]
},
{
"chain_code": "eth",
"chain_name": "Ethereum",
"chain_id": 1,
"tokens": [
{ "chain_code": "eth", "token_code": "usdt", "token_name": "USDT", "token_contract": "0xdac17f958d2ee523a2206206994597c13d831ec7", "token_decimals": 6 }
]
}
]
},
"trace": "..."
}

Response fields​

FieldTypeDescription
list[].chain_codestringChain identifier (lowercase). Maps to receiving_network.
list[].chain_namestringChain display name.
list[].chain_idint64EVM chain id.
list[].tokens[].chain_codestringChain identifier the token belongs to (lowercase); matches the enclosing list[].chain_code.
list[].tokens[].token_codestringToken identifier (lowercase). Maps to receiving_token_symbol (case-insensitive).
list[].tokens[].token_namestringToken display name, e.g. USDT.
list[].tokens[].token_contractstringContract address (lowercase). Maps to receiving_token_address.
list[].tokens[].token_decimalsint32Token decimals.

Paying currencies​

GET /currencies/paying

No query parameters. Returns the chains and tokens an end customer can select to pay with on the Hosted Checkout page. Use list[].chain_code and each token's chain_code / token_name / token_contract as support_networks / support_tokens when creating a Payment Link or Invoice. If you omit both allowlist fields, create expands them to this full catalog.

This catalog is independent of your own receiving catalog above.

Success response​

The response shape is identical to Receiving currencies (list[].chain_code / chain_name / chain_id / tokens[], with chain_code inside each tokens[] entry). The meaning is "available for the payer to pay with" rather than "available for the merchant to receive".

Errors​

error_codeMeaningDescription
0Success—
90001UnauthorizedAuthentication failed or merchant identity is missing.
80000 – 80099System errorThe service is temporarily unavailable or hit an internal error; treat as a retryable system error.

Both endpoints are read-only queries and do not return parameter-validation errors. See the Error Codes reference for details.