Archive (no new enrollments; running ones finish)
curl https://api.pacepayments.ai/v1/sequences/seq_01J40G4Q/archive \ --request POST \ --header 'Authorization: Bearer <token>'requests.post( "https://api.pacepayments.ai/v1/sequences/seq_01J40G4Q/archive", headers={ "Authorization": "Bearer <token>" })fetch('https://api.pacepayments.ai/v1/sequences/seq_01J40G4Q/archive', { method: 'POST', headers: { Authorization: 'Bearer <token>' }})using var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://api.pacepayments.ai/v1/sequences/seq_01J40G4Q/archive");request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", "<token>");
using var response = await client.SendAsync(request);$ch = curl_init("https://api.pacepayments.ai/v1/sequences/seq_01J40G4Q/archive");
curl_setopt($ch, CURLOPT_POST, true);curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: Bearer <token>']);
curl_exec($ch);
curl_close($ch);package main
import ( "fmt" "io" "net/http")
func main() { requestUrl := "https://api.pacepayments.ai/v1/sequences/seq_01J40G4Q/archive"
req, _ := http.NewRequest("POST", requestUrl, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close() body, _ := io.ReadAll(res.Body)
fmt.Println(res) fmt.Println(string(body))
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder() .url("https://api.pacepayments.ai/v1/sequences/seq_01J40G4Q/archive") .post(null) .addHeader("Authorization", "Bearer <token>") .build();
Response response = client.newCall(request).execute();Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Responses
Section titled “Responses”Successful Response
object
object
object
Your own taxonomy (dot.case). Three types the platform interprets itself, and each stops a sequence: payment.received, claim.withdrawn, claim.disputed.
There is deliberately NO allow_parallel: running two ladders against the same person at once only raises contact pressure, and that is the one thing this field must not be there for.
Hold - and no longer than the calling window permits.
The computed instant is intersected with the statutory calling window at
EXECUTION time. The actual wake-up may therefore fall later than
after.max. That is not imprecision; it is the rule that lets client
configuration narrow the window and never widen it.
object
A stable step identifier, unique within a sequence version.
object
CREATE an order and wait for its result.
The step does not dial by itself. It creates an ordinary call order that runs the full Model A lifecycle and emits the same events as one you submitted directly - which is why Model B has no second dial path and no second result derivation.
object
A stable step identifier, unique within a sequence version.
object
A window in the timezone of the person BEING CALLED, not ours.
object
Lokale Wanduhrzeit, 24 h, fuehrende Null.
Lokale Wanduhrzeit, 24 h, fuehrende Null.
object
Minimum gap between two attempts against the same person.
Scatters the redial instant within the permitted window, so the same person is not called at the same minute every day.
Only unreached attempts can trigger a retry. A conversation that actually took place is never a reason to call again.
What happens when your window and the permitted window do not intersect: defer moves the order into the permitted window (and the order may end up expired), reject refuses acceptance with a 422.
The decision corridor. The agent never goes beyond it.
object
object
The agent RECORDS THE WISH. It concludes nothing - the binding agreement is one you make afterwards, in writing. There is deliberately no second value.
object
A stable step identifier, unique within a sequence version.
Recorded verbatim as the enrollment’s exit_reason.
Only a draft can be activated, and an active version is immutable. At most one is active.
Example
{ "id": "seq_01J40G4Q", "status": "draft", "versions": [ { "trigger": { "signal_type": "payment.received", "enrollment_policy": "one_active_per_subject" }, "exit_conditions": [ { "type": "signal" } ], "steps": [ { "id": "wait_settle", "type": "wait", "after": { "min": "PT2H", "max": "PT2H" }, "until": { "local_time": "09:00" }, "skip_remaining_if": [ { "type": "signal" } ] } ], "status": "draft" } ]}No valid access token. Client action: request a new token from the token endpoint and retry once. Repeated 401 with a fresh token means the client registration is disabled - contact Pace, do not retry in a loop.
object
Examplegenerated
{ "type": "example", "title": "example", "status": 1, "code": "example", "detail": "example", "instance": "example", "trace_id": "example", "errors": [ { "pointer": "example", "code": "example", "message": "example" } ]}Authenticated but not permitted. insufficient_scope names the missing scope in detail; feature_not_enabled means the tenant lacks the feature; ip_not_allowlisted means the source IP is not on the client registration’s allowlist; simulate_not_allowed means a sandbox-only simulate block was sent to the live host. None of these are retryable.
object
Examplegenerated
{ "type": "example", "title": "example", "status": 1, "code": "example", "detail": "example", "instance": "example", "trace_id": "example", "errors": [ { "pointer": "example", "code": "example", "message": "example" } ]}Validation Error
object
object
object
Examplegenerated
{ "detail": [ { "loc": [ "example" ], "msg": "example", "type": "example", "input": "example", "ctx": {} } ]}HTTP rate limit (rate_limited) or execution capacity refusal (quota_exceeded, backlog_full) - two distinct layers. Wait for Retry-After, then retry the identical request with the same Idempotency-Key. backlog_full will not clear in seconds; back off to minutes.
object
Examplegenerated
{ "type": "example", "title": "example", "status": 1, "code": "example", "detail": "example", "instance": "example", "trace_id": "example", "errors": [ { "pointer": "example", "code": "example", "message": "example" } ]}Headers
Section titled “Headers”Seconds until the next attempt is permitted.
default
Section titled “default”Error (RFC 9457). Branch on code, never on title or detail.
object
Examplegenerated
{ "type": "example", "title": "example", "status": 1, "code": "example", "detail": "example", "instance": "example", "trace_id": "example", "errors": [ { "pointer": "example", "code": "example", "message": "example" } ]}