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

# Create funding address

> Registers a user-added funding address for withdrawals on the selected account. Registration may activate an applicable funding method.

Requires the **Add withdrawal addresses** API key permission.

This operation is not idempotent. After an unknown outcome, list funding addresses before retrying.



## OpenAPI

````yaml https://d2588n1sy4m36o.cloudfront.net/uat/merged/openapi.json post /v1/accounts/{account_id}/funds/addresses
openapi: 3.1.0
info:
  title: PWS Public API
  version: '1'
  description: >-
    Integrate with Payward Services to onboard users, manage accounts and funds,
    trade assets, and receive event notifications.
  contact:
    name: Payward Services
servers:
  - url: https://api.sandbox.services.payward.com
security: []
tags:
  - name: Assets
    description: List the assets PWS is willing to swap.
    x-displayName: Assets
  - name: Conversions
    description: >-
      Rule-driven and on-demand fiat ↔ crypto value movement, including
      conversion rules and deposits.
    x-displayName: Conversions
  - name: Auto Earn
    description: >-
      Manage Auto Earn preferences and retrieve allocation and reward
      information.
    x-displayName: Auto Earn
  - name: Bonded Earn
    description: >-
      Allocate funds to and deallocate funds from bonded earn strategies, review
      allocations, and track request status.
    x-displayName: Bonded Earn
  - name: Funding
    description: >-
      Discover deposit and withdrawal options, manage deposit addresses, and
      move funds between accounts.
    x-displayName: Funding
  - name: Derivative transfers
    description: >-
      Move funds between an account's spot balance and the same owner's futures
      balance.
    x-displayName: Derivative transfers
  - name: Portfolio
    description: 'Inspect a customer''s portfolio: balances, valuations, and transactions.'
    x-displayName: Portfolio
  - name: Ramp
    description: >-
      Support Ramp flows with discovery, quotes, limits, and hosted checkout
      experiences.
    x-displayName: Ramp
  - name: Reports
    description: Settlement and reconciliation reports for the partner.
    x-displayName: Reports
  - name: Swaps
    description: Account-funded quotes that lock a price until they expire or are executed.
    x-displayName: Swaps
  - name: Onchain quotes
    description: Wallet-funded quotes that return the data needed to settle onchain.
    x-displayName: Onchain quotes
  - name: Price trigger swaps
    description: Swaps that wait for a target price before submitting a trade.
    x-displayName: Price trigger swaps
  - name: Travel Rule verifications
    description: Travel Rule address ownership verification flows.
    x-displayName: Travel Rule verifications
  - name: Users
    description: >-
      User onboarding and status flows that the partner manages.


      - **Create User** provisions an account-owned user from an external
      reference and optional email.

      - **Get User** retrieves the user's profile, verification status, and
      required actions.


      Use the returned user `id` for calls that require the user's identifier.
    x-displayName: Users
  - name: Verifications
    description: Identity verification (KYC) submission and status for end users.
    x-displayName: Verifications
  - name: Webhooks
    description: >-
      Register HTTPS destinations to receive event deliveries, rotate signing
      secrets, and inspect, update, or delete existing subscriptions. Each
      subscription is owned by the authenticated partner; deliveries are signed
      with HMAC-SHA256 and retried on transient failures.
    x-displayName: Webhooks
