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

# Process an eCheck sale

> Initiates a direct debit (ACH) from the customer's bank account. If the debit request is accepted, the transaction proceeds to settlement; otherwise the response includes the failure reason. Note that ACH returns can occur days after acceptance.



## OpenAPI

````yaml /openapi.json post /v1/transactions/echeck/sale
openapi: 3.0.0
info:
  title: Jupico - OpenAPI 3.0
  description: >-
    The Jupico API lets Service Providers onboard merchants, process card and
    eCheck (ACH) payments, run hosted payment pages, manage recurring billing,
    send payouts, and query every resource. All endpoints use HTTPS with Basic
    authentication and accept and return JSON. Endpoints are grouped by
    workflow: onboard merchants first, then accept payments, then move funds and
    report.
  termsOfService: https://help.jupico.com/references-and-resources/legal
  contact:
    email: support@jupico.com
  license:
    name: Jupico License
    url: https://jupico.com
  version: 1.0.5
servers:
  - url: https://sandbox-platform.jupico.com
security:
  - basicAuth: []
tags:
  - name: Status
    description: Health check for the Jupico API.
  - name: Onboarding Invites
    description: >-
      Create and send invites that onboard merchants through the Jupico-hosted
      flow, with optional pre-filled identity, fees, and payout bank account
      data.
  - name: Provisioning
    description: >-
      Onboard merchants from your own UI. Collect onboarding data and submit it
      through the provisioning chain: applicant → application → submerchant.
  - name: Session
    description: >-
      Create browser authorization sessions for the Jupico web components, so
      card and bank account data is tokenized client-side and never touches your
      servers.
  - name: Tokenization
    description: >-
      Convert one-time tokens from the web components into permanent Jupico
      tokens, or tokenize raw card data if your systems are PCI DSS compliant.
  - name: Customer
    description: >-
      Create and manage customer records that payments, subscriptions,
      installments, and invoices link to.
  - name: Card Transactions
    description: >-
      Process credit and debit card transactions using tokenized card data:
      sale, authorization, capture, void, refund, and rollback.
  - name: eCheck Transactions
    description: >-
      Debit customer bank accounts via eCheck (ACH): sale, void, refund,
      rollback, and bank account tokenization.
  - name: Checkouts
    description: >-
      Hosted checkout sessions where customers complete payment on a
      Jupico-hosted page.
  - name: Payment Links
    description: >-
      Shareable links that open a Jupico-hosted payment page — no integration
      code needed at the point of sharing.
  - name: Invoices
    description: Create and email invoices that customers pay online.
  - name: Subscriptions
    description: >-
      Recurring billing. Plans define billing schedules and pricing models;
      subscriptions enroll customers against a stored payment token.
  - name: Installments
    description: Split a fixed total into scheduled payments with an optional deposit.
  - name: Payouts
    description: >-
      Send funds from a submerchant's available balance to a tokenized bank
      account with on-demand payout instructions.
  - name: Query
    description: >-
      Search and report across every resource: transactions, merchants,
      settlements, balances, disputes, fees, and more. All query endpoints
      accept the same filter, sort, and pagination envelope — see the Query
      Capabilities guide.
paths:
  /v1/transactions/echeck/sale:
    post:
      tags:
        - eCheck Transactions
      summary: Process an eCheck sale
      description: >-
        Initiates a direct debit (ACH) from the customer's bank account. If the
        debit request is accepted, the transaction proceeds to settlement;
        otherwise the response includes the failure reason. Note that ACH
        returns can occur days after acceptance.
      operationId: eCheckSale
      requestBody:
        $ref: '#/components/requestBodies/eCheckSale'
      responses:
        '200':
          $ref: '#/components/responses/eCheckOperationResponse'
      security:
        - basicAuth: []
