Skip to content

Webhook Event Types

This document provides detailed information about the different webhook event types supported by the StableMint API and their respective payload structures.

Overview

StableMint webhooks notify your application about various events related to payment processing. Each event type corresponds to a specific stage in the payment lifecycle and carries relevant data in its payload.

Event Types

InwardPaymentReconciled

This event is triggered when an inward payment (deposit) has been successfully reconciled.

Payload Structure

json
{
  "sessionId": "session_123456789",
  "amount": 100.00,
  "currency": "EUR",
  "paymentMethod": "bank_transfer",
  "paymentReference": "REF123456789",
  "notificationType": "InwardPaymentReconciled",
  "userId": "user_123456789",
  "userCountryCode": "DE",
  "idempotencyKey": "idem_123456789",
  "websiteReference": "order_123456789",
  "customFields": {
    "key1": "value1",
    "key2": "value2"
  },
  "accountBicCode": "DEUTDEFF",
  "accountName": "John Doe",
  "accountAddress": "123 Main St, Berlin, Germany",
  "accountIban": "DE89370400440532013000",
  "status": "reconciled"
}

Key Fields

FieldDescription
sessionIdUnique identifier for the payment session
amountThe amount of the reconciled payment
currencyThe currency of the payment (e.g., EUR)
paymentMethodThe method used for the payment
userCountryCodeThe country code of the debtor
accountBicCodeThe BIC code of the debtor's bank
accountNameThe name on the debtor's account
accountAddressThe address associated with the debtor's account
accountIbanThe IBAN of the debtor's account
statusAlways "reconciled" for this event type

InwardPaymentFailed

This event is triggered when an inward payment (deposit) fails to process.

Payload Structure

json
{
  "sessionId": "session_123456789",
  "amount": 100.00,
  "currency": "EUR",
  "paymentMethod": "bank_transfer",
  "paymentReference": "REF123456789",
  "notificationType": "InwardPaymentFailed",
  "userId": "user_123456789",
  "idempotencyKey": "idem_123456789",
  "websiteReference": "order_123456789",
  "customFields": {
    "key1": "value1",
    "key2": "value2"
  },
  "status": "failed",
  "reason": "abandoned"
}

Key Fields

FieldDescription
sessionIdUnique identifier for the payment session
amountThe amount of the attempted payment
currencyThe currency of the attempted payment (e.g., EUR)
paymentMethodThe method used for the payment attempt
paymentReferenceA unique reference for the payment
reasonThe reason why the payment failed
statusAlways "failed" for this event type

OutwardPaymentSent

This event is triggered when an outward payment (withdrawal) has been successfully sent.

Payload Structure

json
{
  "amount": 100.00,
  "currency": "EUR",
  "remittanceInformation": "Withdrawal REF123456789",
  "paymentReference": "REF123456789",
  "paymentMethod": "bank_transfer",
  "notificationType": "OutwardPaymentSent",
  "userId": "user_123456789",
  "userEmail": "[email protected]",
  "creditorBic": "DEUTDEFF",
  "creditorName": "Jane Smith",
  "creditorAddress": "456 Main St, Frankfurt, Germany",
  "creditorAccount": "DE89370400440532013000",
  "debtorBic": "SOGEFRPP",
  "debtorName": "StableMint",
  "debtorAccount": "FR7630007000110009970004942",
  "withdrawalReason": "regular_withdrawal",
  "idempotencyKey": "idem_123456789",
  "websiteReference": "withdrawal_123456789",
  "customFields": {
    "key1": "value1",
    "key2": "value2"
  },
  "status": "sent"
}

Key Fields

FieldDescription
amountThe amount of the withdrawal
currencyThe currency of the withdrawal (e.g., EUR)
paymentReferenceA unique reference for the withdrawal
paymentMethodThe method used for the withdrawal
remittanceInformationInformation that appears on the transaction statement
creditorBicThe BIC code of the creditor's bank
creditorNameThe name of the creditor (recipient)
creditorAccountThe IBAN of the creditor's account
debtorBicThe BIC code of the debtor's bank (StableMint)
debtorNameThe name of the debtor (StableMint)
debtorAccountThe IBAN of the debtor's account (StableMint)
withdrawalReasonThe reason for the withdrawal
statusAlways "sent" for this event type

OutwardPaymentFailed

This event is triggered when an outward payment (withdrawal) fails to process.

Payload Structure

json
{
  "amount": 100.00,
  "currency": "EUR",
  "remittanceInformation": "Withdrawal REF123456789",
  "paymentReference": "REF123456789",
  "notificationType": "OutwardPaymentFailed",
  "userId": "user_123456789",
  "userEmail": "[email protected]",
  "creditorBic": "DEUTDEFF",
  "creditorName": "Jane Smith",
  "creditorAddress": "456 Main St, Frankfurt, Germany",
  "creditorAccount": "DE89370400440532013000",
  "debtorBic": "SOGEFRPP",
  "debtorName": "StableMint",
  "debtorAccount": "FR7630007000110009970004942",
  "withdrawalReason": "regular_withdrawal",
  "failureReason": "invalid_account_details",
  "idempotencyKey": "idem_123456789",
  "websiteReference": "withdrawal_123456789",
  "customFields": {
    "key1": "value1",
    "key2": "value2"
  },
  "status": "failed"
}

Key Fields

FieldDescription
amountThe amount of the attempted withdrawal
currencyThe currency of the withdrawal (e.g., EUR)
paymentReferenceA unique reference for the withdrawal
remittanceInformationInformation that appears on the transaction statement
creditorBicThe BIC code of the creditor's bank
creditorNameThe name of the creditor (recipient)
creditorAccountThe IBAN of the creditor's account
withdrawalReasonThe reason for the withdrawal
failureReasonThe reason why the withdrawal failed
statusAlways "failed" for this event type

Common Fields Across Event Types

All event payloads include these common fields:

FieldDescription
notificationTypeThe type of notification/event
userIdThe unique identifier for the user
idempotencyKeyA key to ensure idempotent processing (if provided in the original request)
websiteReferenceYour reference for this transaction (if provided in the original request)
customFieldsAny additional custom data provided in the original request

Testing Webhook Events

You can test your webhook implementation by using the StableMint sandbox environment. This allows you to simulate different event types and ensure your application handles them correctly.

For more information on how to set up and handle webhooks, please refer to our Receiving Webhooks guide.

For any questions or assistance with webhook events, please contact us at [email protected].