paths:
  /v1/accounts/{account_id}/funds/addresses:
    post:
      tags:
        - Funding
      summary: Create funding address
      description: >-
        Registers a user-added funding address for withdrawals on the selected
        account. Registration may activate an applicable funding method.


        Requires the **Add withdrawal addresses** API key permission.


        This operation is not idempotent. After an unknown outcome, list funding
        addresses before retrying.
      operationId: createFundingAddress
      parameters:
        - $ref: '#/components/parameters/AccountId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Funding_CreateFundingAddressBody'
            examples:
              sepa:
                summary: Register a SEPA funding address
                value:
                  scope:
                    method_id: 7c9e6679-7425-40de-944b-e07fc1f90ae7
                  name: My SEPA account
                  address_details:
                    fiat:
                      iban: DE89370400440532013000
              ach:
                summary: Register an ACH funding address
                value:
                  scope:
                    method_id: c82d46e3-2719-48a2-85fd-a2907a6a8bd4
                  name: My bank account
                  address_details:
                    fiat:
                      account_number: '12345678'
                      routing_number: '021000021'
                      account_type: checking
              wire:
                summary: Register a wire funding address
                value:
                  scope:
                    method_id: 1879e694-4427-48f3-91d8-9fd61a2e91a0
                  name: My wire account
                  address_details:
                    fiat:
                      account_number: '12345678'
                      routing_number: '021000021'
                      bank: Example Bank
              bitcoin:
                summary: Register a Bitcoin funding address
                value:
                  scope:
                    method_id: 2fa11f79-eeba-4d4e-afda-029abff6e29e
                  name: My cold wallet
                  address_details:
                    crypto:
                      address: bc1qexampleaddress
      responses:
        '200':
          description: Funding address registered for the selected account.
          headers:
            X-Trace-Id:
              $ref: '#/components/headers/TraceId'
            Strict-Transport-Security:
              $ref: '#/components/headers/StrictTransportSecurity'
            Cache-Control:
              $ref: '#/components/headers/CacheControl'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Funding_CreateFundingAddressResult'
              examples:
                sepa:
                  summary: SEPA funding address registered
                  value:
                    data:
                      address_id: AB12345-6789A-BCDEFG
        '400':
          $ref: '#/components/responses/FundingCreateAddressBadRequestResponse'
        '401':
          $ref: '#/components/responses/FundingUnauthenticatedResponse'
        '403':
          description: >-
            Access is forbidden, the funding method requires activation, or
            activation was denied.
          headers:
            X-Trace-Id:
              $ref: '#/components/headers/TraceId'
            Strict-Transport-Security:
              $ref: '#/components/headers/StrictTransportSecurity'
            Cache-Control:
              $ref: '#/components/headers/CacheControl'
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/ForbiddenError'
                    title: Forbidden
                  - $ref: >-
                      #/components/schemas/Funding_FundingMethodActivationRequiredError
                    title: Funding method activation required
                  - $ref: >-
                      #/components/schemas/Funding_FundingMethodActivationDeniedError
                    title: Funding method activation denied
              examples:
                forbidden:
                  summary: Access forbidden
                  value:
                    error:
                      type: funding_error
                      instance: 5f4d2a8e-91a4-4d6c-8a17-9b1e2c3f4a5b
                      status: 403
                      code: forbidden
                activation-required:
                  summary: Funding method activation required
                  value:
                    error:
                      type: funding_error
                      instance: 5f4d2a8e-91a4-4d6c-8a17-9b1e2c3f4a5b
                      status: 403
                      code: funding_method_activation_required
                activation-denied:
                  summary: Funding method activation denied
                  value:
                    error:
                      type: funding_error
                      instance: 5f4d2a8e-91a4-4d6c-8a17-9b1e2c3f4a5b
                      status: 403
                      code: funding_method_activation_denied
        '409':
          description: >-
            An address limit applying to the selected scope has been reached, an
            address with the same name already exists for the account owner, or
            account settings temporarily block address changes.
          headers:
            X-Trace-Id:
              $ref: '#/components/headers/TraceId'
            Strict-Transport-Security:
              $ref: '#/components/headers/StrictTransportSecurity'
            Cache-Control:
              $ref: '#/components/headers/CacheControl'
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: >-
                      #/components/schemas/Funding_WithdrawalAddressLimitReachedError
                    title: Funding address limit reached
                  - $ref: >-
                      #/components/schemas/Funding_WithdrawalAddressAlreadyExistsError
                    title: Funding address already exists
                  - $ref: >-
                      #/components/schemas/Funding_WithdrawalAddressAccountSettingsLockedError
                    title: Account settings locked
              examples:
                address-limit-reached:
                  summary: Funding address limit reached
                  value:
                    error:
                      type: funding_error
                      instance: 5f4d2a8e-91a4-4d6c-8a17-9b1e2c3f4a5b
                      status: 409
                      code: withdrawal_address_limit_reached
                address-already-exists:
                  summary: Funding address already exists
                  value:
                    error:
                      type: funding_error
                      instance: 5f4d2a8e-91a4-4d6c-8a17-9b1e2c3f4a5b
                      status: 409
                      code: withdrawal_address_already_exists
                account-settings-locked:
                  summary: Account settings locked
                  value:
                    error:
                      type: funding_error
                      instance: 5f4d2a8e-91a4-4d6c-8a17-9b1e2c3f4a5b
                      status: 409
                      code: withdrawal_address_account_settings_locked
        '429':
          $ref: '#/components/responses/FundingResourceExhaustedResponse'
        '500':
          $ref: '#/components/responses/FundingInternalResponse'
        '503':
          $ref: '#/components/responses/FundingUnavailableResponse'
        '504':
          $ref: '#/components/responses/FundingDeadlineExceededResponse'
      security:
        - ApiKey: []
          ApiSign: []
          ApiNonce: []
