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

# Get-or-create a permanent deposit address

> Returns the existing active address for `(user_id, family)` or creates a new one. One EVM address covers all EVM chains.



## OpenAPI

````yaml /api-reference/openapi.json post /api/v2/permanent
openapi: 3.1.0
info:
  title: PawPayments API
  description: >-
    Public REST API for the PawPayments crypto payment gateway.


    All `/api/v2/*` endpoints require an `x-api-key` header issued in the
    merchant dashboard. Responses are wrapped in `{"ok": true, "result": ...}`
    on success and `{"ok": false, "error": {code, message, details?}}` on
    failure.
  version: 2.0.0
servers:
  - url: https://api.pawpayments.com
    description: Production
security:
  - ApiKeyAuth: []
tags:
  - name: Catalog
  - name: Merchant
  - name: Invoices
  - name: Payouts
  - name: Notifications
  - name: Permanent addresses
paths:
  /api/v2/permanent:
    post:
      tags:
        - Permanent addresses
      summary: Get-or-create a permanent deposit address
      description: >-
        Returns the existing active address for `(user_id, family)` or creates a
        new one. One EVM address covers all EVM chains.
      operationId: post__api_v2_permanent
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreatePermanentAddress.a1ea1bf'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PermanentAddressEnvelope.d4a12ff'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope.d4a12ff'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope.d4a12ff'
        '422':
          description: Unprocessable Content
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope.d4a12ff'
components:
  schemas:
    CreatePermanentAddress.a1ea1bf:
      properties:
        user_id:
          maxLength: 128
          minLength: 1
          title: User Id
          type: string
        family:
          anyOf:
            - enum:
                - evm
                - bitcoin
                - litecoin
                - bitcoincash
                - tron
                - solana
                - xrp
                - ton
              type: string
            - type: 'null'
          default: null
          title: Family
        asset:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          description: >-
            Asset ticker (e.g. `usdt_trc20`). Used to infer `family` when
            `family` is omitted.
          title: Asset
        notify_url:
          anyOf:
            - maxLength: 500
              type: string
            - type: 'null'
          default: null
          title: Notify Url
        metadata:
          anyOf:
            - type: object
            - type: 'null'
          default: null
          title: Metadata
      required:
        - user_id
      title: CreatePermanentAddress
      type: object
    PermanentAddressEnvelope.d4a12ff:
      properties:
        ok:
          const: true
          title: Ok
          type: boolean
        result:
          $ref: >-
            #/components/schemas/PermanentAddressEnvelope.d4a12ff.PermanentAddress
      required:
        - ok
        - result
      title: PermanentAddressEnvelope
      type: object
    ErrorEnvelope.d4a12ff:
      example:
        error:
          code: VALIDATION_ERROR
          details:
            - field: amount
              message: Field required
          message: Validation failed
        ok: false
      properties:
        ok:
          const: false
          title: Ok
          type: boolean
        error:
          $ref: '#/components/schemas/ErrorEnvelope.d4a12ff.ErrorBody'
      required:
        - ok
        - error
      title: ErrorEnvelope
      type: object
    PermanentAddressEnvelope.d4a12ff.PermanentAddress:
      example:
        active: true
        address: '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb'
        created_at: 1763398900
        deactivated_at: null
        family: evm
        id: 65f1c3a4e8b1c2d3a4b5c6f0
        metadata:
          label: main wallet
        notify_url: https://shop.example.com/webhook/paw
        user_id: u_42
      properties:
        id:
          title: Id
          type: string
        user_id:
          title: User Id
          type: string
        family:
          title: Family
          type: string
        address:
          title: Address
          type: string
        active:
          title: Active
          type: boolean
        notify_url:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Notify Url
        metadata:
          anyOf:
            - type: object
            - type: 'null'
          default: null
          title: Metadata
        created_at:
          anyOf:
            - type: integer
            - type: 'null'
          default: null
          title: Created At
        deactivated_at:
          anyOf:
            - type: integer
            - type: 'null'
          default: null
          title: Deactivated At
      required:
        - id
        - user_id
        - family
        - address
        - active
      title: PermanentAddress
      type: object
    ErrorEnvelope.d4a12ff.ErrorBody:
      properties:
        code:
          description: Machine-readable error code (e.g. NOT_FOUND, VALIDATION_ERROR).
          title: Code
          type: string
        message:
          title: Message
          type: string
        details:
          anyOf:
            - {}
            - type: 'null'
          default: null
          description: >-
            Optional context. For VALIDATION_ERROR contains a list of {field,
            message}.
          title: Details
      required:
        - code
        - message
      title: ErrorBody
      type: object
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      name: x-api-key
      in: header

````