merchantId for you immediately so you can wire it into your signer and start testing. The reserved ID stays inert until a Blink operator manually reviews and approves your submission, at which point it becomes a fully active merchant in the registry.
You can begin wiring
merchantId into your signer right away. Signed payloads will fail verification with MERCHANT_NOT_REGISTERED until approval lands.How to register
Two paths, same outcome — pick whichever fits your team.Self-serve API
Submit a JSON application and get a reserved
merchantId back in seconds. Best when you want to start wiring code immediately.Talk to the team
Book a meeting with the Blink team to walk through your use case and get set up. Best when you have integration questions or want a tailored kickoff.
Submit your application
POST https://api.blink.cash/v1/merchants/applications
Registering for the testnet sandbox? Submit to
https://api-sandbox.blink.cash/v1/merchants/applications instead — sandbox merchants are separate from production and are approved automatically.202 Accepted):
Request fields
| Field | Type | Required | Validation |
|---|---|---|---|
email | string | Yes | RFC 5322 email, max 255 chars. Used by Blink to follow up. |
domain | string | Yes | Hostname (for example, coolapp.com), max 255 chars. Defaults to the merchant’s display name on approval. |
publicKey | string | Yes | PEM-encoded ECDSA P-256 public key from Key Generation. Max 4096 chars. |
telegram | string | No | Optional Telegram handle (@user or user), 3–64 alphanumeric or underscore chars. |
description | string | Yes | 20–1000 chars describing your product and how you intend to use Blink. |
Response codes
| Code | Meaning |
|---|---|
202 | Application received. Operator review pending. |
400 | Validation error in the request body (bad email, malformed PEM, etc.). |
409 MERCHANT_APPLICATION_DUPLICATE | A pending application with the same public key already exists. Wait for review or generate a new key pair before re-submitting. |
429 RATE_LIMITED | Too many submissions from your IP. Try again after the Retry-After window. |
What happens next
What Blink registers
| Field | Value |
|---|---|
merchantId | Your reserved UUID (returned in the 202 response) |
displayName | Defaults to your domain, editable on approval |
algorithm | ECDSA_P256_SHA256 |
status | PENDING until reviewed, then ACTIVE |
publicKey | The PEM you submitted |
GET /v1/merchants/{id}/public-key).
Additional domains
Yourdomain above is whitelisted automatically on approval. If you serve the same app from other origins (an apex plus www, a staging or preview host, a partner domain), whitelist each one — up to 10 — via Whitelist Additional Domains, or the deposit flow won’t authenticate on those origins.
Key rotation
Public key rotation after approval is handled by contacting Blink directly.Generate a new key pair
Follow the same process in Key Generation.
Send the new public key to Blink
Email your updated PEM to s@blink.cash or book a meeting with the Blink team.