components:
  parameters:
    AccountId:
      name: account_id
      in: path
      required: true
      example: WVSD33HRMGSZUBM7
      schema:
        $ref: '#/components/schemas/AccountId'
  schemas:
    Funding_CreateFundingAddressBody:
      description: Scope, label, and destination details for a user-added funding address.
      type: object
      required:
        - scope
        - name
        - address_details
      properties:
        scope:
          $ref: '#/components/schemas/Funding_CreateFundingAddressScope'
          description: >-
            Address registration scope. Either a single withdrawal method or a
            whole network.
        name:
          description: >-
            Partner-provided label for the funding address. It must be unique
            across the account owner's withdrawal addresses, regardless of
            funding method. Surrounding whitespace is removed, and
            whitespace-only labels are rejected.
          type: string
          minLength: 1
          maxLength: 64
        address_details:
          $ref: '#/components/schemas/Funding_FundingAddressDetails'
          description: >-
            Destination details for the funding address. Supply exactly one fiat
            bank account or crypto address.
    Funding_CreateFundingAddressResult:
      description: Funding address registered for the selected account.
      type: object
      required:
        - data
      properties:
        data:
          $ref: '#/components/schemas/Funding_FundingAddress'
          description: Registered funding address.
    ForbiddenError:
      title: Forbidden
      description: The caller is not allowed to perform this operation.
      oneOf:
        - title: Forbidden
          allOf:
            - $ref: '#/components/schemas/PwsGeneralErrorEnvelope'
            - type: object
              required:
                - error
              properties:
                error:
                  allOf:
                    - $ref: '#/components/schemas/PwsGeneralError'
                    - type: object
                      required:
                        - status
                        - code
                      properties:
                        status:
                          type: integer
                          format: int32
                          const: 403
                        code:
                          type: string
                          enum:
                            - forbidden
        - title: Gateway
          description: Authorization failure returned by the API gateway.
          allOf:
            - $ref: '#/components/schemas/PwsGeneralErrorEnvelope'
            - type: object
              required:
                - error
              properties:
                error:
                  allOf:
                    - $ref: '#/components/schemas/PwsGeneralError'
                    - type: object
                      required:
                        - status
                        - code
                      properties:
                        type:
                          type: string
                          const: service_error
                        status:
                          type: integer
                          format: int32
                          const: 403
                        code:
                          type: string
                          const: gateway
    Funding_FundingMethodActivationRequiredError:
      description: >-
        The funding method requires activation before this operation can
        complete. This API does not expose a separate withdrawal-method
        activation operation.
      allOf:
        - $ref: '#/components/schemas/PwsGeneralErrorEnvelope'
        - type: object
          required:
            - error
          properties:
            error:
              allOf:
                - $ref: '#/components/schemas/PwsGeneralError'
                - type: object
                  required:
                    - status
                    - code
                  properties:
                    status:
                      type: integer
                      format: int32
                      const: 403
                    code:
                      type: string
                      enum:
                        - funding_method_activation_required
    Funding_FundingMethodActivationDeniedError:
      description: >-
        Activation of the funding method was denied, so this operation could not
        complete.
      allOf:
        - $ref: '#/components/schemas/PwsGeneralErrorEnvelope'
        - type: object
          required:
            - error
          properties:
            error:
              allOf:
                - $ref: '#/components/schemas/PwsGeneralError'
                - type: object
                  required:
                    - status
                    - code
                  properties:
                    status:
                      type: integer
                      format: int32
                      const: 403
                    code:
                      type: string
                      enum:
                        - funding_method_activation_denied
    Funding_WithdrawalAddressLimitReachedError:
      description: >-
        A new funding address cannot be registered because an address limit
        applying to the selected scope has been reached. Compatible funding
        methods can share address limits. List and reuse an existing address
        before registering another.
      allOf:
        - $ref: '#/components/schemas/PwsGeneralErrorEnvelope'
        - type: object
          required:
            - error
          properties:
            error:
              allOf:
                - $ref: '#/components/schemas/PwsGeneralError'
                - type: object
                  required:
                    - status
                    - code
                  properties:
                    status:
                      type: integer
                      format: int32
                      const: 409
                    code:
                      type: string
                      enum:
                        - withdrawal_address_limit_reached
    Funding_WithdrawalAddressAlreadyExistsError:
      description: >-
        The funding address cannot be created or renamed because another address
        with the same name already exists for the account owner.
      allOf:
        - $ref: '#/components/schemas/PwsGeneralErrorEnvelope'
        - type: object
          required:
            - error
          properties:
            error:
              allOf:
                - $ref: '#/components/schemas/PwsGeneralError'
                - type: object
                  required:
                    - status
                    - code
                  properties:
                    status:
                      type: integer
                      format: int32
                      const: 409
                    code:
                      type: string
                      enum:
                        - withdrawal_address_already_exists
    Funding_WithdrawalAddressAccountSettingsLockedError:
      description: >-
        A new funding address cannot be registered because account settings
        temporarily block security-sensitive changes.
      allOf:
        - $ref: '#/components/schemas/PwsGeneralErrorEnvelope'
        - type: object
          required:
            - error
          properties:
            error:
              allOf:
                - $ref: '#/components/schemas/PwsGeneralError'
                - type: object
                  required:
                    - status
                    - code
                  properties:
                    status:
                      type: integer
                      format: int32
                      const: 409
                    code:
                      type: string
                      enum:
                        - withdrawal_address_account_settings_locked
    AccountId:
      description: Globally unique public identifier for an account.
      type: string
      minLength: 14
      maxLength: 42
    Funding_CreateFundingAddressScope:
      description: >-
        What a new user-added funding address is registered against. `method_id`
        registers it for one withdrawal method. `network_id` registers one
        address valid for every method on that network.


        Supply exactly one identifier. The request is rejected when the selected
        scope is not supported.
      type: object
      properties:
        method_id:
          description: >-
            Withdrawal funding method identifier returned by the
            withdrawal-methods endpoint. Registers the address for that single
            method.
          type: string
          format: uuid
        network_id:
          description: >-
            Network identifier returned by the withdrawal-methods endpoint.
            Registers one address valid for every withdrawal method on the
            network.
          type: string
          format: uuid
    Funding_FundingAddressDetails:
      description: >-
        Details for the user-added funding address, as a fiat bank account or a
        crypto address.


        Supply exactly one branch. Its properties are validated for the
        requested scope.
      type: object
      properties:
        fiat:
          $ref: '#/components/schemas/Funding_FundingFiatAddress'
          description: Bank account used as the withdrawal destination.
        crypto:
          $ref: '#/components/schemas/Funding_FundingCryptoAddress'
          description: Crypto address used as the withdrawal destination.
    Funding_FundingAddress:
      description: User-added funding address registered for the selected account.
      type: object
      required:
        - address_id
      properties:
        address_id:
          description: Stable identifier for the registered funding address.
          type: string
          minLength: 1
          maxLength: 64
    BadRequestError:
      title: Bad Request
      description: Request validation failed or the request could not be processed.
      oneOf:
        - title: Bad Request
          allOf:
            - $ref: '#/components/schemas/PwsValidationErrorEnvelope'
            - type: object
              required:
                - error
              properties:
                error:
                  allOf:
                    - $ref: '#/components/schemas/PwsValidationError'
                    - type: object
                      required:
                        - status
                        - code
                      properties:
                        status:
                          type: integer
                          format: int32
                          const: 400
                        code:
                          type: string
                          enum:
                            - bad_request
        - title: Gateway
          description: >-
            Gateway-level validation failure returned before the request reaches
            the service.
          allOf:
            - $ref: '#/components/schemas/PwsValidationErrorEnvelope'
            - type: object
              required:
                - error
              properties:
                error:
                  allOf:
                    - $ref: '#/components/schemas/PwsValidationError'
                    - type: object
                      required:
                        - status
                        - code
                      properties:
                        type:
                          type: string
                          const: service_error
                        status:
                          type: integer
                          format: int32
                          const: 400
                        code:
                          type: string
                          const: gateway
    UnauthenticatedError:
      title: Unauthenticated
      description: Authentication credentials are missing, invalid, or not accepted.
      oneOf:
        - title: Unauthenticated
          allOf:
            - $ref: '#/components/schemas/PwsGeneralErrorEnvelope'
            - type: object
              required:
                - error
              properties:
                error:
                  allOf:
                    - $ref: '#/components/schemas/PwsGeneralError'
                    - type: object
                      required:
                        - status
                        - code
                      properties:
                        status:
                          type: integer
                          format: int32
                          const: 401
                        code:
                          type: string
                          enum:
                            - unauthenticated
        - title: Gateway
          description: Authentication failure returned by the API gateway.
          allOf:
            - $ref: '#/components/schemas/PwsGeneralErrorEnvelope'
            - type: object
              required:
                - error
              properties:
                error:
                  allOf:
                    - $ref: '#/components/schemas/PwsGeneralError'
                    - type: object
                      required:
                        - status
                        - code
                      properties:
                        type:
                          type: string
                          const: service_error
                        status:
                          type: integer
                          format: int32
                          const: 401
                        code:
                          type: string
                          const: gateway
    PwsGeneralErrorEnvelope:
      description: Error envelope for operational or domain failures.
      type: object
      required:
        - error
      properties:
        error:
          $ref: '#/components/schemas/PwsGeneralError'
          description: General error details.
    PwsGeneralError:
      description: Standard PWS API error object for non-validation failures.
      allOf:
        - $ref: '#/components/schemas/PwsErrorBase'
        - type: object
          properties:
            causes:
              description: Additional error details, when present.
              type: array
              items:
                type: object
                additionalProperties: true
    ResourceExhaustedError:
      description: The request was rate limited or a resource quota was exhausted.
      allOf:
        - $ref: '#/components/schemas/PwsGeneralErrorEnvelope'
        - type: object
          required:
            - error
          properties:
            error:
              allOf:
                - $ref: '#/components/schemas/PwsGeneralError'
                - type: object
                  required:
                    - status
                    - code
                  properties:
                    status:
                      type: integer
                      format: int32
                      const: 429
                    code:
                      type: string
                      enum:
                        - resource_exhausted
    InternalError:
      description: An unexpected server-side error occurred.
      allOf:
        - $ref: '#/components/schemas/PwsGeneralErrorEnvelope'
        - type: object
          required:
            - error
          properties:
            error:
              allOf:
                - $ref: '#/components/schemas/PwsGeneralError'
                - type: object
                  required:
                    - status
                    - code
                  properties:
                    status:
                      type: integer
                      format: int32
                      const: 500
                    code:
                      type: string
                      enum:
                        - internal
    UnavailableError:
      description: The service is temporarily unavailable.
      allOf:
        - $ref: '#/components/schemas/PwsGeneralErrorEnvelope'
        - type: object
          required:
            - error
          properties:
            error:
              allOf:
                - $ref: '#/components/schemas/PwsGeneralError'
                - type: object
                  required:
                    - status
                    - code
                  properties:
                    status:
                      type: integer
                      format: int32
                      const: 503
                    code:
                      type: string
                      enum:
                        - unavailable
    DeadlineExceededError:
      description: The request deadline was exceeded before a response could be produced.
      allOf:
        - $ref: '#/components/schemas/PwsGeneralErrorEnvelope'
        - type: object
          required:
            - error
          properties:
            error:
              allOf:
                - $ref: '#/components/schemas/PwsGeneralError'
                - type: object
                  required:
                    - status
                    - code
                  properties:
                    status:
                      type: integer
                      format: int32
                      const: 504
                    code:
                      type: string
                      enum:
                        - deadline_exceeded
    Funding_FundingFiatAddress:
      description: >-
        Bank account details for a fiat withdrawal destination. For a
        destination owned by the selected account holder, the account-holder
        name comes from verified account information.
      type: object
      properties:
        iban:
          description: >-
            IBAN identifying the destination bank account. Required only when
            the selected scope calls for it.
          type: string
          minLength: 1
          maxLength: 34
        bic:
          description: >-
            Bank identifier code for the destination bank. Required only when
            the selected scope calls for it.
          type: string
          minLength: 1
          maxLength: 11
        swift:
          description: >-
            SWIFT code for the destination bank. Required only when the selected
            scope calls for it.
          type: string
          minLength: 1
          maxLength: 11
        sort_code:
          description: >-
            Sort code for the destination bank account. Required only when the
            selected scope calls for it.
          type: string
          minLength: 1
          maxLength: 16
        routing_number:
          description: >-
            Routing number for the destination bank account. Required only when
            the selected scope calls for it.
          type: string
          minLength: 1
          maxLength: 34
        bsb:
          description: >-
            Bank-State-Branch code for the destination bank account. Required
            only when the selected scope calls for it.
          type: string
          minLength: 1
          maxLength: 16
        account_number:
          description: >-
            Destination bank account number. Required only when the selected
            scope calls for it.
          type: string
          minLength: 1
          maxLength: 64
        address:
          description: Bank address required by the selected scope, when applicable.
          type: string
          minLength: 1
          maxLength: 256
        tag:
          description: Destination tag required by the selected scope, when applicable.
          type: string
          minLength: 1
          maxLength: 64
        memo:
          description: Destination memo required by the selected scope, when applicable.
          type: string
          minLength: 1
          maxLength: 256
        bank:
          description: >-
            Name of the destination bank. Required only when the selected scope
            calls for it.
          type: string
          minLength: 1
        account_type:
          description: >-
            Type of the destination bank account. Use a choice from the selected
            method's address-field allowed_values when the list is non-empty.
            Validated when the address is registered.
          type: string
          minLength: 1
    Funding_FundingCryptoAddress:
      description: Crypto address details for the funding address.
      type: object
      required:
        - address
      properties:
        address:
          description: Destination crypto address accepted by the selected scope.
          type: string
          minLength: 1
          maxLength: 256
        tag:
          description: Destination tag required by the selected scope, when applicable.
          type: string
          minLength: 1
          maxLength: 64
        memo:
          description: Destination memo required by the selected scope, when applicable.
          type: string
          minLength: 1
          maxLength: 256
    PwsValidationErrorEnvelope:
      description: Error envelope for request validation failures.
      type: object
      required:
        - error
      properties:
        error:
          $ref: '#/components/schemas/PwsValidationError'
          description: Validation error details.
    PwsValidationError:
      description: Standard PWS API error object for request validation failures.
      type: object
      required:
        - type
        - status
        - instance
        - code
      properties:
        type:
          description: Machine-readable error class.
          type: string
        status:
          description: HTTP status code returned for this error.
          type: integer
          format: int32
        instance:
          description: Request identifier for this specific error occurrence.
          type: string
        code:
          description: Stable machine-readable error code.
          type: string
        doc_url:
          description: Optional link to documentation for this error.
          type: string
          format: uri
        causes:
          description: Validation failures that contributed to the error.
          type: array
          items:
            $ref: '#/components/schemas/PwsErrorCause'
    PwsErrorBase:
      description: Common fields present on every PWS API error object.
      type: object
      required:
        - type
        - status
        - instance
        - code
      properties:
        type:
          description: Machine-readable error class.
          type: string
        status:
          description: HTTP status code returned for this error.
          type: integer
          format: int32
        instance:
          description: Request identifier for this specific error occurrence.
          type: string
        code:
          description: Stable machine-readable error code.
          type: string
        doc_url:
          description: Optional link to documentation for this error.
          type: string
          format: uri
    PwsErrorCause:
      description: A single request validation failure.
      type: object
      required:
        - field
        - message
      properties:
        field:
          description: Dot-notation path to the offending request field.
          type: string
        message:
          description: Human-readable explanation of the failed validation rule.
          type: string
  headers:
    TraceId:
      description: Trace identifier for the request. Include it when contacting support.
      schema:
        type: string
        example: 4bf92f3577b34da6a3ce929d0e0e4736
    StrictTransportSecurity:
      description: Enforces HTTPS for the duration specified by `max-age`.
      schema:
        type: string
        example: max-age=31536000; includeSubDomains; preload
    CacheControl:
      description: Prevents caching of sensitive financial data. Always `no-store`.
      schema:
        type: string
        enum:
          - no-store
        example: no-store
  responses:
    FundingCreateAddressBadRequestResponse:
      description: The request is invalid.
      headers:
        X-Trace-Id:
          $ref: '#/components/headers/TraceId'
        Strict-Transport-Security:
          $ref: '#/components/headers/StrictTransportSecurity'
        Cache-Control:
          $ref: '#/components/headers/CacheControl'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/BadRequestError'
          examples:
            invalid-scope:
              $ref: '#/components/examples/funding-create-address-invalid-scope'
            invalid-address-details:
              $ref: '#/components/examples/funding-create-address-invalid-details'
            invalid-name:
              $ref: '#/components/examples/funding-create-address-invalid-name'
    FundingUnauthenticatedResponse:
      description: Authentication required
      headers:
        X-Trace-Id:
          $ref: '#/components/headers/TraceId'
        Strict-Transport-Security:
          $ref: '#/components/headers/StrictTransportSecurity'
        Cache-Control:
          $ref: '#/components/headers/CacheControl'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UnauthenticatedError'
          examples:
            authentication-failed:
              $ref: '#/components/examples/funding-unauthenticated'
    FundingResourceExhaustedResponse:
      description: Rate limit exceeded
      headers:
        X-Trace-Id:
          $ref: '#/components/headers/TraceId'
        Strict-Transport-Security:
          $ref: '#/components/headers/StrictTransportSecurity'
        Cache-Control:
          $ref: '#/components/headers/CacheControl'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ResourceExhaustedError'
          examples:
            rate-limit-exceeded:
              $ref: '#/components/examples/funding-resource-exhausted'
    FundingInternalResponse:
      description: Internal server error
      headers:
        X-Trace-Id:
          $ref: '#/components/headers/TraceId'
        Strict-Transport-Security:
          $ref: '#/components/headers/StrictTransportSecurity'
        Cache-Control:
          $ref: '#/components/headers/CacheControl'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/InternalError'
          examples:
            internal-error:
              $ref: '#/components/examples/funding-internal'
    FundingUnavailableResponse:
      description: Service unavailable
      headers:
        X-Trace-Id:
          $ref: '#/components/headers/TraceId'
        Strict-Transport-Security:
          $ref: '#/components/headers/StrictTransportSecurity'
        Cache-Control:
          $ref: '#/components/headers/CacheControl'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UnavailableError'
          examples:
            service-unavailable:
              $ref: '#/components/examples/funding-unavailable'
    FundingDeadlineExceededResponse:
      description: Request deadline exceeded
      headers:
        X-Trace-Id:
          $ref: '#/components/headers/TraceId'
        Strict-Transport-Security:
          $ref: '#/components/headers/StrictTransportSecurity'
        Cache-Control:
          $ref: '#/components/headers/CacheControl'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DeadlineExceededError'
          examples:
            request-deadline-exceeded:
              $ref: '#/components/examples/funding-deadline-exceeded'
  examples:
    funding-create-address-invalid-scope:
      summary: Invalid funding address scope
      value:
        error:
          type: funding_error
          instance: 5f4d2a8e-91a4-4d6c-8a17-9b1e2c3f4a5b
          status: 400
          code: bad_request
          causes:
            - field: scope
              message: must name exactly one method or network
    funding-create-address-invalid-details:
      summary: Invalid funding address details
      value:
        error:
          type: funding_error
          instance: 5f4d2a8e-91a4-4d6c-8a17-9b1e2c3f4a5b
          status: 400
          code: bad_request
          causes:
            - field: address_details
              message: must contain exactly one fiat or crypto address
    funding-create-address-invalid-name:
      summary: Invalid funding address name
      value:
        error:
          type: funding_error
          instance: 5f4d2a8e-91a4-4d6c-8a17-9b1e2c3f4a5b
          status: 400
          code: bad_request
          causes:
            - field: name
              message: must not be empty or contain only whitespace
    funding-unauthenticated:
      summary: Authentication failed
      value:
        error:
          type: funding_error
          instance: 5f4d2a8e-91a4-4d6c-8a17-9b1e2c3f4a5b
          status: 401
          code: unauthenticated
    funding-resource-exhausted:
      summary: Rate limit exceeded
      value:
        error:
          type: funding_error
          instance: 5f4d2a8e-91a4-4d6c-8a17-9b1e2c3f4a5b
          status: 429
          code: resource_exhausted
    funding-internal:
      summary: Internal server error
      value:
        error:
          type: funding_error
          instance: 5f4d2a8e-91a4-4d6c-8a17-9b1e2c3f4a5b
          status: 500
          code: internal
    funding-unavailable:
      summary: Service unavailable
      value:
        error:
          type: funding_error
          instance: 5f4d2a8e-91a4-4d6c-8a17-9b1e2c3f4a5b
          status: 503
          code: unavailable
    funding-deadline-exceeded:
      summary: Request deadline exceeded
      value:
        error:
          type: funding_error
          instance: 5f4d2a8e-91a4-4d6c-8a17-9b1e2c3f4a5b
          status: 504
          code: deadline_exceeded
  securitySchemes:
    ApiKey:
      type: apiKey
      in: header
      name: API-Key
      description: Your public API key. Identifies the partner making the request.
    ApiSign:
      type: apiKey
      in: header
      name: API-Sign
      description: HMAC signature over the request, computed with your private key.
    ApiNonce:
      type: apiKey
      in: header
      name: API-Nonce
      description: Monotonically increasing nonce included in the request signature.

````