Onboarding Your Users

Sign-up Flows

Before an end-user can trade through your platform, they need a Coinify trader account. As a partner, you create this account on their behalf via the sign-up API endpoint.

There are two sign-up flows to choose from, differing in how email verification is handled.


Frictionless Sign-up

The frictionless flow is recommended for partners who already have an established user base and want a seamless, invisible onboarding experience. Rather than asking the end-user to verify their email with Coinify, you cryptographically sign a token confirming you have already validated the email on your side. Coinify trusts this signature and creates the account immediately — no password, no verification code, no friction for the user.

Important:

You must ensure that the address country (and state where applicable) are provided from the end-user's direct input, in case you are not already collecting this data point from the user on your end.

Choose this when:

  • Your users already have verified accounts on your platform
  • You want the smoothest possible UX with no interruption to the trading flow
  • You are set up as a trusted Coinify partner (required for this flow)

For the full step-by-step setup, see Frictionless Sign-up Flow →.


Manual Sign-up

In the manual flow, the end-user provides their email and creates a password. After the sign-up request is made, Coinify sends a 6-digit verification code to the user's email address, which they must then submit via the Verify Email → endpoint to activate their account.

Choose this when:

  • You are in early integration stages and not yet set up for the frictionless flow
  • Your use case requires end-users to have their own Coinify credentials (e.g. for direct access to the Trade Widget login)

For the endpoint spec, see Manual Email Verification →.


What both flows have in common

Regardless of which flow you use, every sign-up request to POST /signup/trader requires:

  • email — from direct user input
  • partnerId — your Coinify Partner ID
  • accountTypeindividual (default) or corporate
  • profile.address.country — ISO 3166-1 alpha-2 country code, from direct user input
  • profile.address.state — required if country is US, ISO 3166-2 format

Country and state must always come from the end-user's own input — never pre-filled or inferred on their behalf.

A successful sign-up returns a trader object containing the new account's id and email. If generateOfflineToken: true is included in the request, an offlineToken is also returned — this is key to the Frictionless Sign-in → flow and should be stored securely on your side.


Next steps