---
title: "Submit ACH Authorization"
method: POST
path: "/checkout/ach-authorization"
tags: ["checkout"]
---

# Submit ACH Authorization

`POST /checkout/ach-authorization`

Submits an ACH authorization record for a payment previously created
via the ACH Checkout endpoint. `paymentId` and `customerId` are
reconciled against existing records — the payment must belong to the
calling merchant and its customer must match, or this is rejected.

## Headers

- `Authorization` string, required

## Request body

- SubmitAchAuthorizationRequest — Submits an ACH authorization record for a payment already created via `achCheckout`. `paymentId`/`customerId` are reconciled against existing records server-side — see `AchAuthorizationService.submitAuthorization`.
  - `renderedAuthorizationText` string, required — Exact disclosure text shown to the end user at consent time.
  - `consentTimestamp` string, date-time, required
  - `sessionAuthRef` string, required — Reference/ID for the customer's authenticated session at consent time.
  - `customerId` string, required
  - `paymentId` string, required

## Response `200`

Ok

- IAchAuthorizationString — Discriminated union keyed by `orderType`, matching the payload shape Tradepost sends on authorization submission (GitHub issue #17898).
  - `createdAt` string, date-time, required
  - `statusHistory` AuthorizationStatusEvent[], required
    - `eventType` 'archived' | 'reopened' | 'deadline_passed_no_shipment' | 'fully_filled', required
    - `occurredAt` string, date-time, required — When the status actually changed, as reported by the merchant.
    - `recordedAt` string, date-time, required — When Coinflow recorded this event.
  - `status` 'archived' | 'reopened' | 'deadline_passed_no_shipment' | 'fully_filled'
  - `accountLastFour` string, required
  - `routingNumber` string, required
  - `renderedAuthorizationText` string, required
  - `consentTimestamp` string, date-time, required
  - `sessionAuthRef` string, required
  - `merchant` string, required
  - `customerId` string, required
  - `paymentId` string, required — The founding ACH payment's external `paymentId` — this record's business key. Subsequent debits reference this same value via `IPayment.bankTransferInfo.achAuthorizationId`.
  - `_id` string, required

---

[API](https://skmtc.net/coinflow/apis/api-reference.md) · [All operations](https://skmtc.net/coinflow/apis/api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/coinflow/api-reference/revisions/6dc33da4df0f/schema)
