DeclineCallback

The DeclineCallback API call is used to notify you of a failure in the Spark transaction process. It is typically triggered after a successful /TriggerTransaction response with a verdict of Approved , but when the flow subsequently fails for any reason before payment authorization.

This callback is essential for integrators to detect and gracefully handle cases where a session cannot proceed, such as when:

  • The consumer did not present a payment card, and the terminal timed out.
  • The consumer canceled the transaction on the Nayax Device.
  • A failure occurred on the device during the card presentation.
  • Other terminal-side errors that disrupt the flow.

In such cases, no payment authorization is granted, and the transaction flow is terminated. If appropriate, the integrator may choose to re-attempt the /TriggerTransaction method.

Request

Spark sends a POST request to the /spark/DeclineCallback endpoint:

{
  "MachineId": 71234996,
  "HwSerial": "0434334921100366",
  "SparkTransactionId": "12c7cec2-c690-4425-9a1f-db0db60e2d8c",
  "Status": {
    "Verdict": "Declined",
    "ErrorCode": 44,
    "ErrorDescription": "Timeout on POS Device"
  }
}

Request Parameters

The table below describes the parameters of the request:

Field

Type

Required

Description

MachineId

Integer

Yes

The ID of the vending machine or terminal

HwSerial

String

Yes

Serial number of the hardware terminal

SparkTransactionId

String

Yes

The unique identifier of the failed Spark transaction

Status

Object

Yes

An object indicating decline details

Status.Verdict

String

Yes

Always "Declined"

Status.ErrorCode

Integer

Yes

Decline reason code

  • 44: Timeout on POS Device
  • 45: Cancelled on POS Device
  • 38: Transaction Callback Failed

Status.ErrorDescription

String

Yes

Description of the decline reason

📘

Nayax Callback

This is a callback from Nayax, no response body is required. A simple 200 OK server acknowledgment is sufficient.