Skip to content

Fetch a sequence incl. versions

GET
/v1/sequences/{sequence_id}
curl https://api.pacepayments.ai/v1/sequences/seq_01J40G4Q \
--header 'Authorization: Bearer <token>'
sequence_id
required
Sequence Id
string

Successful Response

Media typeapplication/json
Sequence
object
id
required
Id
string
key
required
Key
string
title
required
Title
string
status
required
Status
string
Allowed values: draft active archived
active_version
Any of:
integer
versions
required
Versions
Array<object>
>= 1 items
SequenceVersion
object
trigger
required
SequenceTrigger
object
signal_type
required
Signal Type

Your own taxonomy (dot.case). Three types the platform interprets itself, and each stops a sequence: payment.received, claim.withdrawn, claim.disputed.

string
>= 3 characters <= 64 characters /^[a-z][a-z0-9_]*(\.[a-z][a-z0-9_]*)+$/
enrollment_policy
Enrollment Policy

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.

string
default: one_active_per_subject
Allowed values: one_active_per_subject replace_active
exit_conditions
Exit Conditions
Array<object>
ExitCondition

When a ladder is broken off.

suppression is always implicitly present - a do-not-call entry stops every sequence whether or not it is listed here. You may still write it out, for clarity.

object
type
required
Type
string
signal_type
Any of:
string
<= 64 characters
steps
required
Steps
Array
One of: discriminator: type
WaitStep

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
id
required
Id

A stable step identifier, unique within a sequence version.

string
/^[a-z][a-z0-9_]{0,63}$/
type
required
Type
string
Allowed value: wait
after
Any of:
WaitAfter
object
min
Any of:

ISO-8601 duration, days/hours/minutes only (no months or years - those have no fixed length, and a wait window that varies by month is not a wait window).

string
/^P(?!$)(\d+D)?(T(?=\d)(\d+H)?(\d+M)?)?$/
max
Any of:

ISO-8601 duration, days/hours/minutes only (no months or years - those have no fixed length, and a wait window that varies by month is not a wait window).

string
/^P(?!$)(\d+D)?(T(?=\d)(\d+H)?(\d+M)?)?$/
until
Any of:
WaitUntil
object
date
Date
null
local_time
Any of:

Lokale Wanduhrzeit, 24 h, fuehrende Null.

string
/^([01]\d|2[0-3]):[0-5]\d$/
skip_remaining_if
Skip Remaining If
Array<object>
<= 10 items
ExitCondition

When a ladder is broken off.

suppression is always implicitly present - a do-not-call entry stops every sequence whether or not it is listed here. You may still write it out, for clarity.

object
type
required
Type
string
signal_type
Any of:
string
<= 64 characters
version
required
Version
integer
>= 1
status
required
Status

Only a draft can be activated, and an active version is immutable. At most one is active.

string
Allowed values: draft active archived
created_at
required
Created At
string format: date-time
activated_at
Any of:
string format: date-time
created_at
required
Created At
string format: date-time
updated_at
Any of:
string format: date-time
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.

Media typeapplication/problem+json
Problem
object
type
required
Type
string
title
required
Title
string
status
required
Status
integer
code
required
Code
string
detail
Any of:
string
instance
Any of:
string
trace_id
Any of:
string
errors
Any of:
Array<object>
FieldError
object
pointer
required
Pointer

RFC 6901 pointer to the offending field in the request body. Errors outside the body carry their source as the first segment (e.g. /query/limit).

string
code
required
Code

Stable field error code (open registry).

string
message
Any of:
string
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.

Media typeapplication/problem+json
Problem
object
type
required
Type
string
title
required
Title
string
status
required
Status
integer
code
required
Code
string
detail
Any of:
string
instance
Any of:
string
trace_id
Any of:
string
errors
Any of:
Array<object>
FieldError
object
pointer
required
Pointer

RFC 6901 pointer to the offending field in the request body. Errors outside the body carry their source as the first segment (e.g. /query/limit).

string
code
required
Code

Stable field error code (open registry).

string
message
Any of:
string
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

Media typeapplication/json
HTTPValidationError
object
detail
Detail
Array<object>
ValidationError
object
loc
required
Location
Array
msg
required
Message
string
type
required
Error Type
string
input
Input
ctx
Context
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.

Media typeapplication/problem+json
Problem
object
type
required
Type
string
title
required
Title
string
status
required
Status
integer
code
required
Code
string
detail
Any of:
string
instance
Any of:
string
trace_id
Any of:
string
errors
Any of:
Array<object>
FieldError
object
pointer
required
Pointer

RFC 6901 pointer to the offending field in the request body. Errors outside the body carry their source as the first segment (e.g. /query/limit).

string
code
required
Code

Stable field error code (open registry).

string
message
Any of:
string
Examplegenerated
{
"type": "example",
"title": "example",
"status": 1,
"code": "example",
"detail": "example",
"instance": "example",
"trace_id": "example",
"errors": [
{
"pointer": "example",
"code": "example",
"message": "example"
}
]
}
Retry-After
integer

Seconds until the next attempt is permitted.

RateLimit-Limit
integer
RateLimit-Remaining
integer
RateLimit-Reset
integer

Error (RFC 9457). Branch on code, never on title or detail.

Media typeapplication/problem+json
Problem
object
type
required
Type
string
title
required
Title
string
status
required
Status
integer
code
required
Code
string
detail
Any of:
string
instance
Any of:
string
trace_id
Any of:
string
errors
Any of:
Array<object>
FieldError
object
pointer
required
Pointer

RFC 6901 pointer to the offending field in the request body. Errors outside the body carry their source as the first segment (e.g. /query/limit).

string
code
required
Code

Stable field error code (open registry).

string
message
Any of:
string
Examplegenerated
{
"type": "example",
"title": "example",
"status": 1,
"code": "example",
"detail": "example",
"instance": "example",
"trace_id": "example",
"errors": [
{
"pointer": "example",
"code": "example",
"message": "example"
}
]
}