Overview
The Status Inquiry response provides the current structured representation of a transaction, including its state, processing result, and associated metadata.
This structure is consistent across payment methods, combining mandatory core fields with optional extension blocks depending on the payment method and transaction context.
Response Model Overview
The response is composed of the following logical components:
- Result and Status Information
- Core Transaction Data
- Contextual Metadata
- Optional Extension Blocks
Top-Level Structure
A typical response follows this structure:
{
"returnStatus": { ... },
"paymentStatus": "...",
"paymentMethod": "...",
"transactionID": "...",
"transactionDateTime": "...",
"amount": { ... },
"merchant": { ... },
// Optional blocks
"token": { ... },
"paymentReference": { ... },
"mbwayMandate": { ... },
"merchantInitiatedTransaction": { ... }
}
Core Fields
returnStatus
Represents the technical result of the operation.
| Field | Type | Description |
|---|---|---|
statusCode | string | Machine-readable result code |
statusMsg | string | High-level result description |
statusDescription | string | Detailed explanation (optional) |
Important:
statusCode = "000"indicates a successful operation- This does not necessarily mean that the payment was successful
paymentStatus
Represents the business state of the transaction.
| Value | Meaning |
|---|---|
Success | Operation completed successfully |
Pending | Awaiting user or system action |
InProcessing | Transaction is being processed |
Declined | Payment was refused |
Error | Technical failure occurred |
Timeout | Operation was not completed within the expected time |
This is the primary field for business decision-making.
paymentMethod
Identifies the payment method used.
Typical values include:
CARDMBWAYREFERENCEMANDATE
transactionID
Unique identifier assigned by SIBS.
- Must match the
transactionIDused in the request - Serves as the primary identifier across all transaction operations
transactionDateTime
Timestamp of the latest known transaction state.
- Format: ISO 8601
- Represents the most recent state transition recorded by SIBS
amount
Transaction amount details.
| Field | Type | Description |
|---|---|---|
value | number | Transaction amount |
currency | string | ISO currency code |
merchant
Merchant-related information.
| Field | Type | Description |
|---|---|---|
transactionID | string | Merchant-defined transaction identifier |
terminalId | number | Terminal assigned by SIBS |
merchantName | string | Merchant display name |
Optional Extension Blocks
Additional blocks may be present depending on the payment method and transaction type.
Integrators must not assume their presence and must implement defensive parsing to handle missing blocks gracefully.
token
Present in tokenization scenarios.
| Field | Description |
|---|---|
tokenType | Type of token (e.g., Card) |
value | Token value |
paymentReference
Present for Multibanco Reference payments.
| Field | Description |
|---|---|
entity | Entity identifier |
reference | Payment reference |
expireDate | Expiration date |
status | Reference status |
mbwayMandate
Present in MB WAY mandate operations.
| Field | Description |
|---|---|
mandateIdentification | Mandate identifier |
mandateAction | Action performed (e.g., CRTN, CNCL, RNVT, RCTV, SSPN) |
mandateActionStatus | Result of the action (e.g., SCCS, RFSD) |
mandateType | Mandate type |
merchantInitiatedTransaction
Present in recurring payment scenarios.
| Field | Description |
|---|---|
type | Transaction type (e.g., UCOF, RCRR) |
amountQualifier | ESTIMATED or ACTUAL |
validityDate | Validity of the agreement |
schedule | Optional scheduling information |
Field Semantics and Interpretation
returnStatusreflects the technical execution resultpaymentStatusreflects the business outcome of the transaction
Both fields must be evaluated together.
Examples
| Scenario | returnStatus.statusCode | paymentStatus |
|---|---|---|
| Successful payment | 000 | Success |
| Awaiting user action | 000 | Pending |
| Payment declined | 10.x.xxxx | Declined |
| Technical error | 12.x.xxxx | Error |
Relationship with Webhook Payloads
The Status Inquiry response structure is aligned with webhook payloads, enabling:
- Reuse of parsing logic
- Consistent data handling across integration flows
- Simplified implementation
However:
- Webhooks represent events in time
- Status Inquiry returns the latest known transaction state
Handling Optional Fields
- Not all fields are present in every response
- Integrators must:
- Implement defensive parsing
- Avoid strict schema assumptions
- Handle missing fields gracefully
Consistency Guarantees
- The response reflects the most up-to-date transaction state available at query time
- It must be used to validate:
- Final transaction outcomes
- State transitions after webhook reception
For more details, refer to:
Example Response (Extended)
{
"returnStatus": {
"statusCode": "000",
"statusMsg": "Success"
},
"paymentStatus": "Success",
"paymentMethod": "CARD",
"transactionID": "123456789",
"transactionDateTime": "2025-02-20T10:15:30Z",
"amount": {
"value": 100.00,
"currency": "EUR"
},
"merchant": {
"transactionID": "order-123",
"terminalId": 12345,
"merchantName": "Demo Merchant"
},
"token": {
"tokenType": "Card",
"value": "abc123xyz"
}
}
Key Integration Principles
- Always use
paymentStatusfor business decision-making - Always validate final state using Status Inquiry
- Do not assume presence of optional fields
- Reuse the same parsing logic for webhooks and status responses
Summary
The Status Inquiry response structure provides a standardized and extensible representation of transaction data, enabling:
- Consistent integration across payment methods
- Unified handling of synchronous and asynchronous flows
- Reliable interpretation of transaction outcomes
It forms the foundation for robust, scalable, and maintainable payment integrations within the SIBS Payment Gateway ecosystem.