Update Transaction

When to use it: Use this webhook to update an existing transaction for a merchant account.

Note: To update the transaction status specifically, you must use the Sync Transaction Status webhook instead.

webhookType: UPDATE_TRANSACTION


Which fields can be updated

This webhook only changes the fields you send. Fields you leave out, or send as null, keep their current value.

  • Never updatable: the transaction identifier, the company, payType, transactionNumber and creationDate. They identify the transaction, so any value you send for them is ignored.
  • Account identifiers fill only once: iban, bicSwift, ukAccountNumber, ukSortCode, accountNumber, routingNumber, caRoutingNumber, bsbCode, clabe, cnaps, ifsc and bank on sourceAccount and destinationAccount. You can set them when the transaction does not have a value yet, for example when the sender details only become available after the payment was first reported. Once a field has a value it cannot be changed, and a different value is ignored. The rest of the update is still applied.
  • Freely updatable: every other field in the request body, including the alias and address fields of sourceAccount and destinationAccount.

Note: Updates are not applied to transactions that are already in a final status (ACCEPTED, SETTLED, FAILED, CANCELLED, POSTED, DECLINED, VOIDED, EXPIRED). Send the UPDATE_TRANSACTION webhook before the Sync Transaction Status webhook that moves the transaction to its final status.


Dynamic fields

If you would like to display any additional information related to a transaction, you can pass this information using dynamicFields field.

Request Body

{
  "transactionNumber": "string", // Represents the unique identifier for the transaction (REQUIRED)
  "payType": "string", // Represents the type of payment used in the transaction (REQUIRED). Enum: [  CARD, INBOUND_BANK_TRANSFER, OUTBOUND_BANK_TRANSFER, MANUAL, OUTBOUND_BANK_TRANSFER_DIRECT_DEBIT]
  "baseCurrency": "string", // Represents the original currency in which the transaction was initiated
  "baseTotal": "number (double)", // Represents the total in the original currency in which the transaction was initiated
  "merchant": "string", // The name of the merchant or company associated with the transaction
  "address": "string", // The address of client (merchant or company)
  "creationDate": "string", // Not updatable: the value set when the transaction was created is kept, and any value sent here is ignored. Format: "yyyy-MM-dd'T'HH:mm:ss.SSSX"
  "settlementDate": "string", // This is the date when transaction is settled. Format: "yyyy-MM-dd'T'HH:mm:ss.SSSX"
  "sourceAccount": {
    "alias": "string", // Account alias
    "iban": "string", // IBAN. Fill-once: can be set only while empty
    "bicSwift": "string", // BIC / SWIFT code. Fill-once
    "ukAccountNumber": "string", // UK account number. Fill-once
    "ukSortCode": "string", // UK sort code. Fill-once
    "accountNumber": "string", // Account number. Fill-once
    "routingNumber": "string", // US routing number (ABA). Fill-once
    "caRoutingNumber": "string", // Canadian routing number. Fill-once
    "bsbCode": "string", // Australian BSB code. Fill-once
    "clabe": "string", // Mexican CLABE. Fill-once
    "cnaps": "string", // Chinese CNAPS code. Fill-once
    "ifsc": "string", // Indian IFSC code. Fill-once
    "bank": "string", // Bank name. Fill-once
    "address": "string", // Account address
    "address2": "string", // Additional address info
    "city": "string", // City of the account
    "postalCode": "string", // Postal code
    "countryCode": "string" // Country code"
  },
  "destinationAccount": {
    "alias": "string", // Account alias
    "iban": "string", // IBAN. Fill-once: can be set only while empty
    "bicSwift": "string", // BIC / SWIFT code. Fill-once
    "ukAccountNumber": "string", // UK account number. Fill-once
    "ukSortCode": "string", // UK sort code. Fill-once
    "accountNumber": "string", // Account number. Fill-once
    "routingNumber": "string", // US routing number (ABA). Fill-once
    "caRoutingNumber": "string", // Canadian routing number. Fill-once
    "bsbCode": "string", // Australian BSB code. Fill-once
    "clabe": "string", // Mexican CLABE. Fill-once
    "cnaps": "string", // Chinese CNAPS code. Fill-once
    "ifsc": "string", // Indian IFSC code. Fill-once
    "bank": "string", // Bank name. Fill-once
    "address": "string", // Account address
    "address2": "string", // Additional address info
    "city": "string", // City of the account
    "postalCode": "string", // Postal code
    "countryCode": "string" // Country code
  },
  "balance": "number (double)", // The account balance after the transaction
  "corePaymentType":"payment-type-Global-SWIFT | payment-type-UK-BACS | payment-type-EU-SEPA-Target2 | payment-type-UK-Chaps | payment-type-EU-SEPA-Step2 | payment-type-virtual-debit-card-debit | payment-type-inter-ledger | payment-type-UK-FasterPayments | payment-type-fx | payment-type-card | payment-type-card-reserve | payment-type-EU-SEPA-Instant | payment-type-AU-NPP | payment-type-EU-Target2 | payment-type-AU-DE | payment-type-US-ACH | payment-type-SG-FAST | payment-type-US-Wires | SPEI | AUS-PAY-NET | EFT | NCS | CERTIS | STRAKSCLEARING-Instant | INTRADAGCLEARING | CHATS | GIRO_ZRT | IMPS | NEFT | SKN | IBG | NORWEGIAN-INTERBANK-CLEARING-SYSTEM | PESONET | ELIXIR | TRANSFOND_SENT_ACH | FAST | INTERNAL-TRANSFER | RIX | FEDACH | FEDWIRE | CHIPS | SEPA | TARGET2 | DIRECT_DEBIT_OUTBOUND", // Identifies the payment type used for this transaction 
  "country": "string", // the country where the account related to the card was opened
  "bankName": "string", // The name of banking provider card
  "bankLogo": "string", // The logo of the banking provider as a url of a png image
  "bankDescription": "string", // This is data associated with the transaction from the banking provider
  "failureReason": "string", // This field represents the reason for failure of the transaction, if applicable
  "dynamicFields": [
    {
      "label": {
        "en": "string", // Label in English
        "es": "string" // Label in Spanish
      },
      "valueId": "string", // Unique identifier for the dynamic field
      "value": "string" // Value of the dynamic field
    }
  ],
  "transactionTitle": "string", // If provided, we use it as transaction title shown to the end user
  "concept": "string", // This field represents the description of purpose
  "fxRate": "number (double)", // Exchange rate for the transaction
  "availableBalance": "number (double)", // This is used to show the available balance in looker
  "actualBalance": "number (double)", // This is used to show the actual balance in looker
  "reference": "string", // Reference related to this payment transaction
  "beneficiaryCurrencyAmount": "number (double)" // The amount in the currency supported by the Beneficiary’s account
}