> ## 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 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 is 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.json post /ramp/agreements/customer-agreement
openapi: 3.1.0
info:
  title: Etherfuse FX API
  description: Partner-facing ramp API for onramps, offramps, swaps, and KYC.
  license:
    name: Proprietary
  version: 1.0.0
servers:
  - url: https://api.sand.etherfuse.com
    description: Sandbox
security:
  - ApiKeyAuth: []
tags:
  - name: Authentication
    description: >-
      Partner JWT authentication — exchange a JWT for an access token, or launch
      a user into the app.
  - name: Lookup
    description: >-
      Public reference data: exchange rates, stablebonds, bond costs, country
      codes.
  - name: Assets
    description: Rampable stablecoins and stablebonds available per blockchain.
  - name: Onboarding
    description: Hosted and programmatic customer onboarding.
  - name: Agreements
    description: Legal agreement acceptance during onboarding.
  - name: Bank Accounts
    description: Register and retrieve customer bank accounts.
  - name: Quotes
    description: Price quotes for onramps, offramps, and swaps.
  - name: Orders
    description: Create, track, and manage ramp orders.
  - name: Swaps
    description: Crypto-to-crypto swaps.
  - name: Sponsored
    description: Token approvals for sponsored (gasless) offramps.
  - name: Customers
    description: Customer (child-organization) records.
  - name: Wallets
    description: Register and manage customer wallets.
  - name: KYC
    description: Submit and check customer KYC status.
  - name: Webhooks
    description: Event notification subscriptions.
  - name: Organizations
    description: Organization identity, child orgs, and partner fees.
paths:
  /ramp/agreements/customer-agreement:
    post:
      tags:
        - Agreements
      summary: Accept 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 is 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.
      operationId: accept_customer_agreement_route
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomerAgreementPayload'
        required: true
      responses:
        '200':
          description: Agreement accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgreementStatus'
        '400':
          description: Invalid or expired presigned URL
      security:
        - {}
components:
  schemas:
    CustomerAgreementPayload:
      type: object
      required:
        - presignedUrl
      properties:
        customerInfo:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/AgreementUpdateRequest'
        presignedUrl:
          type: string
      example:
        presignedUrl: >-
          https://api.sand.etherfuse.com/ramp/agreements/customer-agreement?...&signature=...
    AgreementStatus:
      type: object
      required:
        - accepted_timestamp
        - agreement_version
      properties:
        accepted_ip:
          type:
            - string
            - 'null'
        accepted_timestamp:
          type: string
          format: date-time
        agreement_version:
          type: string
        document_reference:
          type:
            - string
            - 'null'
        location:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/GeneralLocation'
      example:
        accepted_ip: 201.140.10.20
        accepted_timestamp: '2026-05-01T15:00:00Z'
        agreement_version: '1.0'
        document_reference: https://docs.etherfuse.com/agreements/v1.0.pdf
    AgreementUpdateRequest:
      type: object
      properties:
        additional_info:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/MexicanInformationUpdate'
        address:
          type:
            - string
            - 'null'
        controlling_beneficiaries:
          type:
            - string
            - 'null'
        corporate_data:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/CorporateData'
        email:
          type:
            - string
            - 'null'
        first_name:
          type:
            - string
            - 'null'
        identification_type:
          type:
            - string
            - 'null'
        last_name:
          type:
            - string
            - 'null'
        legal_representative_data:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/LegalRepresentativeData'
        modification_data:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/ModificationData'
        name:
          type:
            - string
            - 'null'
        occupation:
          type:
            - string
            - 'null'
        phone:
          type:
            - string
            - 'null'
    GeneralLocation:
      type: object
      required:
        - city
        - region
        - country
        - emoji_flag
        - country_flag_url
      properties:
        city:
          type: string
        country:
          type: string
        country_flag_url:
          type: string
        emoji_flag:
          type: string
        region:
          type: string
    MexicanInformationUpdate:
      type: object
      properties:
        curp:
          type:
            - string
            - 'null'
        rfc:
          type:
            - string
            - 'null'
    CorporateData:
      type: object
      properties:
        company_name:
          type:
            - string
            - 'null'
        company_purpose:
          type:
            - string
            - 'null'
        folio:
          type:
            - string
            - 'null'
        incorporation_date:
          type:
            - string
            - 'null'
        incorporation_deed:
          type:
            - string
            - 'null'
        notary_location:
          type:
            - string
            - 'null'
        notary_name:
          type:
            - string
            - 'null'
        notary_number:
          type:
            - string
            - 'null'
        registry_date:
          type:
            - string
            - 'null'
        rfc:
          type:
            - string
            - 'null'
    LegalRepresentativeData:
      type: object
      properties:
        controlling_beneficiaries:
          type:
            - string
            - 'null'
        curp:
          type:
            - string
            - 'null'
        deed_date:
          type:
            - string
            - 'null'
        identification_type:
          type:
            - string
            - 'null'
        name:
          type:
            - string
            - 'null'
        notary_location:
          type:
            - string
            - 'null'
        notary_name:
          type:
            - string
            - 'null'
        notary_number:
          type:
            - string
            - 'null'
        occupation:
          type:
            - string
            - 'null'
        position:
          type:
            - string
            - 'null'
        public_deed:
          type:
            - string
            - 'null'
        registry_date:
          type:
            - string
            - 'null'
        rfc:
          type:
            - string
            - 'null'
    ModificationData:
      type: object
      properties:
        company_name:
          type:
            - string
            - 'null'
        deed_date:
          type:
            - string
            - 'null'
        folio:
          type:
            - string
            - 'null'
        modification_made:
          type:
            - string
            - 'null'
        notary_location:
          type:
            - string
            - 'null'
        notary_name:
          type:
            - string
            - 'null'
        notary_number:
          type:
            - string
            - 'null'
        public_deed:
          type:
            - string
            - 'null'
        registry_date:
          type:
            - string
            - 'null'
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: API key sent in the Authorization header.

````