> ## Documentation Index
> Fetch the complete documentation index at: https://docs.zeam.money/llms.txt
> Use this file to discover all available pages before exploring further.

# Register your application

> Create an application in the Zeam business portal and receive your sandbox credentials.

An **application** is how your systems authenticate with Zeam. Registering one
returns a set of [application credentials](/authentication/api-keys): a client
ID, a client secret, and an API key. New applications are issued
[sandbox](/access/sandbox) credentials by default.

## Before you start

* Access to the Zeam business portal for your company.
* Permission to manage applications for the business. If you do not have it, ask
  an administrator to register the application and share the credentials with
  you through a secure channel.

## Register an application

<Steps>
  <Step title="Open Application Registration">
    Sign in to the business portal, open the **Settings** menu, and choose
    **Application Registration**.

    <Frame caption="Settings menu with Application Registration selected.">
      <img src="https://mintcdn.com/paytectechnologies/NqhoOkOWg2Ny5E8p/images/application-registration/settings-menu.png?fit=max&auto=format&n=NqhoOkOWg2Ny5E8p&q=85&s=ebd187cafa2956dd7024cc9112514d8e" alt="The business portal Settings dropdown menu with the Application Registration item highlighted." width="1192" height="616" data-path="images/application-registration/settings-menu.png" />
    </Frame>
  </Step>

  <Step title="Review your applications">
    The Application Registration page lists your existing applications with their
    **Client ID**, **Status**, **Secret expires**, and **Created** date. Select
    **Register application** to add a new one.

    <Frame caption="The Application Registration page listing a registered application.">
      <img src="https://mintcdn.com/paytectechnologies/NqhoOkOWg2Ny5E8p/images/application-registration/applications-list.png?fit=max&auto=format&n=NqhoOkOWg2Ny5E8p&q=85&s=305688aaa1b4c49e584c73dec6add264" alt="The Application Registration page showing one application named Zeam Trader with a truncated client ID, an Active status, a secret expiry date, and a created date." width="1600" height="448" data-path="images/application-registration/applications-list.png" />
    </Frame>
  </Step>

  <Step title="Name the application">
    Enter an **Application name** that you will recognise later, then select
    **Register**. The name is the only field you provide.

    <Frame caption="The Register application dialog before entering a name.">
      <img src="https://mintcdn.com/paytectechnologies/NqhoOkOWg2Ny5E8p/images/application-registration/register-empty.png?fit=max&auto=format&n=NqhoOkOWg2Ny5E8p&q=85&s=bd1146137e3575d847b0a914a75caa8c" alt="The Register application dialog with an empty Application name field showing the placeholder e.g. Settlement Integration." width="1066" height="748" data-path="images/application-registration/register-empty.png" />
    </Frame>

    <Frame caption="The Register application dialog with a name entered.">
      <img src="https://mintcdn.com/paytectechnologies/NqhoOkOWg2Ny5E8p/images/application-registration/register-filled.png?fit=max&auto=format&n=NqhoOkOWg2Ny5E8p&q=85&s=bf65723d47e002307b64593f3fa31350" alt="The Register application dialog with the Application name field filled in as Zeam Trader." width="962" height="702" data-path="images/application-registration/register-filled.png" />
    </Frame>

    <Frame caption="The dialog while the application is being registered.">
      <img src="https://mintcdn.com/paytectechnologies/NqhoOkOWg2Ny5E8p/images/application-registration/register-submitting.png?fit=max&auto=format&n=NqhoOkOWg2Ny5E8p&q=85&s=aeaa48526c4e6143a196d1a7fab9278d" alt="The Register application dialog showing a Registering progress state on the Register button." width="952" height="696" data-path="images/application-registration/register-submitting.png" />
    </Frame>
  </Step>

  <Step title="Copy your credentials">
    Registration returns the application's credentials once. Copy all three and
    store them in a secure secrets manager before you close the dialog.

    <Frame caption="The one-time application credentials dialog. The client ID is redacted here.">
      <img src="https://mintcdn.com/paytectechnologies/NqhoOkOWg2Ny5E8p/images/application-registration/credentials.png?fit=max&auto=format&n=NqhoOkOWg2Ny5E8p&q=85&s=065a50d7334403621023e084bfb51598" alt="The Application credentials dialog for Zeam Trader, showing a one-time warning, the application name, a redacted client ID, a masked client secret, and a masked API key, with a confirmation checkbox and a Done button." width="1460" height="1436" data-path="images/application-registration/credentials.png" />
    </Frame>

    * **Client ID** (`clientId`): public identifier for the application.
    * **Client secret**: used with the client ID to issue an access token.
    * **API key** (`apiKey`): sent as the `x-zeam-auth` header on every request.

    Select **I have copied and securely stored these credentials**, then
    **Done**.
  </Step>
</Steps>

<Warning>
  The client secret and API key are shown **once**, at registration, and cannot
  be retrieved again. If you lose them, register a new application.
</Warning>

## Protect your credentials

* Never commit credentials to source control.
* Never expose the client secret or API key in browser-side code.
* Store credentials in a secure secrets manager, not in plain files.
* Do not share credentials through email, chat, screenshots, or support tickets.
* Keep sandbox and production credentials separate. See
  [Moving to production](/access/production-promotion).

## Use the credentials to authenticate

The three credentials map to the request as follows:

* The **client ID** and **client secret** are exchanged for a bearer token at
  [`POST /v1/auth/token`](/authentication/tokens). The token response includes
  your `associationId`.
* The **API key** is sent as the `x-zeam-auth` header on every protected
  request.
* The `associationId` from the token response is sent as the `x-association-id`
  header on every protected request.

See [Authentication](/authentication/overview) for the full model, or
[Your first transaction](/guides/your-first-transaction) for a worked example.

## Environment and status

* **Environment**: new applications start in the [sandbox](/access/sandbox).
* **Status**: an application shows as **Active** once registered.
* **Secret expiry**: the **Secret expires** column shows when the current client
  secret expires.

## Prepare for production

When your integration works end to end in the sandbox, follow
[Moving to production](/access/production-promotion) to request production
access and credentials.
