SATIK API · V1 BETA
Report a delivery outcome
Requires a live key. Test-key outcomes are not added to delivery history. Duplicate reports for a verification are accepted idempotently.
POST
https://api.satik.in/v1/outcomesUse a server-side Bearer API key. Authentication guide →
Sample request (cURL)
Set the Postman variable SATIK_LIVE_KEY to a live key from your workspace.
curl --request POST 'https://api.satik.in/v1/outcomes' \
--header 'Authorization: Bearer {{SATIK_LIVE_KEY}}' \
--header 'Content-Type: application/json' \
--data '{
"verification_id": "{{VERIFICATION_ID}}",
"outcome": "delivered"
}'Requires a live key. Set VERIFICATION_ID to an existing live verification id from this workspace, not a ver_test_ id. This example records a real delivered outcome in delivery history; submit it only for an actual delivery. You can supply order_id instead when it uniquely identifies the verification.
In Postman, choose Import and paste this cURL command. These double-brace variables are resolved by Postman; for a terminal request, replace them with actual values. For local testing, replace https://api.satik.in/v1 with http://localhost:3001/api/v1, keeping the endpoint path.
Request schema
{
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"outcome"
],
"properties": {
"verification_id": {
"type": "string"
},
"order_id": {
"type": "string"
},
"outcome": {
"enum": [
"delivered",
"rto",
"customer_refused",
"address_issue",
"lost",
"cancelled"
]
},
"courier": {
"type": "string"
},
"delivered_at": {
"type": "string",
"format": "date-time"
}
}
}
}
}
}Responses and errors
HTTP 200
{
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"accepted": {
"type": "boolean"
},
"duplicate": {
"type": "boolean"
}
}
}
}
}
}HTTP 400
{
"description": "Request failed. Inspect error.code and request_id.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}HTTP 401
{
"description": "Request failed. Inspect error.code and request_id.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}HTTP 403
{
"description": "Request failed. Inspect error.code and request_id.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}HTTP 409
{
"description": "Request failed. Inspect error.code and request_id.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}HTTP 422
{
"description": "Request failed. Inspect error.code and request_id.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}HTTP 429
{
"description": "Request failed. Inspect error.code and request_id.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}HTTP 500
{
"description": "Request failed. Inspect error.code and request_id.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}HTTP 502
{
"description": "Request failed. Inspect error.code and request_id.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}HTTP 503
{
"description": "Request failed. Inspect error.code and request_id.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}HTTP 504
{
"description": "Request failed. Inspect error.code and request_id.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}