Overview
Autopay removes the need for your customers to remember to pay their credit balance each month. You create a single autopay configuration on a lending account that answers three questions:- How much? — minimum due, statement balance, current balance, or a fixed amount
- When? — on the due date, a set number of days before the due date, or daily
- From where? — an internal Synctera account, or an external bank account debited via ACH
You never create an autopay record directly. Synctera creates one for each billing cycle (for
STATEMENT autopays) or on a recurring cadence (for SCHEDULED autopays), based on the active configuration.Prerequisites
Before you create an autopay configuration, make sure the following are in place.1
A lending account
Autopay applies to lending accounts — line of credit, secured charge, or unsecured charge. See Line of Credit Accounts, Secured Charge Accounts, or Unsecured Charge Accounts.You will need the
lending_account_id.2
A customer with an ownership relationship
Every autopay configuration is owned by a customer — either a person (
person_id) or a business (business_id). Exactly one must be provided.That customer must hold one of the following relationships with the lending account:PRIMARY_ACCOUNT_HOLDERACCOUNT_HOLDERJOINT_ACCOUNT_HOLDER
3
A funded payment source
For
INTERNAL_TRANSFER, you need the source_account_id of a Synctera platform account. The owning customer must hold one of the three ownership relationships above with that account too.For ACH, you need the external_account_id of a linked external account. The external account must be verified and must be owned by the same customer, and you must have the customer’s authorization to originate an outgoing ACH debit. See External Accounts.4
Statements enabled (for STATEMENT autopays)
STATEMENT autopays are triggered when a statement is generated for the billing cycle. The account must be producing statements with a minimum payment due and a payment due date. See Statements.5
API credentials
A valid API key for the Sandbox or Production environment. See Dev Setup.
Key concepts
Autopay type
autopay_type controls what triggers an autopay. It also constrains which amount and timing rules are valid.
STATEMENT is the typical credit card or line of credit use case: pay the bill each cycle. SCHEDULED is a sweep: pay down whatever is outstanding, every day.
Amount rules
amount_rule determines how much each payment is for.
FIXED_AMOUNT never overpays. Synctera pays the lesser of the fixed amount and the current balance.0 — the balance is already paid off, for example — the autopay is skipped rather than executed, and its status becomes SKIPPED.
Timing rules
timing_rule determines when the payment is initiated.
Payment method
payment_method determines how funds are moved, and which sub-object of payment_configs you must populate.
The
ach config also accepts two optional fields:
sec_code— Standard Entry Class code:WEB(default),CCD, orPPDis_same_day— send as same-day ACH; defaults tofalse
internal_transfer config accepts an optional subtype that sets the transaction subtype; it defaults to auto_payment.
Rule configs and payment configs
rule_configs and payment_configs are containers holding rule-specific and method-specific settings. You only populate the sub-object that matches the rule or method you selected.
For example, an autopay using DAYS_BEFORE_DUE and ACH populates rule_configs.days_before_due and payment_configs.ach, and leaves the rest out. An autopay using STATEMENT_BALANCE and ON_DUE_DATE may omit rule_configs entirely, since neither rule takes parameters.
Description template
description_template is an optional Go template that produces the ACH addenda record or the internal transfer memo. It supports these variables:
The template is rendered when the autopay record is created and stored on that record as
rendered_description. The default is Autopay.
Failure policy
failure_policy is required, and currently accepts a single value: NO_RETRY. A failed payment is not retried automatically. Configurable retry policies are planned but not yet available.
Statuses
An autopay configuration has astatus:
An autopay record has its own
status:
Amounts on an autopay record
Two fields carry the amount, and they mean different things:current_amount— for aPENDINGautopay, the projected amount, recomputed on every read from the config snapshot and current balances. It changes as the customer makes payments, receives refunds, or adds charges. For anEXECUTEDautopay it mirrorsexecuted_amount. ForSKIPPEDorFAILEDautopays with no execution it is0.executed_amount— the amount actually used at execution. Absent until the autopay executes; once set, it is the source of truth and never changes.
Because
current_amount is recalculated on read, it is what you should display in your UI for an upcoming payment — alongside a note such as “This amount may change if you make payments or receive refunds before the scheduled date.”Config snapshot and attempt history
Each autopay record carries aconfig_snapshot — a copy of the configuration as it stood when the record was created. Editing the configuration later does not retroactively change an already-created autopay.
attempt_history.attempts lists each execution attempt chronologically, with attempted_at, a status of SUCCESS, FAILED, or SKIPPED, an optional reason, and payment_attributes identifying the resulting payment (transaction_id for an internal transfer, ach_id for an ACH debit).
API workflow
1
Create the autopay configuration
POST /v2/autopay_configs creates the rule. Only one active configuration can exist per lending account; a second attempt returns 409.This example pays the full statement balance three days before the due date, from the customer’s own deposit account on the platform.201 response returns the configuration with its id and a status of ACTIVE:2
Let Synctera create the autopay records
You do not create autopays. For a
STATEMENT configuration, when a statement is generated Synctera creates an autopay with:scheduled_date— the due date, minusoffset_daysif you usedDAYS_BEFORE_DUEstatus—PENDINGconfig_snapshot— a copy of the rule as it stands nowstatement_idandbilling_period_id— the statement this autopay paysrendered_description— your description template, rendered
SCHEDULED configuration, autopays are created during end-of-day orchestration and have no billing_period_id.3
Show the customer their upcoming payment
List autopays for the account with Useful filters include
GET /v2/autopays, or fetch one with GET /v2/autopays/{autopay_id}.lending_account_id, autopay_config_id, status, statement_id, billing_period_id, scheduled_date (or the from_scheduled_date / to_scheduled_date range), and from_executed_amount / to_executed_amount.4
Check the outcome after execution
On the scheduled date Synctera recomputes the amount and acts:
- Amount greater than
0and payment succeeds →statusbecomesEXECUTED,executed_amountis set, andpayment_attributescarries thetransaction_idorach_id - Amount is
0→statusbecomesSKIPPED - Payment fails →
statusbecomesFAILED, andattempt_historyrecords the reason
GET /v2/autopays with status=FAILED to find payments that need attention. Because the only failure policy today is NO_RETRY, a failed autopay is not retried — the customer must make a manual payment.5
Cancel a single upcoming payment
To skip one scheduled payment without touching the underlying rule, use
PATCH /v2/autopays/{autopay_id} to set its status to SKIPPED. This is the only update the endpoint supports, and it only applies to a PENDING autopay.6
Update or pause the configuration
PATCH /v2/autopay_configs/{autopay_config_id} updates the config, the status, or both — for example to change the payment source, switch the amount rule, or pause autopay.config_snapshot, an edit does not change an autopay that has already been created. If a payment for the current cycle has already been initiated, the edit takes effect starting with the next cycle — surface that to the customer rather than letting them assume this month’s payment changed.7
Delete the configuration
DELETE /v2/autopay_configs/{autopay_config_id} removes the rule and returns 204. Use this when the customer turns autopay off for good; use PAUSED when they may turn it back on.An account relationship cannot be deleted while an active autopay configuration depends on it. Delete or repoint the autopay configuration first.
Validation rules
The API rejects a configuration with400 when these constraints are not met:
Things to watch for
Avoid double payments. If a payment has been initiated but has not yet posted, a second payment can overdraw the customer. Check for aPENDING or recently EXECUTED autopay before initiating a manual payment for the same cycle.
ACH settles on its own schedule. An outgoing ACH debit is initiated on the scheduled date but posts one to three business days later. The balance and any days-past-due calculation only change on the posting date. Build in lead time with offset_days rather than relying on the due date.
The projected amount moves. current_amount on a PENDING autopay is recomputed on every read. A manual payment or a posted refund lowers it; new charges can raise it when the rule is CURRENT_BALANCE. Read it fresh rather than caching it.
Failures are terminal for that cycle. With NO_RETRY as the only failure policy, a failed autopay stays failed. Detect it by polling and prompt the customer to pay manually or fix their payment source.

