Cycle Logo

Webhooks Reference

An explanation of the key fields and values found in webhook notifications sent by Cycle.

Webhook Payload Structure

Fields included in Cycle Webhook notifications.

Top-Level Fields

FieldFormatDescription
OperationStringType of operation (Payment, ReversePayment)
IdStringUnique ID of the transaction
AmountStringTotal transaction amount
StatusStringCurrent status (Completed, Voided)
CreatedAtUTC, yyyy-MM-ddTHH:mm:ss.SSSZTimestamp when the operation was created
PaidAtSame as aboveTimestamp when payment was captured
AcquiredAtSame as aboveTimestamp when bank confirmation was received
DescriptionStringCustom description of the transaction
EventTypeStringNotification type (PAY, FISCAL, FINALIZE)
ReceiptEmailStringCustomer email for the receipt (if provided)
ReceiptPhoneStringCustomer phone number (optional)
ApprovalCodeStringCode from payment authorisation
InputtypeIntegerMethod used for payment input
AcquirerCodeStringAcquiring platform code (CASH, FIMI, etc.)
PaymentServiceStringPayment service name (e.g. cash, credit card)
CardTypeStringCard type (Visa, Mastercard, etc.)
TIMEStringTerminal identifier
MIDStringCycle Agent login / Merchant Identifier
MIDNameStringAgent display name or company name
CardStringMasked card number (e.g. 4111********1111)
CardIssuerNameStringName of issuing bank

Device Information (Device)

FieldFormatDescription
IdStringDevice ID
NameStringDevice name or label
ModelStringDevice model (e.g. Pixel 8a)

Fiscal Information (Fiscal)

Applicable only if fiscalisation is required/enabled. Not required in South Africa.

FieldFormatDescription
PrinterSerialNumberStringSerial number of the fiscal device (if used)
PrinterRegNumberStringDevice registration number
PrinterShiftStringCash register shift number
PrinterDocSerialNumberStringReceipt serial number
FiscalDocumentNumberStringFiscal document number
FiscalDocumentMarkStringFiscal signature
FiscalStorageNumberStringFiscal module serial number
FiscalDatetimeDateTimeTime of fiscalisation or receipt closure
FFDVersionIntegerFiscal firmware version
FiscalStatusIntegerFiscalisation result status
FiscalErrorIntegerFiscal error code (if any)
FiscalMessageStringFiscal message text (e.g. "OK. [0]")
PrinterUserNameStringLegal name of merchant or entity
PrinterTaxIdStringTax ID (e.g. South African SARS VAT number)
PrinterPayAddressStringMerchant settlement address
PrinterPayPlaceStringPoint of sale location
PrinterTaxSystemIntegerTax regime code
PrinterTaxSystemNameStringDescription of tax regime (e.g. "VAT Standard")
PrinterInternetPaymentOnlyBooleanTrue if internet-only payments are allowed
PrinterOFDNameStringName of the fiscal data operator (if any)
PrinterOFDTaxIdStringTax ID of fiscal data operator

Product Line Items (Products, Purchases)

FieldFormatDescription
TitleStringProduct name or label
CodeStringInternal or external product code
PriceDecimalPrice per unit
QuantityIntegerQuantity sold
TaxCodeArrayApplicable tax codes
GTINStringGlobal Trade Item Number (barcode)
SerialStringSerial number (if marked product)
MarkTypeStringMark type for traceable goods
MarkCheckResultStringResult of mark check (e.g. [M+])
OnlineMarkCheckResultStringBrand check result in online mode

Additional Fields

FieldFormatDescription
ResultCodeIntegerInternal result/error code
ResultMessageStringExplanation of the result code (if any)
RRNStringRetrieval Reference Number
ExtIDStringExternal transaction ID (if provided)
PANStringMasked card number
ReaderTypeStringType of card reader (e.g. D60, TTK)
ReaderIdStringReader unique ID
ReaderSNStringReader serial number
DvcAppBuildStringDevice app version
InvoiceStringCycle-issued invoice/check reference
ClientIDIntegerCycle internal client ID
ClientNameStringClient legal name
BranchIDIntegerID of branch (if used)
BranchNameStringBranch name
ExtTransDataStringExternal metadata or reference info
PaymentIDString(For refunds) Original payment ID
PaymentInvoiceString(For refunds) Original transaction invoice
PartialReverseString"1" = Partial refund, "0" = Full refund
OfflineModeBooleanTrue if transaction was done offline
OfflineDateTimeClientDateTimeTimestamp on device during offline payment

Operation Types

TypeDescription
PaymentStandard payment transaction
ReversePaymentCancellation or refund of a transaction

Transaction Status

TypeDescription
CompletedPayment or refund completed successfully
VoidedPayment was reversed or cancelled

Event Types

TypeDescription
PAYSuccessful transaction notification
FISCALFiscal data notification (if applicable)
FINALIZENotification of unsuccessful payment attempt

Input Type (Payment Source)

TypeDescription
0Unknown
1Manual card entry
2Magnetic stripe
3Chip card (EMV)
4Contactless / Tap
5Linked card
7External terminal
8Prepaid account
9Postpaid account
10Cash payment
30Pay-by-link
100Recurring payment

Acquirer Codes

TypeDescription
ISO8583ISO8583 protocol + acquirer bank routing
CASHCash transaction
PREPAIDPrepaid transaction
CREDITPostpaid (credit facility)
OUTERCARDExternal card terminal
MANUALManual card input

Refund Type (PartialReverse)

TypeDescription
0Full refund
1Partial refund

Refund References

TypeDescription
PaymentIDThe original Cycle transaction ID for the payment being refunded/cancelled
PaymentInvoiceThe original Cycle invoice number for the refunded/cancelled transaction

Fiscal Tags and Alias Fields

If fiscalisation is enabled, webhook payloads may include fiscal tags for marked goods. Otherwise, product items are returned using alias fields:

  • Title – Name of the item
  • Price – Unit price
  • Quantity – Quantity purchased
  • TaxCode, GTIN, etc. – Optional tax or traceability metadata

These fields reflect what was originally submitted when initiating the transaction. If fiscal tags were used, they will appear in the notification. If alias fields were used instead, the notification will include those.