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 when rules run, rulesExecutionSummary appears at the response root (see Rules Execution Summary).
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 rulesExecutionSummary at the root when rules execute.
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).
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: