Webhook Reference¶
This reference describes the documented webhook payloads.
Payload version 1¶
Subscriptions¶
See the webhook overview for legacy subscription behavior.
- Sale
Fields¶
| Field | Type | Required | Description |
|---|---|---|---|
Request |
object | Yes | Request values included by the legacy sale event. |
Request.Amount |
number | No | Transaction amount. |
Request.CardDifferenceAmount |
number | No | Card difference amount supplied for the transaction. |
Request.CurrencyCode |
string or null | No | ISO currency code. |
Request.CustomerAddress |
string or null | No | Customer address, when supplied. |
Request.CustomerCity |
string or null | No | Customer city, when supplied. |
Request.CustomerCountry |
string or null | No | Customer country, when supplied. |
Request.CustomerEmail |
string or null | No | Customer email address, when supplied. |
Request.CustomerId |
integer | No | Existing customer identifier, when supplied. |
Request.CustomerPhone |
string or null | No | Customer phone number, when supplied. |
Request.CustomerState |
string or null | No | Customer state or region, when supplied. |
Request.InvoiceNumber |
string or null | No | Business invoice number, when supplied. |
Request.OrderReference |
string or null | No | Business order reference, when supplied. |
Request.PaymentLinkId |
string or null | No | Payment Link identifier, when supplied. |
Request.SURI |
string or null | No | Legacy SURI value, when supplied by the caller. |
Request.SaveCustomer |
boolean | No | Whether the customer should be saved. |
Request.SaveToken |
boolean | No | Whether the legacy flow requested token storage. |
Request.Street |
string or null | No | Cardholder billing street. |
Request.SurchargeAmount |
number | No | Surcharge amount supplied for the transaction. |
Request.TaxAmount |
number | No | Tax amount supplied for the transaction. |
Request.TipAmount |
number | No | Tip amount supplied for the transaction. |
Request.TransactionType |
integer | No | Transaction type used by the payment request. |
Request.UserTransactionNumber |
string or null | No | Client supplied transaction reference. |
Request.ZipCode |
string or null | No | Cardholder ZIP or postal code. |
Response |
object | Yes | Response values included by the legacy sale event. |
Response.Msg |
array or null | No | Supporting response messages. |
Response.ResponseCode |
integer | No | Numeric result code returned by payment processing. |
Response.Verbiage |
string or null | No | Processing message returned to the caller. |
Examples¶
API — webhook-v1-sale¶
{
"Request": {
"Amount": 10.0,
"ZipCode": "33101",
"Street": "100 Main Street",
"UserTransactionNumber": "sale-000123",
"TransactionType": 1,
"SURI": "example-suri",
"SurchargeAmount": 0.5,
"CardDifferenceAmount": 0.0,
"TaxAmount": 0.0,
"TipAmount": 1.0,
"SaveToken": false,
"CurrencyCode": "USD",
"SaveCustomer": false,
"CustomerId": 0,
"CustomerPhone": "5550100",
"CustomerEmail": "customer@example.test",
"CustomerCountry": "US",
"CustomerState": "FL",
"CustomerCity": "Miami",
"CustomerAddress": "100 Main Street",
"OrderReference": "order-123",
"PaymentLinkId": "link-123",
"InvoiceNumber": "invoice-123"
},
"Response": {
"ResponseCode": 200,
"Msg": [
"APPROVED"
],
"Verbiage": "APPROVED"
}
}
Payload version 2¶
Events¶
Availability
Payload version 2 is documented in advance. Availability depends on activation for your integration. Contact Blackstone support before using it.
- ClosePreauth: ClosePreauth endpoint; closes an existing preauthorization.
- DoFullRefund: DoFullRefund endpoint; processes a full refund.
- DoRefund: DoRefund endpoint; processes a partial refund.
- DoReversal: DoReversal endpoint; reverses an eligible transaction.
- DoVoid: DoVoid endpoint; voids an eligible transaction.
- ForceRetailSale: ForceRetailSale endpoint; processes a force retail sale.
- ProcessPreauth: ProcessPreauth endpoint; creates a card preauthorization.
- ProcessPreauthWithToken: ProcessPreauthWithToken endpoint; creates a tokenized preauthorization.
- RecurringSale: RecurringSale endpoint; processes a recurring card sale.
- Sale: Sale endpoint; charges the supplied payment method.
- SaleDebit: SaleDebit endpoint; processes a debit card sale.
- SaleWithApplePay: SaleWithApplePay endpoint; processes an Apple Pay sale.
- SaleWithGooglePay: SaleWithGooglePay endpoint; processes a Google Pay sale.
- SaleWithToken: SaleWithToken endpoint; charges a stored payment token.
Fields¶
| Field | Type | Required | Description |
|---|---|---|---|
EventId |
string | Yes | Stable identifier for this logical event. |
EventType |
string (Sale, SaleWithToken, SaleDebit, SaleWithApplePay, SaleWithGooglePay, RecurringSale, ForceRetailSale, DoRefund, DoFullRefund, DoVoid, DoReversal, ProcessPreauth, ProcessPreauthWithToken, ClosePreauth) | Yes | Exact public payment endpoint that produced the event. |
IsTest |
boolean | Yes | Whether the operation used the test environment. |
MerchantId |
string | Yes | Merchant identifier associated with the authorized request. |
OccurredAtUtc |
string | Yes | UTC time at which the event was produced. |
Outcome |
string (Succeeded, Failed, Unknown) | Yes | Known operation outcome at the time of publication. |
Request |
object | Yes | Safe request and business reference projection. |
Request.AdditionalTip |
number or null | No | Additional tip amount used by the operation. |
Request.Amount |
number or null | No | Transaction amount. |
Request.CardDifferenceAmount |
number or null | No | Card difference amount used by the operation. |
Request.CurrencyCode |
string or null | No | ISO currency code. |
Request.CustomerAddress |
string or null | No | Customer address, when supplied. |
Request.CustomerCity |
string or null | No | Customer city, when supplied. |
Request.CustomerCountry |
string or null | No | Customer country, when supplied. |
Request.CustomerEmail |
string or null | No | Customer email address, when supplied. |
Request.CustomerId |
integer or null | No | Existing customer identifier, when supplied. |
Request.CustomerPhone |
string or null | No | Customer phone number, when supplied. |
Request.CustomerState |
string or null | No | Customer state or region, when supplied. |
Request.InvoiceNumber |
string or null | No | Business invoice number, when supplied. |
Request.OrderReference |
string or null | No | Business order reference, when supplied. |
Request.OriginalServiceReferenceNumber |
string or null | No | Original service reference available to the endpoint. |
Request.PaymentLinkId |
string or null | No | Payment Link identifier, when supplied. |
Request.SaveCustomer |
boolean or null | No | Whether the operation requested customer storage. |
Request.ServiceReferenceNumber |
string or null | No | Service reference supplied by the caller, when available. |
Request.ServiceTransactionNumber |
string or null | No | Original transaction reference supplied to the endpoint. |
Request.Street |
string or null | No | Cardholder billing street. |
Request.SurchargeAmount |
number or null | No | Surcharge amount used by the operation. |
Request.TaxAmount |
number or null | No | Tax amount used by the operation. |
Request.TipAmount |
number or null | No | Tip amount used by the operation. |
Request.TransactionType |
integer or null | No | Transaction type used by the payment endpoint. |
Request.UserTransactionNumber |
string or null | No | Client supplied transaction reference. |
Request.ZipCode |
string or null | No | Cardholder ZIP or postal code. |
Response |
object | Yes | Safe response and operational result projection. |
Response.AppliedSurchargeAmount |
number or null | No | Actual surcharge applied by the operation. |
Response.AuthorizationNumber |
string or null | No | Authorization number returned for a successful operation. |
Response.Balance |
string or null | No | Remaining balance returned by the operation, when available. |
Response.CardType |
string or null | No | Card type returned by the processor, when available. |
Response.CustomerId |
integer or null | No | Customer identifier returned by the operation, when available. |
Response.ErrorCode |
string or null | No | Stable public code for a rejection before a processor response. |
Response.LastFour |
string or null | No | Last four card digits returned by the processor, when available. |
Response.Msg |
array or null | No | Supporting public response messages. |
Response.RefundedAmount |
number or null | No | Amount refunded by a successful full refund operation. |
Response.ResponseCode |
integer or null | No | Numeric result code, or null for a pre-API Portal rejection. |
Response.ServiceReferenceNumber |
string or null | No | Service reference returned by the operation. |
Response.Verbiage |
string or null | No | Processing message returned to the caller. |
Response.avs |
string or null | No | Address verification response code. |
Response.cv |
string or null | No | Card verification response code. |
Response.displayMessage |
string or null | No | Public display message for the operation result. |
Response.msoft_code |
string or null | No | Processor soft response code. |
Response.phard_code |
string or null | No | Processor hard response code. |
SchemaVersion |
integer | Yes | Webhook envelope schema version. v2 envelopes use value 2. |
Source |
string (Api, Portal) | Yes | Originating application: Api or Portal. |
Stage |
string (Validation, Processing, Completed) | Yes | Processing stage at which the event was emitted. |
Examples¶
API — webhook-v2-refund¶
{
"SchemaVersion": 2,
"EventId": "00000000-0000-4000-8000-000000000002",
"EventType": "DoFullRefund",
"OccurredAtUtc": "2026-09-08T18:25:43.12Z",
"MerchantId": "99554",
"IsTest": false,
"Source": "Api",
"Stage": "Completed",
"Outcome": "Succeeded",
"Request": {
"Amount": 4.0,
"ZipCode": null,
"Street": null,
"UserTransactionNumber": "refund-000124",
"ServiceTransactionNumber": "ABC123",
"OriginalServiceReferenceNumber": "ABC123",
"ServiceReferenceNumber": null,
"TransactionType": null,
"SurchargeAmount": null,
"CardDifferenceAmount": null,
"TaxAmount": null,
"TipAmount": null,
"AdditionalTip": null,
"CurrencyCode": null,
"SaveCustomer": null,
"CustomerId": null,
"CustomerPhone": null,
"CustomerEmail": null,
"CustomerCountry": null,
"CustomerState": null,
"CustomerCity": null,
"CustomerAddress": null,
"OrderReference": null,
"PaymentLinkId": null,
"InvoiceNumber": null
},
"Response": {
"ResponseCode": 200,
"Msg": [
"APPROVED"
],
"Verbiage": "APPROVED",
"ServiceReferenceNumber": "REF456",
"AuthorizationNumber": null,
"CardType": null,
"LastFour": null,
"Balance": "6.00",
"CustomerId": 0,
"AppliedSurchargeAmount": null,
"avs": null,
"cv": null,
"msoft_code": null,
"phard_code": null,
"displayMessage": "Refund approved",
"RefundedAmount": 4.0,
"ErrorCode": null
}
}
API — webhook-v2-rejected¶
{
"SchemaVersion": 2,
"EventId": "00000000-0000-4000-8000-000000000003",
"EventType": "Sale",
"OccurredAtUtc": "2026-09-08T18:25:43.12Z",
"MerchantId": "99554",
"IsTest": false,
"Source": "Api",
"Stage": "Validation",
"Outcome": "Failed",
"Request": {
"Amount": 0.0,
"ZipCode": null,
"Street": null,
"UserTransactionNumber": "sale-rejected-000125",
"ServiceTransactionNumber": null,
"OriginalServiceReferenceNumber": null,
"ServiceReferenceNumber": null,
"TransactionType": 0,
"SurchargeAmount": 0.0,
"CardDifferenceAmount": 0.0,
"TaxAmount": 0.0,
"TipAmount": 0.0,
"AdditionalTip": null,
"CurrencyCode": null,
"SaveCustomer": false,
"CustomerId": 0,
"CustomerPhone": null,
"CustomerEmail": null,
"CustomerCountry": null,
"CustomerState": null,
"CustomerCity": null,
"CustomerAddress": null,
"OrderReference": null,
"PaymentLinkId": null,
"InvoiceNumber": null
},
"Response": {
"ResponseCode": 502,
"Msg": [
"INVALID AMOUNT"
],
"Verbiage": "INVALID AMOUNT",
"ServiceReferenceNumber": null,
"AuthorizationNumber": null,
"CardType": null,
"LastFour": null,
"Balance": null,
"CustomerId": null,
"AppliedSurchargeAmount": null,
"avs": null,
"cv": null,
"msoft_code": null,
"phard_code": null,
"displayMessage": "Invalid amount",
"RefundedAmount": null,
"ErrorCode": null
}
}
API — webhook-v2-sale¶
{
"SchemaVersion": 2,
"EventId": "00000000-0000-4000-8000-000000000001",
"EventType": "Sale",
"OccurredAtUtc": "2026-09-08T18:25:43.12Z",
"MerchantId": "99554",
"IsTest": false,
"Source": "Api",
"Stage": "Completed",
"Outcome": "Succeeded",
"Request": {
"Amount": 10.0,
"ZipCode": "33101",
"Street": "100 Main Street",
"UserTransactionNumber": "sale-000123",
"ServiceTransactionNumber": null,
"OriginalServiceReferenceNumber": null,
"ServiceReferenceNumber": null,
"TransactionType": 1,
"SurchargeAmount": 0.5,
"CardDifferenceAmount": 0.0,
"TaxAmount": 0.0,
"TipAmount": 1.0,
"AdditionalTip": null,
"CurrencyCode": "USD",
"SaveCustomer": false,
"CustomerId": 0,
"CustomerPhone": "5550100",
"CustomerEmail": "customer@example.test",
"CustomerCountry": "US",
"CustomerState": "FL",
"CustomerCity": "Miami",
"CustomerAddress": "100 Main Street",
"OrderReference": "order-123",
"PaymentLinkId": "link-123",
"InvoiceNumber": "invoice-123"
},
"Response": {
"ResponseCode": 200,
"Msg": [
"APPROVED"
],
"Verbiage": "APPROVED",
"ServiceReferenceNumber": "ABC123",
"AuthorizationNumber": "123456",
"CardType": "VISA",
"LastFour": "1111",
"Balance": "10.00",
"CustomerId": 0,
"AppliedSurchargeAmount": 0.5,
"avs": "Y",
"cv": "M",
"msoft_code": "",
"phard_code": "",
"displayMessage": "Approved",
"RefundedAmount": null,
"ErrorCode": null
}
}
API — webhook-v2-unknown¶
{
"SchemaVersion": 2,
"EventId": "00000000-0000-4000-8000-000000000004",
"EventType": "Sale",
"OccurredAtUtc": "2026-09-08T18:25:43.12Z",
"MerchantId": "99554",
"IsTest": false,
"Source": "Api",
"Stage": "Processing",
"Outcome": "Unknown",
"Request": {
"Amount": 10.0,
"ZipCode": null,
"Street": null,
"UserTransactionNumber": "sale-unknown-000126",
"ServiceTransactionNumber": null,
"OriginalServiceReferenceNumber": null,
"ServiceReferenceNumber": null,
"TransactionType": 0,
"SurchargeAmount": 0.0,
"CardDifferenceAmount": 0.0,
"TaxAmount": 0.0,
"TipAmount": 0.0,
"AdditionalTip": null,
"CurrencyCode": null,
"SaveCustomer": false,
"CustomerId": 0,
"CustomerPhone": null,
"CustomerEmail": null,
"CustomerCountry": null,
"CustomerState": null,
"CustomerCity": null,
"CustomerAddress": null,
"OrderReference": null,
"PaymentLinkId": null,
"InvoiceNumber": null
},
"Response": {
"ResponseCode": 205,
"Msg": [
"The payment outcome could not be confirmed."
],
"Verbiage": "The payment outcome could not be confirmed.",
"ServiceReferenceNumber": null,
"AuthorizationNumber": null,
"CardType": null,
"LastFour": null,
"Balance": null,
"CustomerId": null,
"AppliedSurchargeAmount": null,
"avs": null,
"cv": null,
"msoft_code": null,
"phard_code": null,
"displayMessage": "The payment outcome could not be confirmed.",
"RefundedAmount": null,
"ErrorCode": null
}
}
Portal — webhook-v2-portal-closepreauth¶
{
"SchemaVersion": 2,
"EventId": "example-portal-event-04",
"EventType": "ClosePreauth",
"OccurredAtUtc": "2026-01-01T12:00:00Z",
"MerchantId": "101",
"IsTest": true,
"Source": "Portal",
"Stage": "Validation",
"Outcome": "Failed",
"Request": {
"Amount": 12.34,
"ZipCode": null,
"Street": null,
"UserTransactionNumber": null,
"ServiceTransactionNumber": "example-reference-001",
"OriginalServiceReferenceNumber": "example-reference-001",
"ServiceReferenceNumber": null,
"TransactionType": null,
"SurchargeAmount": null,
"CardDifferenceAmount": null,
"TaxAmount": null,
"TipAmount": null,
"AdditionalTip": null,
"CurrencyCode": null,
"SaveCustomer": null,
"CustomerId": null,
"CustomerPhone": null,
"CustomerEmail": null,
"CustomerCountry": null,
"CustomerState": null,
"CustomerCity": null,
"CustomerAddress": null,
"OrderReference": null,
"PaymentLinkId": null,
"InvoiceNumber": null
},
"Response": {
"ResponseCode": null,
"Msg": [
"Invalid pre-auth transaction id."
],
"Verbiage": "Invalid pre-auth transaction id.",
"ServiceReferenceNumber": null,
"AuthorizationNumber": null,
"CardType": null,
"LastFour": null,
"Balance": null,
"CustomerId": null,
"AppliedSurchargeAmount": null,
"avs": null,
"cv": null,
"msoft_code": null,
"phard_code": null,
"displayMessage": null,
"RefundedAmount": null,
"ErrorCode": "PORTAL_INVALID_PREAUTH_REFERENCE"
}
}
Portal — webhook-v2-portal-dorefund¶
{
"SchemaVersion": 2,
"EventId": "example-portal-event-05",
"EventType": "DoRefund",
"OccurredAtUtc": "2026-01-01T12:00:00Z",
"MerchantId": "101",
"IsTest": true,
"Source": "Portal",
"Stage": "Validation",
"Outcome": "Failed",
"Request": {
"Amount": 12.34,
"ZipCode": null,
"Street": null,
"UserTransactionNumber": null,
"ServiceTransactionNumber": "example-reference-001",
"OriginalServiceReferenceNumber": "example-reference-001",
"ServiceReferenceNumber": null,
"TransactionType": null,
"SurchargeAmount": null,
"CardDifferenceAmount": null,
"TaxAmount": null,
"TipAmount": null,
"AdditionalTip": null,
"CurrencyCode": null,
"SaveCustomer": null,
"CustomerId": null,
"CustomerPhone": null,
"CustomerEmail": null,
"CustomerCountry": null,
"CustomerState": null,
"CustomerCity": null,
"CustomerAddress": null,
"OrderReference": null,
"PaymentLinkId": null,
"InvoiceNumber": null
},
"Response": {
"ResponseCode": null,
"Msg": [
"Cashier is not allowed to process refunds."
],
"Verbiage": "Cashier is not allowed to process refunds.",
"ServiceReferenceNumber": null,
"AuthorizationNumber": null,
"CardType": null,
"LastFour": null,
"Balance": null,
"CustomerId": null,
"AppliedSurchargeAmount": null,
"avs": null,
"cv": null,
"msoft_code": null,
"phard_code": null,
"displayMessage": null,
"RefundedAmount": null,
"ErrorCode": "PORTAL_REFUND_NOT_ALLOWED"
}
}
Portal — webhook-v2-portal-forceretailsale¶
{
"SchemaVersion": 2,
"EventId": "example-portal-event-03",
"EventType": "ForceRetailSale",
"OccurredAtUtc": "2026-01-01T12:00:00Z",
"MerchantId": "101",
"IsTest": true,
"Source": "Portal",
"Stage": "Validation",
"Outcome": "Failed",
"Request": {
"Amount": 12.34,
"ZipCode": null,
"Street": null,
"UserTransactionNumber": null,
"ServiceTransactionNumber": null,
"OriginalServiceReferenceNumber": null,
"ServiceReferenceNumber": null,
"TransactionType": null,
"SurchargeAmount": null,
"CardDifferenceAmount": null,
"TaxAmount": null,
"TipAmount": null,
"AdditionalTip": null,
"CurrencyCode": null,
"SaveCustomer": null,
"CustomerId": null,
"CustomerPhone": null,
"CustomerEmail": null,
"CustomerCountry": null,
"CustomerState": null,
"CustomerCity": null,
"CustomerAddress": null,
"OrderReference": null,
"PaymentLinkId": null,
"InvoiceNumber": null
},
"Response": {
"ResponseCode": null,
"Msg": [
"Invalid amount."
],
"Verbiage": "Invalid amount.",
"ServiceReferenceNumber": null,
"AuthorizationNumber": null,
"CardType": null,
"LastFour": null,
"Balance": null,
"CustomerId": null,
"AppliedSurchargeAmount": null,
"avs": null,
"cv": null,
"msoft_code": null,
"phard_code": null,
"displayMessage": null,
"RefundedAmount": null,
"ErrorCode": "PORTAL_INVALID_AMOUNT"
}
}
Portal — webhook-v2-portal-processpreauth¶
{
"SchemaVersion": 2,
"EventId": "example-portal-event-02",
"EventType": "ProcessPreauth",
"OccurredAtUtc": "2026-01-01T12:00:00Z",
"MerchantId": "101",
"IsTest": true,
"Source": "Portal",
"Stage": "Validation",
"Outcome": "Failed",
"Request": {
"Amount": 12.34,
"ZipCode": null,
"Street": null,
"UserTransactionNumber": null,
"ServiceTransactionNumber": null,
"OriginalServiceReferenceNumber": null,
"ServiceReferenceNumber": null,
"TransactionType": null,
"SurchargeAmount": null,
"CardDifferenceAmount": null,
"TaxAmount": null,
"TipAmount": null,
"AdditionalTip": null,
"CurrencyCode": null,
"SaveCustomer": null,
"CustomerId": null,
"CustomerPhone": null,
"CustomerEmail": null,
"CustomerCountry": null,
"CustomerState": null,
"CustomerCity": null,
"CustomerAddress": null,
"OrderReference": null,
"PaymentLinkId": null,
"InvoiceNumber": null
},
"Response": {
"ResponseCode": null,
"Msg": [
"Invalid amount."
],
"Verbiage": "Invalid amount.",
"ServiceReferenceNumber": null,
"AuthorizationNumber": null,
"CardType": null,
"LastFour": null,
"Balance": null,
"CustomerId": null,
"AppliedSurchargeAmount": null,
"avs": null,
"cv": null,
"msoft_code": null,
"phard_code": null,
"displayMessage": null,
"RefundedAmount": null,
"ErrorCode": "PORTAL_INVALID_AMOUNT"
}
}
Portal — webhook-v2-portal-sale¶
{
"SchemaVersion": 2,
"EventId": "example-portal-event-01",
"EventType": "Sale",
"OccurredAtUtc": "2026-01-01T12:00:00Z",
"MerchantId": "101",
"IsTest": true,
"Source": "Portal",
"Stage": "Validation",
"Outcome": "Failed",
"Request": {
"Amount": 12.34,
"ZipCode": null,
"Street": null,
"UserTransactionNumber": null,
"ServiceTransactionNumber": null,
"OriginalServiceReferenceNumber": null,
"ServiceReferenceNumber": null,
"TransactionType": null,
"SurchargeAmount": null,
"CardDifferenceAmount": null,
"TaxAmount": null,
"TipAmount": null,
"AdditionalTip": null,
"CurrencyCode": null,
"SaveCustomer": null,
"CustomerId": null,
"CustomerPhone": null,
"CustomerEmail": null,
"CustomerCountry": null,
"CustomerState": null,
"CustomerCity": null,
"CustomerAddress": null,
"OrderReference": null,
"PaymentLinkId": "11111111-2222-4333-8444-555555555555",
"InvoiceNumber": "example-invoice-001"
},
"Response": {
"ResponseCode": null,
"Msg": [
"Invalid amount."
],
"Verbiage": "Invalid amount.",
"ServiceReferenceNumber": null,
"AuthorizationNumber": null,
"CardType": null,
"LastFour": null,
"Balance": null,
"CustomerId": null,
"AppliedSurchargeAmount": null,
"avs": null,
"cv": null,
"msoft_code": null,
"phard_code": null,
"displayMessage": null,
"RefundedAmount": null,
"ErrorCode": "PORTAL_INVALID_AMOUNT"
}
}
Portal — webhook-v2-portal-salewithapplepay¶
{
"SchemaVersion": 2,
"EventId": "example-portal-event-07",
"EventType": "SaleWithApplePay",
"OccurredAtUtc": "2026-01-01T12:00:00Z",
"MerchantId": "101",
"IsTest": true,
"Source": "Portal",
"Stage": "Validation",
"Outcome": "Failed",
"Request": {
"Amount": 12.34,
"ZipCode": null,
"Street": null,
"UserTransactionNumber": null,
"ServiceTransactionNumber": null,
"OriginalServiceReferenceNumber": null,
"ServiceReferenceNumber": null,
"TransactionType": null,
"SurchargeAmount": null,
"CardDifferenceAmount": null,
"TaxAmount": null,
"TipAmount": null,
"AdditionalTip": null,
"CurrencyCode": null,
"SaveCustomer": null,
"CustomerId": null,
"CustomerPhone": null,
"CustomerEmail": null,
"CustomerCountry": null,
"CustomerState": null,
"CustomerCity": null,
"CustomerAddress": null,
"OrderReference": null,
"PaymentLinkId": null,
"InvoiceNumber": null
},
"Response": {
"ResponseCode": null,
"Msg": [
"Missing Apple Pay token."
],
"Verbiage": "Missing Apple Pay token.",
"ServiceReferenceNumber": null,
"AuthorizationNumber": null,
"CardType": null,
"LastFour": null,
"Balance": null,
"CustomerId": null,
"AppliedSurchargeAmount": null,
"avs": null,
"cv": null,
"msoft_code": null,
"phard_code": null,
"displayMessage": null,
"RefundedAmount": null,
"ErrorCode": "PORTAL_WALLET_REQUIRED"
}
}
Portal — webhook-v2-portal-salewithgooglepay¶
{
"SchemaVersion": 2,
"EventId": "example-portal-event-08",
"EventType": "SaleWithGooglePay",
"OccurredAtUtc": "2026-01-01T12:00:00Z",
"MerchantId": "101",
"IsTest": true,
"Source": "Portal",
"Stage": "Validation",
"Outcome": "Failed",
"Request": {
"Amount": 12.34,
"ZipCode": null,
"Street": null,
"UserTransactionNumber": null,
"ServiceTransactionNumber": null,
"OriginalServiceReferenceNumber": null,
"ServiceReferenceNumber": null,
"TransactionType": null,
"SurchargeAmount": null,
"CardDifferenceAmount": null,
"TaxAmount": null,
"TipAmount": null,
"AdditionalTip": null,
"CurrencyCode": null,
"SaveCustomer": null,
"CustomerId": null,
"CustomerPhone": null,
"CustomerEmail": null,
"CustomerCountry": null,
"CustomerState": null,
"CustomerCity": null,
"CustomerAddress": null,
"OrderReference": null,
"PaymentLinkId": null,
"InvoiceNumber": null
},
"Response": {
"ResponseCode": null,
"Msg": [
"Missing Google Pay token."
],
"Verbiage": "Missing Google Pay token.",
"ServiceReferenceNumber": null,
"AuthorizationNumber": null,
"CardType": null,
"LastFour": null,
"Balance": null,
"CustomerId": null,
"AppliedSurchargeAmount": null,
"avs": null,
"cv": null,
"msoft_code": null,
"phard_code": null,
"displayMessage": null,
"RefundedAmount": null,
"ErrorCode": "PORTAL_WALLET_REQUIRED"
}
}
Portal — webhook-v2-portal-salewithtoken¶
{
"SchemaVersion": 2,
"EventId": "example-portal-event-06",
"EventType": "SaleWithToken",
"OccurredAtUtc": "2026-01-01T12:00:00Z",
"MerchantId": "101",
"IsTest": true,
"Source": "Portal",
"Stage": "Validation",
"Outcome": "Failed",
"Request": {
"Amount": 12.34,
"ZipCode": null,
"Street": null,
"UserTransactionNumber": null,
"ServiceTransactionNumber": null,
"OriginalServiceReferenceNumber": null,
"ServiceReferenceNumber": null,
"TransactionType": null,
"SurchargeAmount": null,
"CardDifferenceAmount": null,
"TaxAmount": null,
"TipAmount": null,
"AdditionalTip": null,
"CurrencyCode": null,
"SaveCustomer": null,
"CustomerId": null,
"CustomerPhone": null,
"CustomerEmail": null,
"CustomerCountry": null,
"CustomerState": null,
"CustomerCity": null,
"CustomerAddress": null,
"OrderReference": null,
"PaymentLinkId": null,
"InvoiceNumber": "example-invoice-001"
},
"Response": {
"ResponseCode": null,
"Msg": [
"Invalid amount."
],
"Verbiage": "Invalid amount.",
"ServiceReferenceNumber": null,
"AuthorizationNumber": null,
"CardType": null,
"LastFour": null,
"Balance": null,
"CustomerId": null,
"AppliedSurchargeAmount": null,
"avs": null,
"cv": null,
"msoft_code": null,
"phard_code": null,
"displayMessage": null,
"RefundedAmount": null,
"ErrorCode": "PORTAL_INVALID_AMOUNT"
}
}