POST /transactions in monitoring context: currency conversion, payment methods, examples
POST /transactions (response shape, errors, all fields) is:
Create transaction (API Reference β Transactions)
There youβll find the actual response: transaction is an object (the created transaction), and rulesResult includes executionTimeMs, auditId, isNewAudit, and rulesExecutionSummary.
This page adds use-case context for monitoring: currency conversion, payment-method examples (PIX, card, multi-currency), and detailed field descriptions.
executeRules: true (default), the rules engine runs and the response includes rulesResult and rulesExecutionSummary.
Authorization header:
string (min length: 1)PAYMENT - Purchase or payment to merchantTRANSFER - Transfer between accounts/usersWITHDRAWAL - Cash withdrawal or account debitDEPOSIT - Deposit or account creditREFUND - Refund of a previous transactionCHARGEBACK - Chargeback disputeREVERSAL - Transaction reversalFEE - Fee or commission chargeADJUSTMENT - Balance adjustmentOTHER - Other transaction typeenum - 'PAYMENT' | 'TRANSFER' | 'WITHDRAWAL' | 'DEPOSIT' | 'REFUND' | 'CHARGEBACK' | 'REVERSAL' | 'FEE' | 'ADJUSTMENT' | 'OTHER'CREATED - Transaction created (default)PROCESSING - Transaction being processedSUSPENDED - Transaction temporarily suspendedSENT - Transaction sent/transmittedEXPIRED - Transaction expiredDECLINED - Transaction declined/rejectedREFUNDED - Transaction refunded/reversedSUCCESSFUL - Transaction completed successfullyenum - 'CREATED' | 'PROCESSING' | 'SUSPENDED' | 'SENT' | 'EXPIRED' | 'DECLINED' | 'REFUNDED' | 'SUCCESSFUL' (default: βCREATEDβ)Important: Once a transaction reaches a closed state, it cannot transition back to an open state. This ensures transaction integrity and proper audit trails.number (> 0)string (length: 3)string (enum, optional)Possible Values:CARD - Credit or debit card paymentACH - Automated Clearing House (US bank transfer)PIX - Brazilian instant payment systemTED - Brazilian wire transfer (TransferΓͺncia EletrΓ΄nica DisponΓvel)BOLETO - Brazilian payment slipWALLET - Digital wallet (PayPal, Venmo, etc.)SWIFT - SWIFT international wire transferIBAN - IBAN-based bank transferCBU - Argentine bank account (Clave Bancaria Uniforme)CVU - Argentine virtual account (Clave Virtual Uniforme)DEBIN - Argentine instant debit systemGENERIC_BANK_ACCOUNT - Generic bank account transferMPESA - M-Pesa mobile money (Kenya)UPI - Unified Payments Interface (India)CHECK - Check paymentECHECK - Electronic checkQR_CODE - QR code paymentONLINE_PAYMENT - Generic online paymentWITHDRAWAL_ORDER - Withdrawal order"PIX" or "CARD"string (uuid, optional)string (optional)string (max length: 500, optional)string (length: 2, optional)paymentDetails or any other keys) and they will be stored.Type: object (optional, validated structure; extra keys allowed)Key Difference:originCountry (direct field) = Entityβs countryoriginDetails.country = Device/IP country at transaction time (can differ if traveling)deviceId (string) - Device identifierdeviceFingerprint (string) - Device fingerprint hashdeviceType (enum) - mobile | desktop | tablet | pos | atmuserAgent (string) - Browser user agentipAddress (string) - IP address (validated format)country (string) - ISO 2-letter codecity (string) - City nameregion (string) - State/provincelatitude (number) - Latitude (-90 to 90)longitude (number) - Longitude (-180 to 180)timezone (string) - Timezone identifierpaymentDetails (object) - Payment-specific information for the origin. You can send any payment-related fields here:
accountNumber (string) - Account numberaccountType (enum) - checking | savings | business | personalbankCode (string) - Bank codebankName (string) - Bank nameroutingNumber (string) - Routing number (US)swiftCode (string) - SWIFT/BIC codeiban (string) - IBAN (International Bank Account Number)pixKey (string) - PIX keypixType (enum) - PIX key type: email | phone | cpf | cnpj | randomcardLast4 (string) - Last 4 digits of cardcardBrand (string) - Card brand (Visa, Mastercard, Amex, etc.)cardholderName (string) - Name on cardcardBin (string) - First 6 digits of card (BIN)cardType (enum) - credit | debit | prepaidcardCountry (string) - Card issuing country (ISO 2-letter)cardExpiry (string) - Expiration date (MM/YY)cardFingerprint (string) - Unique card fingerprint/hash for trackingwalletAddress (string) - Cryptocurrency wallet addresswalletType (string) - Wallet type (e.g., βmetamaskβ, βcoinbaseβ)blockchain (string) - Blockchain network (e.g., βethereumβ, βbitcoinβ)tokenSymbol (string) - Token symbol (e.g., βETHβ, βBTCβ, βUSDTβ)walletId (string) - Digital wallet identifierwalletProvider (string) - Wallet provider (e.g., βpaypalβ, βvenmoβ, βcashappβ)walletEmail (string) - Email associated with walletisVpn (boolean) - VPN detectedisTor (boolean) - Tor network detectedisProxy (boolean) - Proxy detectedgovernmentAccount (boolean) - Government account flagstring (uuid, optional)string (optional)string (max length: 500, optional)string (length: 2, optional)paymentDetails or any other keys) and they will be stored.Type: object (optional, validated structure; extra keys allowed)Supported Fields:Merchant Info:mcc (string) - Merchant Category Code (4 digits, ISO 18245)mccDescription (string) - MCC description (e.g., βRestaurantsβ)merchantId (string) - Merchant identifiermerchantName (string) - Merchant namemerchantType (string) - Merchant type/categorydeviceId (string) - Device identifierdeviceType (enum) - pos | online | mobile | atmipAddress (string) - IP address (validated format)country (string) - ISO 2-letter codecity (string) - City nameregion (string) - State/provincepaymentDetails (object) - Payment-specific information for the destination. You can send any payment-related fields here:
accountNumber (string) - Destination account numberaccountType (enum) - checking | savings | business | merchantbankCode (string) - Bank codebankName (string) - Bank nameroutingNumber (string) - Routing number (US)swiftCode (string) - SWIFT/BIC codeiban (string) - IBAN (International Bank Account Number)pixKey (string) - PIX keypixType (enum) - PIX key type: email | phone | cpf | cnpj | randomcardLast4 (string) - Last 4 digits of cardcardBrand (string) - Card brand (Visa, Mastercard, Amex, etc.)cardholderName (string) - Name on cardcardBin (string) - First 6 digits of card (BIN)cardType (enum) - credit | debit | prepaidcardCountry (string) - Card issuing country (ISO 2-letter)cardExpiry (string) - Expiration date (MM/YY)cardFingerprint (string) - Unique card fingerprint/hash for trackingwalletAddress (string) - Cryptocurrency wallet addresswalletType (string) - Wallet type (e.g., βmetamaskβ, βcoinbaseβ)blockchain (string) - Blockchain network (e.g., βethereumβ, βbitcoinβ)tokenSymbol (string) - Token symbol (e.g., βETHβ, βBTCβ, βUSDTβ)walletId (string) - Digital wallet identifierwalletProvider (string) - Wallet provider (e.g., βpaypalβ, βvenmoβ, βcashappβ)walletEmail (string) - Email associated with walletcryptoExchange (boolean) - Is cryptocurrency exchangehighRisk (boolean) - High risk merchant flagprivateSector (boolean) - Private sector flagstring (max length: 50, optional)Common Examples:mobile_app - Mobile applicationweb_browser - Web browserpos_terminal - Point of sale terminalapi - Direct API integrationatm - ATM machinephone_banking - Phone bankingbranch - Physical branchcall_center - Call centerpartner_api - Partner integrationtransaction_reason_type enum. If omitted, the system uses WITHOUT_REASON. Not required β existing integrations remain valid.Type: string (enum, optional, default: WITHOUT_REASON)Common values (full enum has 60+ values):WITHOUT_REASON - No specific reason (default when omitted)INSUFFICIENT_FUNDS - Insufficient fundsLIMIT_EXCEEDED, DAILY_LIMIT_EXCEEDED, MONTHLY_LIMIT_EXCEEDED, TRANSACTION_LIMIT_EXCEEDEDACCOUNT_BLOCKED, ACCOUNT_FROZEN, ACCOUNT_CLOSEDCARD_EXPIRED, CARD_BLOCKED, CARD_LOST_OR_STOLEN, INVALID_CARD, INVALID_ACCOUNTFRAUD_SUSPECTED, COMPLIANCE_BLOCK, SANCTIONS_MATCH, AML_ALERT, RISK_SCORE_THRESHOLDMERCHANT_BLOCKED, COUNTRY_RESTRICTION, CURRENCY_NOT_SUPPORTED, CHANNEL_NOT_ALLOWEDSYSTEM_ERROR, TIMEOUT, INVALID_AMOUNT, KYC_PENDING, KYC_REJECTEDEXPIRED, CANCELLED_BY_USER, CANCELLED_BY_MERCHANT, REFUSED_BY_ISSUER, DO_NOT_HONORINVALID_PIN, PIN_TRIES_EXCEEDED, INSUFFICIENT_LIQUIDITY, VALIDATION_FAILED, OTHERobject (optional)Supported Fields:Address Information:country (string) - ISO 3166-1 alpha-2 country code (e.g., βUSβ, βBRβ, βARβ)countryName (string) - Full country namecity (string) - City nameregion (string) - State or provinceaddress (string) - Full addressstreet (string) - Street namestreetNumber (string) - Street numberpostalCode (string) - Postal/ZIP codeneighborhood (string) - Neighborhood or districtlatitude (number) - Latitude coordinate (-90 to 90)longitude (number) - Longitude coordinate (-180 to 180)timezone (string) - IANA timezone (e.g., βAmerica/Sao_Pauloβ)placeId (string) - Google Places ID or similar identifierobject (optional)Supported Fields:Device Identification:deviceId (string) - Unique device identifierexternalId (string) - Your external device IDplatform (enum) - Device platform: android, ios, web, desktop, mobile, tablet, pos, atmosName (string) - Operating system name (e.g., βAndroidβ, βiOSβ, βWindowsβ, βmacOSβ)osVersion (string) - OS version (e.g., β13.0β, β16.4β)manufacturer (string) - Device manufacturer (e.g., βSamsungβ, βAppleβ)model (string) - Device model (e.g., βGalaxy S22β, βiPhone 14β)brand (string) - Device branddeviceName (string) - User-assigned device namebrowser (string) - Browser name (e.g., βChromeβ, βSafariβ, βFirefoxβ)browserVersion (string) - Browser versionuserAgent (string) - Full user agent stringisEmulator (boolean) - Whether device is an emulatorisRooted (boolean) - Whether device is rooted (Android)isJailbroken (boolean) - Whether device is jailbroken (iOS)ipAddress (string) - IP address (validated format)isVpn (boolean) - Whether connection is through VPNisTor (boolean) - Whether connection is through TorisProxy (boolean) - Whether connection is through proxydeviceFingerprint (string) - Unique device fingerprint hash for trackingscreenResolution (string) - Screen resolution (e.g., β1920x1080β)language (string) - Device languagetimezone (string) - Device timezonestring (max length: 1000, optional)string (max length: 100, optional)object (optional, validated structure)Supported Standard Fields:tags (object) - Key-Value Categorization Systemtags field allows you to add custom key-value pairs for flexible categorization, filtering, and workflow management. This is particularly useful for:{ "key1": "value1", "key2": "value2" }Common Tag Patterns:risk_level (string) - βlowβ, βmediumβ, βhighβ, βcriticalβsource (string) - βapiβ, βwebβ, βmobileβ, βbatchβ, βimportβchannel (string) - βonlineβ, βbranchβ, βatmβ, βcall_centerβ, βpartnerβreviewed (boolean) - false (pending review), true (reviewed)category (string) - βpayrollβ, βsupplierβ, βrefundβ, βinvestmentβ, βloanβ, βbill_paymentβpriority (string) - βlowβ, βnormalβ, βhighβ, βurgentβteam (string) - βcomplianceβ, βfraudβ, βsupportβ, βoperationsβcampaign (string) - Marketing or business campaign identifierapproved_by (string) - User or system that approvedrequires_approval (boolean) - Manual approval requiredcustomer_segment (string) - βvipβ, βregularβ, βnewβ, βdormantβproduct_type (string) - βsavingsβ, βinvestmentβ, βloanβ, βtransferβregion (string) - βnorthβ, βsouthβ, βlatamβ, βemeaβ, βapacβbusiness_unit (string) - βretailβ, βcorporateβ, βwealthβ, βsmeβpurpose (string) - Transaction purpose (e.g., βsalaryβ, βinvoice_paymentβ)frequency (string) - Transaction frequency (e.g., βmonthlyβ, βone-timeβ)contract_number (string) - Contract number (for business payments)enhanced_due_diligence (boolean) - EDD flagblock_reason (string) - Reason for blockingcompliance_alert (boolean) - Compliance alert flagstring (ISO 8601 datetime, optional)boolean (default: true)CARD - Credit/debit card paymentACH - ACH transfer (US)PIX - Brazilian instant paymentTED - Brazilian bank transfer (TED)BOLETO - Brazilian boleto paymentWALLET - Digital wallet paymentSWIFT - International SWIFT transferIBAN - IBAN-based transferCBU - Argentine bank account (CBU)CVU - Argentine virtual wallet (CVU)DEBIN - Argentine direct debitGENERIC_BANK_ACCOUNT - Generic bank account transferMPESA - M-Pesa mobile moneyUPI - India UPI paymentCHECK - Physical checkECHECK - Electronic checkQR_CODE - QR code paymentONLINE_PAYMENT - Generic online paymentWITHDRAWAL_ORDER - Withdrawal orderPERSONAL - Personal accountBUSINESS - Business accountMERCHANT - Merchant accountSAVINGS - Savings accountCHECKING - Checking accountINVESTMENT - Investment accountESCROW - Escrow accountPREPAID - Prepaid accountOTHER - Other account type5411 - Grocery Stores5812 - Restaurants5999 - Miscellaneous Retail6011 - ATM/Cash Withdrawal7995 - Gamblingcurrency differs from your organizationβs base currency, automatic conversion is triggeredamount (original) or amountInUsd (converted to USD)| Source | Description | When Used |
|---|---|---|
ms-provider | Real-time rates from currency microservice | Primary source |
cache-fallback | Cached rates when service unavailable | Fallback (< 1h old) |
no-conversion | No conversion needed (same currency) | Same as base |
client-provided | Custom rate provided by client | Optional override |
transaction.amount, transaction.currency β original amount and currencytransaction.amountInUsd β converted amount in USD (null if conversion failed or not applicable)transaction.exchangeRate, transaction.rateSource β rate used and source (e.g. ms-provider)amountInUsd in rules to ensure consistent thresholds regardless of transaction currency.
transaction.amountInUsd and transaction.exchangeRate will be nullamountInUsd will use original amount as fallback if conversion failedtransaction as an object (single created transaction).
true. Includes success, executed, rulesTriggered, executionTimeMs, auditId, isNewAudit, rulesExecutionSummary. Full list: Create transaction.rulesResult.rulesExecutionSummary. Only present when executeRules is true and the rules engine ran. Summary of which rules matched (hit) vs did not match (no hit), executed actions, and total score. Omitted when executeRules is false. See Rules Execution Summary for the full structure and a complete example.active, shadow), conditions (array of { field, value, operator? }), actions (alerts, suggestion, status, assignedUser).{ name?, type?, severity?, description? }), suggestion (BLOCK | SUSPEND | FLAG, highest weight), status (entity status applied, if any), assignedUser ({ userId }, if any), customKeys (array of strings, optional) β custom action keys from rules that matched (e.g. require_kyc, flag_for_review). Present when any matched rule has a custom action with a key; used for integrations/workflows.shadow status.| Status | Description | Can Transition To |
|---|---|---|
CREATED | Transaction created (initial state) | PROCESSING, SUSPENDED, SENT, EXPIRED, DECLINED, SUCCESSFUL |
PROCESSING | Transaction being processed | SUSPENDED, SENT, EXPIRED, DECLINED, REFUNDED, SUCCESSFUL |
SUSPENDED | Transaction temporarily suspended | PROCESSING, SENT, EXPIRED, DECLINED, REFUNDED, SUCCESSFUL |
| Status | Description | Note |
|---|---|---|
SENT | Transaction sent/transmitted | Final state - no further transitions |
EXPIRED | Transaction expired | Final state - no further transitions |
DECLINED | Transaction declined/rejected | Final state - no further transitions |
REFUNDED | Transaction refunded/reversed | Final state - no further transitions |
SUCCESSFUL | Transaction completed successfully | Final state - no further transitions |
rateSource field indicates how the exchange rate was obtained: