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

# Accept customer agreement

> Records the user's acceptance of the Customer Agreement, which governs the use of
Etherfuse's on/off ramp services.

**Authentication:** The presigned URL serves as the authentication mechanism for the end user.
This endpoint must be called by or on behalf of the user who will be bound by this agreement.

**Legal effect:** By calling this endpoint with a valid presigned URL, the user agrees to
the terms governing fiat-to-crypto and crypto-to-fiat transactions, including fees,
settlement times, and liability provisions.

**Optional customer info:** When using programmatic KYC, you may omit the `customerInfo`
field since identity data was already submitted via the KYC endpoints.




## OpenAPI

````yaml /openapi.yaml post /ramp/agreements/customer-agreement
openapi: 3.1.0
info:
  title: FX API
  version: 1.0.0
  description: >
    API for managing FX operations including onboarding, quotes, orders, and
    customer management.

    This API provides endpoints for managing customers, bank accounts, crypto
    wallets, orders, and webhooks.
servers:
  - url: https://api.etherfuse.com
    description: Production API
  - url: https://api.sand.etherfuse.com
    description: Sandbox API (for testing)
security: []
tags:
  - name: Lookup
    description: Public endpoints for looking up stablebond and exchange rate data
  - name: Assets
    description: Get available assets for ramping
  - name: Onboarding
    description: Customer onboarding and KYC
  - name: Bank Accounts
    description: Manage customer bank accounts
  - name: Agreements
    description: Handle customer agreements and consents
  - name: Quotes
    description: Get quotes for conversions
  - name: Orders
    description: Create and manage orders
  - name: Swaps
    description: Create and manage swaps
  - name: Customers
    description: Manage customers
  - name: Crypto Wallets
    description: Manage crypto wallets
  - name: Webhooks
    description: Manage webhook subscriptions
  - name: Organizations
    description: Manage organizations and child organizations
paths:
  /ramp/agreements/customer-agreement:
    post:
      tags:
        - Agreements
      summary: Accept customer agreement
      description: >
        Records the user's acceptance of the Customer Agreement, which governs
        the use of

        Etherfuse's on/off ramp services.


        **Authentication:** The presigned URL serves as the authentication
        mechanism for the end user.

        This endpoint must be called by or on behalf of the user who will be
        bound by this agreement.


        **Legal effect:** By calling this endpoint with a valid presigned URL,
        the user agrees to

        the terms governing fiat-to-crypto and crypto-to-fiat transactions,
        including fees,

        settlement times, and liability provisions.


        **Optional customer info:** When using programmatic KYC, you may omit
        the `customerInfo`

        field since identity data was already submitted via the KYC endpoints.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomerAgreementPayload'
      responses:
        '200':
          description: Customer agreement acceptance recorded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgreementResponse'
        '400':
          description: Invalid or expired presigned URL
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    CustomerAgreementPayload:
      type: object
      description: >
        Payload for accepting the customer agreement. The presigned URL
        authenticates the end user

        who will be bound by the agreement.
      properties:
        presignedUrl:
          type: string
          description: >
            Presigned URL obtained from `POST /ramp/onboarding-url`. This URL
            authenticates

            the end user and authorizes them to accept the agreement.
        customerInfo:
          type: object
          nullable: true
          description: >
            Optional customer information. When using programmatic KYC, this
            field may be omitted

            since identity data was already submitted via the KYC endpoints.
      required:
        - presignedUrl
      example:
        presignedUrl: https://devnet.etherfuse.com/onboarding?token=eyJhbGciOiJIUzI1NiIs...
    AgreementResponse:
      type: object
      description: Response confirming an agreement has been recorded
      properties:
        success:
          type: boolean
          description: Whether the agreement was successfully recorded
        acceptedAt:
          type: string
          format: date-time
          description: Timestamp when the agreement was accepted
        agreementType:
          type: string
          description: Type of agreement accepted
          enum:
            - electronic_signature
            - terms_and_conditions
            - customer_agreement
      example:
        success: true
        acceptedAt: '2024-01-15T10:00:00Z'
        agreementType: customer_agreement
    Error:
      type: object
      properties:
        error:
          type: string
          description: Error message
      example:
        error: Invalid request parameters

````