components:
  requestBodies:
    eCheckSale:
      description: >-
        API support various types of use. Required fields are defined by the
        most basic call. For other uses be sure to send the required information
        defined in the schema and examples.
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/eCheckSale'
          examples:
            eCheckSale:
              $ref: '#/components/examples/eCheckSale'
  responses:
    eCheckOperationResponse:
      description: Successful eCheck operation
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                type: object
                properties:
                  status:
                    type: string
                    description: Current status.
                  transactionId:
                    type: string
                    description: Unique identifier of the original transaction.
                  operation:
                    type: string
                    description: >-
                      Transaction operation type (for example, sale,
                      authorization, refund).
                  subMerchantId:
                    type: string
                    description: Unique identifier of the submerchant.
                  amount:
                    type: number
                    description: The amount of the transaction.
                  balanceAmount:
                    type: number
                    description: >-
                      Remaining balance on the transaction after captures,
                      refunds, and voids.
                  customerId:
                    type: string
                    description: Unique identifier of the customer.
                  parentId:
                    type: string
                    description: >-
                      Identifier of the parent transaction (for example, the
                      authorization behind a capture).
                  referenceNumber:
                    type: string
                    description: Processor reference number for the transaction.
                  referenceId:
                    type: string
                    description: >-
                      Your own reference for this transaction. Returned in
                      responses and query results for reconciliation.
                  taxAmount:
                    type: number
                    description: Sales tax portion of the amount.
                  txDate:
                    type: string
                    description: Date and time of the transaction (ISO 8601).
                  description:
                    type: string
                    description: Free-text description.
                  dynamicFee:
                    type: object
                    properties:
                      fixed:
                        type: number
                        description: Fixed portion of the dynamic fee.
                      discountRatePerc:
                        type: number
                        description: >-
                          Percentage portion of the dynamic fee, applied to the
                          transaction amount.
                    description: >-
                      Fee added to the transaction at processing time and
                      itemized separately.
                  paymentMethod:
                    type: object
                    properties:
                      cc:
                        type: object
                        properties:
                          card:
                            type: object
                            description: Card details.
                        description: Card payment method details.
                      eCheck:
                        type: object
                        properties:
                          accountType:
                            type: string
                            description: Bank account type, such as `checking`.
                          routingNumber:
                            type: string
                            description: 9-digit ABA routing number.
                          accountNumberLast4:
                            type: string
                            description: Last 4 digits of the bank account number.
                          checkNumber:
                            type: string
                            description: Check number to record with this debit.
                          checkType:
                            type: string
                            description: Type of check used for the debit.
                          bankAccToken:
                            type: string
                            description: Token of the bank account.
                        description: eCheck (ACH) acceptance settings.
                    description: Details of the payment method used.
                  billing:
                    type: object
                    properties:
                      address:
                        type: string
                        description: Street address, including number.
                      city:
                        type: string
                        description: City name.
                      zipCode:
                        type: string
                        description: ZIP or postal code.
                      state:
                        type: string
                        description: Two-letter US state code.
                      email:
                        type: string
                        description: Email address of the payer.
                      name:
                        type: string
                        description: Full name of the payer.
                      phone:
                        type: string
                        description: Phone number of the payer.
                    description: Billing contact and address details for the payer.
                  approvalNumber:
                    type: string
                    description: Approval code returned by the issuing bank.
                  shipping:
                    type: object
                    properties:
                      address:
                        type: string
                        description: Street address, including number.
                      city:
                        type: string
                        description: City name.
                      zipCode:
                        type: string
                        description: ZIP or postal code.
                      state:
                        type: string
                        description: Two-letter US state code.
                      email:
                        type: string
                        description: Email address of the recipient.
                      name:
                        type: string
                        description: Name of the recipient.
                      phone:
                        type: string
                        description: Phone number of the recipient.
                    description: Shipping contact and address details for the order.
                  paymentToken:
                    type: object
                    properties:
                      type:
                        type: string
                        description: Type of token supplied.
                      token:
                        type: object
                        properties:
                          provider:
                            type: string
                            description: >-
                              Payment provider that issued the token (for
                              example, `jupico`).
                          token:
                            type: string
                            description: The token value.
                          accountType:
                            type: string
                            description: Bank account type, such as `checking`.
                          routingLast4Digits:
                            type: string
                            description: Last 4 digits of the routing number.
                          accountLast4Digits:
                            type: string
                            description: Last 4 digits of the bank account number.
                          accountHolderName:
                            type: string
                            description: Name on the bank account.
                        description: Token payload returned by tokenization.
                    description: >-
                      The payment credential to charge: a one-time token from
                      the web component or a stored Jupico token.
                description: The response payload.
              success:
                type: boolean
                description: >-
                  Whether the request was processed successfully. Declines
                  return HTTP 200 with `success: false`.
              message:
                type: string
                description: Human-readable result message.
              code:
                type: string
                description: Machine-readable result code. See the Error Codes reference.
  schemas:
    eCheckSale:
      type: object
      properties:
        subMerchantId:
          type: string
          description: Unique identifier of the submerchant.
        amount:
          type: number
          description: The amount to debit.
        paymentToken:
          type: object
          properties:
            type:
              type: string
              description: Type of token supplied.
            token:
              type: object
              description: Token payload returned by tokenization.
          description: >-
            The payment credential to charge: a one-time token from the web
            component or a stored Jupico token.
        description:
          type: string
          description: Free-text description.
        customerId:
          type: string
          description: Unique identifier of the customer.
        checkNumber:
          type: string
          description: Check number to record with this debit.
        checkType:
          type: string
          description: Type of check used for the debit.
        taxAmount:
          type: number
          description: Sales tax portion of the amount.
        referenceId:
          type: string
          description: >-
            Your own reference for this transaction. Returned in responses and
            query results for reconciliation.
        dynamicFee:
          type: object
          properties:
            fixed:
              type: number
              description: Fixed portion of the dynamic fee.
            discountRatePerc:
              type: number
              description: >-
                Percentage portion of the dynamic fee, applied to the
                transaction amount.
          description: >-
            Fee added to the transaction at processing time and itemized
            separately.
        billing:
          type: object
          properties:
            address:
              type: string
              description: Street address, including number.
            city:
              type: string
              description: City name.
            zipCode:
              type: string
              description: ZIP or postal code.
            state:
              type: string
              description: Two-letter US state code.
            email:
              type: string
              description: Email address of the payer.
            name:
              type: string
              description: Full name of the payer.
            phone:
              type: string
              description: Phone number of the payer.
          description: Billing contact and address details for the payer.
        shipping:
          type: object
          properties:
            address:
              type: string
              description: Street address, including number.
            city:
              type: string
              description: City name.
            zipCode:
              type: string
              description: ZIP or postal code.
            state:
              type: string
              description: Two-letter US state code.
            email:
              type: string
              description: Email address of the recipient.
            name:
              type: string
              description: Name of the recipient.
            phone:
              type: string
              description: Phone number of the recipient.
          description: Shipping contact and address details for the order.
        metadata:
          $ref: '#/components/schemas/metadata'
      required:
        - subMerchantId
        - paymentToken
        - amount
    metadata:
      type: object
      description: >-
        metadata is an object that can host as much as 50 key-value pairs, where
        the keys can be at most 40 char length and can’t include the characters
        “[“ or “]”, and the values must be strings and cannot exceed 500 chars
        [Learn more about metadata](https://docs.jupico.com/docs/metadata#/)
      additionalProperties:
        type: string
        maxLength: 500
      x-key-max-length: 40
  examples:
    eCheckSale:
      summary: Example request
      value:
        subMerchantId: jpt-sim-md-1
        amount: 11.24
        paymentToken:
          type: echeck
          token:
            provider: jupico
            token: 8b728fb4-976c-43c1-8402-04c23ac18861
        description: Hamburger Check
        customerId: 5e669f03003e68007c42bb04
        taxAmount: 1.99
        checkNumber: '12345678'
        checkType: personal
        billing:
          address: 123 Silent Hill
          city: Danbury
          zipCode: '12345'
          state: CT
          email: mail@mail.com
          name: John Doe
          phone: '123123123'
        shipping:
          address: 123 Silent Hill
          city: Danbury
          zipCode: '12345'
          state: CT
          email: mail@mail.com
          name: John Doe
          phone: '123123123'
        metadata:
          test: test
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic

````