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

# Create referral invite

> Issue a sign-up link for one of your customers.

The link opens the Nxos sign-up with the customer's email filled in and
locked: the form does not let it change, and the server refuses a sign-up
with any other email, Google sign-up included. The customer still confirms
the address through Nxos's confirmation email. Once they sign up, their
organization is attributed to you as its referrer.

Calling again for the same email while the invite is pending returns the
same link with a renewed expiry, so you can request it each time you send
the customer to Nxos. Referrals are switched on for your organization on
the first call if they are not already.



## OpenAPI

````yaml POST /v1/referral-invites
openapi: 3.0.0
info:
  title: nxos API
  version: 1.0.0
  contact:
    name: nxos
    url: https://nxos.io
  description: |-
    The nxos platform API provides programmatic access to accounts, balances,
    quotes, and trades. All endpoints require API key authentication.
servers:
  - url: https://api.nxos.io
    description: Production
    variables: {}
  - url: https://api.sandbox.nxos.io
    description: Sandbox
    variables: {}
security: []
tags:
  - name: Accounts
  - name: Quotes
  - name: Beneficiaries
  - name: Fiat Payouts
  - name: Crypto Payouts
  - name: Sandbox Faucet
  - name: Nxosnet
  - name: Fees
  - name: Sub-Org Tiers
  - name: Funding Methods
  - name: Transactions
  - name: Organizations
  - name: Authorizations
  - name: Referral invites
  - name: Referral links
  - name: Webhooks
    description: >-
      Register an HTTPS endpoint to receive events (organization verification
      and

      transaction status changes) instead of polling. Deliveries are signed;
      verify

      the `svix-signature` header before acting on an event.


      See the [Webhooks guide](https://docs.nxos.io/core-concepts/webhooks) for
      the

      delivery format, signature verification, retries, and broker behavior.
      Payload

      shapes are documented in the `…Event` models below.
paths:
  /v1/referral-invites:
    post:
      tags:
        - Referral invites
      description: >-
        Issue a sign-up link for one of your customers.


        The link opens the Nxos sign-up with the customer's email filled in and

        locked: the form does not let it change, and the server refuses a
        sign-up

        with any other email, Google sign-up included. The customer still
        confirms

        the address through Nxos's confirmation email. Once they sign up, their

        organization is attributed to you as its referrer.


        Calling again for the same email while the invite is pending returns the

        same link with a renewed expiry, so you can request it each time you
        send

        the customer to Nxos. Referrals are switched on for your organization on

        the first call if they are not already.
      operationId: ReferralInvites_create
      parameters:
        - $ref: '#/components/parameters/ApiKeyAuth'
        - $ref: '#/components/parameters/IdempotencyKey'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateReferralInviteRequest'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReferralInvite'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error401'
        '403':
          description: Access is forbidden.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error403'
        '409':
          description: The request conflicts with the current state of the server.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error409'
        '422':
          description: Client error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error422'
        '429':
          description: Client error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error429'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error500'
components:
  parameters:
    ApiKeyAuth:
      name: Authorization
      in: header
      required: true
      description: 'Bearer token. Format: `Bearer <api_key>`'
      schema:
        type: string
    IdempotencyKey:
      name: Idempotency-Key
      in: header
      required: false
      description: >-
        Unique key per logical operation. UUID v4 recommended. Max 255
        characters.
      schema:
        type: string
  schemas:
    CreateReferralInviteRequest:
      type: object
      required:
        - email
      properties:
        email:
          type: string
          description: >-
            Email address of the customer you are sending to Nxos. Only this
            email can sign up with the link.
      description: Request body for `POST /v1/referral-invites`.
    ReferralInvite:
      type: object
      required:
        - object
        - referralInviteId
        - email
        - url
        - expiresAt
        - createdAt
      properties:
        object:
          type: string
          enum:
            - referral_invite
          description: Object type. Always `referral_invite`.
        referralInviteId:
          type: string
          description: Unique identifier of the invite.
        email:
          type: string
          description: The email the link is locked to.
        url:
          type: string
          description: >-
            Sign-up link to send the customer to. The email is pre-filled and
            cannot be changed; the customer confirms it by email, and the new
            organization is attributed to you as its referrer.
        expiresAt:
          allOf:
            - $ref: '#/components/schemas/dateTimeString'
          description: >-
            ISO 8601 timestamp after which the link no longer works. Requesting
            the link again for the same email renews it.
        createdAt:
          allOf:
            - $ref: '#/components/schemas/dateTimeString'
          description: ISO 8601 timestamp of when the invite was first issued.
      description: A sign-up link for one customer, locked to the email it was issued for.
      example:
        object: referral_invite
        referralInviteId: refinv_3c1f0e8a9b2d4c6e8f0a1b2c3d4e5f60
        email: client@example.com
        url: https://app.nxos.io/r/k7x2m9qp
        expiresAt: '2027-01-04T14:30:00.000Z'
        createdAt: '2026-10-06T14:30:00.000Z'
    Error401:
      type: object
      required:
        - error
      properties:
        error:
          $ref: '#/components/schemas/ErrorBody'
      description: Standard error response returned by all endpoints on failure.
      example:
        error:
          code: missing_api_key
          message: No Authorization header provided.
          requestId: req_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4
    Error403:
      type: object
      required:
        - error
      properties:
        error:
          $ref: '#/components/schemas/ErrorBody'
      description: Standard error response returned by all endpoints on failure.
      example:
        error:
          code: forbidden
          message: Your organization is not enabled for this action.
          requestId: req_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4
    Error409:
      type: object
      required:
        - error
      properties:
        error:
          $ref: '#/components/schemas/ErrorBody'
      description: Standard error response returned by all endpoints on failure.
      example:
        error:
          code: quote_expired
          message: The quote has expired.
          requestId: req_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4
    Error422:
      type: object
      required:
        - error
      properties:
        error:
          $ref: '#/components/schemas/ErrorBody'
      description: Standard error response returned by all endpoints on failure.
      example:
        error:
          code: validation_error
          message: Request body failed validation.
          requestId: req_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4
    Error429:
      type: object
      required:
        - error
      properties:
        error:
          $ref: '#/components/schemas/ErrorBody'
      description: Standard error response returned by all endpoints on failure.
      example:
        error:
          code: rate_limited
          message: 'Rate limit exceeded: 1000 requests per minute. Retry in 23 seconds.'
          requestId: req_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4
    Error500:
      type: object
      required:
        - error
      properties:
        error:
          $ref: '#/components/schemas/ErrorBody'
      description: Standard error response returned by all endpoints on failure.
      example:
        error:
          code: internal_error
          message: An unexpected server error occurred.
          requestId: req_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4
    dateTimeString:
      type: string
      description: ISO 8601 timestamp string.
    ErrorBody:
      type: object
      required:
        - code
        - message
        - requestId
      properties:
        code:
          allOf:
            - $ref: '#/components/schemas/ErrorCode'
          description: Machine-readable error code.
        message:
          type: string
          description: Human-readable error message.
        requestId:
          type: string
          description: Unique identifier for this request, useful for debugging.
    ErrorCode:
      type: string
      enum:
        - missing_api_key
        - authentication_failed
        - invalid_api_key
        - forbidden
        - swap_direction_not_allowed
        - sub_org_tier_not_available
        - service_not_enabled
        - not_found
        - organization_not_found
        - account_not_found
        - quote_not_found
        - beneficiary_not_found
        - transaction_not_found
        - funding_method_not_found
        - authorization_not_found
        - nxosnet_handle_not_found
        - sub_org_tier_not_found
        - quote_expired
        - quote_already_used
        - beneficiary_already_archived
        - beneficiary_not_archived
        - beneficiary_blocked
        - nxosnet_not_enabled
        - nxosnet_handle_taken
        - chain_send_failed
        - idempotency_key_in_use
        - idempotency_request_in_flight
        - referral_invite_already_accepted
        - invalid_request
        - insufficient_funds
        - trade_size_out_of_bounds
        - validation_error
        - share_token_invalid
        - verification_import_unsupported
        - verification_required
        - rate_limited
        - webhooks_unavailable
        - internal_error
      description: All possible error codes returned by the API.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.