Skip to content

Answer one return

POST
/api/integration/v1/returns/{id}/ack
curl --request POST \
--url https://api.slflo.com/api/integration/v1/returns/ret_01J9/ack \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: example' \
--data '{ "external_number": "SO-0012345", "external_ref": "SO-0012345", "message": null, "outcome": "ACCEPTED", "reason_code": null }'

Kept at the version it answered: a return that changes later is pending again. Needs returns:write. Send an Idempotency-Key header; a retry with the same key and body answers the first answer again, with Idempotent-Replayed: true.

id
required
string

Slflo’s id of the return (credit note), from the return feed.

Example

ret_01J9
Idempotency-Key
required
string

Your key for this write, at most 100 characters (an order id or journal id works well). Required on every write; kept 7 days. Same key and body: the first answer again. Same key, other body: 422 IDEMPOTENCY_KEY_REUSED.

Media typeapplication/json
object
external_number
string
external_ref
string
message
string
outcome
string
reason_code
string

Example

{
"external_number": "SO-0012345",
"external_ref": "SO-0012345",
"message": null,
"outcome": "ACCEPTED",
"reason_code": null
}

Answer one return

Media typeapplication/json
object
data
required
object
ack
required
object
acked_at
required
string
acked_version
required
integer format: int64
external_number
string
external_ref
string
message
string
outcome
required
string
reason_code
string
id
required
string
number
string
result
required
string
status
required
string
version
required
integer format: int64

Example

{
"data": {
"ack": {
"acked_at": "2026-10-05T10:42:00Z",
"acked_version": 18343,
"external_number": "SO-0012345",
"external_ref": "SO-0012345",
"message": null,
"outcome": "ACCEPTED",
"reason_code": null
},
"id": "ord_01J9X",
"number": "SO-000123",
"result": "applied",
"status": "ERP_CONFIRMED",
"version": 18343
}
}

An error: the code says what, retryable whether to try again.

Media typeapplication/json
object
error
required
object
code
required

Stable code, e.g. SCOPE_MISSING, UNKNOWN_REFERENCE.

string
details
required

Field-level problems: {field, code}.

Array<object>
object
key
additional properties
string
message
required

What happened and how to fix it.

string
request_id
required

Quote it to support; it finds the server log.

string
retryable
required

Whether the same call may succeed later.

boolean

Example

{
"error": {
"code": "SCOPE_MISSING",
"details": [],
"message": "This client does not hold the invoices:read scope.",
"request_id": "req_01J9X4Q7T2M8P3NRT6V5WZ",
"retryable": false
}
}