### Example Payment Request with Pass-through 3DS Source: https://github.com/devotts/jpmorgan-api-docs/blob/main/docs/payment-enhancement/3_d_secure___payments_developer_portal.md This JSON example demonstrates how to structure a payment request when using an independent 3DS authentication provider. It shows how to populate the `paymentMethodType.card.authentication` object with data obtained from the 3DS provider, including the ECI value, authentication value, transaction ID, and protocol version. ```json { "amount": 14500, "currency": "USD", "paymentMethodType": { "card": { "accountNumber": "4110144110144115", "expiry": { "month": 5, "year": 2040 }, "authentication": { "electronicCommerceIndicator": "05", "threeDS": { "authenticationValue": "AABAIcJIo5DIzAgVAkiAAAAAAA=", "authenticationTransactionId": "01ade6ae340005c681c3a1890418", "threeDSProgramProtocol": 2 } } } }, "accountHolder": { "firstName": "John", "lastName": "Doe", "email": "example@example.com", "billingAddress": { "line1": "1234 Main Street", "city": "New York", "postalCode": "10111" }, "phone": { "countryCode": "1", "phoneNumber": "1234567890" } }, "merchant": { "merchantSoftware": { "companyName": "John's Gym", "productName": "Cart" } } } ``` -------------------------------- ### Incremental Authorization Response Example (JSON) Source: https://github.com/devotts/jpmorgan-api-docs/blob/main/docs/how-to/update_a_payment___payments_developer_portal.md Example JSON response received after successfully performing an incremental authorization. It shows the updated transaction state, amounts, and payment details, including the transaction ID and approval code. ```Json { "transactionId": "bd359c65-f17b-4be5-b02f-e43db6eead6b", "requestId": "3aec628c-3b71-4177-b1ef-35532b644db4", "transactionState": "AUTHORIZED", "responseStatus": "SUCCESS", "responseCode": "APPROVED", "responseMessage": "Transaction approved by Issuer", "paymentMethodType": { "card": { "cardType": "VI", "cardTypeName": "VISA", "maskedAccountNumber": "411234XXXXXX4113", "networkResponse": { "addressVerificationResult": "NOT_REQUESTED", "networkTransactionId": "013227692169878", "paymentAccountReference": "Q1J4Z28RKA1EBL470G9XYG90R5D3E" }, "paymentTokens": [ { "tokenProvider": "SAFETECH", "responseStatus": "ERROR", "tokenServiceResponseMessage": "Merchant record not found or not enabled for Acquirer Token", "tokenServiceResponseCode": "BAD_REQUEST" } ] } }, "initiatorType": "CARDHOLDER", "accountOnFile": "NOT_STORED", "isVoid": false, "transactionDate": "2025-08-15T11:44:21.778Z", "approvalCode": "tst394", "hostMessage": "Approved", "amount": 15000, "currency": "USD", "remainingAuthAmount": 15000, "totalAuthorizedAmount": 15000, "hostReferenceId": "U1AiWGxAmCKu58itIp54J3", "merchant": { "merchantId": "000017904371", "merchantSoftware": { "companyName": "Payment company", "productName": "Application name" }, "merchantCategoryCode": "4899" }, "paymentRequest": { "paymentRequestId": "bd359c65-f17b-4be5-b02f-e43db6eead6b", "paymentRequestStatus": "PENDING", "authorizations": [ { "authorizationId": "bd359c65-f17b-4be5-b02f-e43db6eead6b", "amount": 15000, "transactionStatusCode": "AUTHORIZED", "authorizationType": "INCREMENTAL" } ] } } ``` -------------------------------- ### Fraud Check Request Body JSON Example Source: https://github.com/devotts/jpmorgan-api-docs/blob/main/docs/how-to/obtain_a_fraud_score___payments_developer_portal.md Example JSON payload required for the fraud check API request. It includes details about the amount, currency, fraud score parameters, account holder, payment method, shipping information, and merchant details. ```JSON { "amount": 100, "currency": "USD", "fraudScore": { "cardholderBrowserInformation": "MOZILLA/4.0", "isFraudRuleReturn": true, "aNITelephoneNumber": "5131234567", "fraudCheckShoppingCart": "T=Tickets&I=FridayNightBaseballGame&D=SeatsBehindHomePlate&Q=2&P=20000&|", "sessionId": "d38e582e27e147483811b79281fnakdlsq", "websiteRootDomainName": "MERCHANT", "fencibleItemAmount": 1230 }, "accountHolder": { "deviceIPAddress": "127.0.0.1", "birthDate": "2000-09-20", "driverLicenseNumber": "G123-123-12-123-1", "addressCountryCode": "US", "email": "example@example.com", "firstName": "John", "lastName": "Doe", "referenceId": "12122012", "consumerIdCreationDate": "2021-09-01", "phone": { "countryCode": 1, "phoneNumber": "1235551234" }, "billingAddress": { "line1": "1 NORTHEASTERN", "line2": "BLVD", "city": "BEDFORD", "state": "NH", "postalCode": "03109", "countryCode": "US" } }, "paymentMethodType": { "card": { "expiry": { "month": 5, "year": 2040 }, "accountNumber": "5204740000001002" } }, "shipTo": { "shippingAddress": { "line1": "123 Some Street", "line2": "Apartment 3b", "city": "Clearwater", "state": "FL", "postalCode": "33607", "countryCode": "USA" }, "fullName": "John Doe", "shippingDescription": "Overnight", "phone": { "countryCode": 1, "phoneNumber": "1235557890" } }, "merchant": { "merchantSoftware": { "companyName": "Payment Company", "productName": "Application Name", "version": "1.0" }, "merchantCategoryCode": "4899" } } ``` -------------------------------- ### Manual Full Capture API Response (JSON) Source: https://github.com/devotts/jpmorgan-api-docs/blob/main/docs/how-to/authorize_and_capture_a_payment___payments_developer_portal.md This is an example JSON response received after successfully submitting a manual full capture request. It includes details about the transaction state, response status, payment method, amounts, and references. ```json { "transactionId": "7ffceee3-adf7-42ba-8c02-77fb5ef008ed", "requestId": "3c65b967-8624-426f-8a81-6a63c9c74781", "transactionState": "CLOSED", "responseStatus": "SUCCESS", "responseCode": "ACCEPTED", "responseMessage": "Transaction accepted", "paymentMethodType": { "card": { "cardType": "VI", "cardTypeName": "VISA", "maskedAccountNumber": "401200XXXXXX0026", "networkResponse": { "addressVerificationResult": "NOT_REQUESTED", "additionalData": { "electronicCommerceIndicator": "7" }, "networkTransactionId": "014071692163531" } } }, "captureMethod": "NOW", "initiatorType": "CARDHOLDER", "accountOnFile": "NOT_STORED", "isVoid": false, "transactionDate": "2024-03-11T21:46:18.685Z", "approvalCode": "tst420", "hostMessage": "Approved", "isAmountFinal": true, "amount": 1000, "currency": "USD", "remainingRefundableAmount": 1000, "remainingAuthAmount": 0, "totalAuthorizedAmount": 1000, "hostReferenceId": "V3oEIjve7csJdiqTskFsF2", "merchant": { "merchantId": "000017904374", "merchantSoftware": { "companyName": "Payment Company", "productName": "Application Name", "version": "1.235" }, "merchantCategoryCode": "4899" }, "paymentRequest": { "paymentRequestId": "7ffceee3-adf7-42ba-8c02-77fb5ef008ed", "paymentRequestStatus": "CLOSED", "authorizations": [ { "authorizationId": "7ffceee3-adf7-42ba-8c02-77fb5ef008ed", "amount": 1000, "transactionStatusCode": "CAPTURED", "authorizationType": "INITIAL" } ], "captures": [ { "captureId": "7ffceee3-adf7-42ba-8c02-77fb5ef008ed", "amount": 1000, "transactionStatusCode": "CLOSED", "captureRemainingRefundableAmount": 1000 } ] } } ``` -------------------------------- ### Direct Pay Push Funds Request Body (JSON) Source: https://github.com/devotts/jpmorgan-api-docs/blob/main/docs/payment-enhancement/direct_pay___payments_developer_portal.md Example JSON request body for initiating a Direct Pay push funds transaction via the /payments endpoint. It specifies the transaction type as 'ACCOUNT_TO_ACCOUNT', the reason as 'CREDIT_CARD_PAYMENT', and the direct payment type as 'PUSH_FUNDS'. It includes sender details such as account number, funding source ('DEBIT_CARD'), tax information, name, address, and birth date. ```json { "directPay": { "fundsTransferType": "ACCOUNT_TO_ACCOUNT", "transactionReason": "CREDIT_CARD_PAYMENT", "directPaymentType": "PUSH_FUNDS", "sender": { "transactionReferenceNumber": "1234567890123456", "accountNumber": "5214XXXXXX94", "fundingSource": "DEBIT_CARD", "taxId": "123456789", "taxIdType": "SSN", "firstName": "John", "middleName": "D", "lastName": "Doe", "address": { "line1": "1234 Main Street", "line2": "", "city": "BEDFORD", "state": "NH", "countryCode": "USA", "postalCode": "03109" }, "birthDate": "1975-06-15" } } } ``` -------------------------------- ### RTAU Response: No Match, Participating BIN (JSON) Source: https://github.com/devotts/jpmorgan-api-docs/blob/main/docs/payment-enhancement/real_time_account_updater.md Example JSON response for an RTAU request where no match was found for the card, but the issuer's BIN (Bank Identification Number) participates in RTAU. ```json { "accountUpdater": { "requestAccountUpdater": true, "accountUpdaterResponse": "NO_MATCH_PARTICIPATING_BIN", "accountUpdaterReasonCode": "SUCCESS" } } ``` -------------------------------- ### Fraud Check Response Body JSON Example Source: https://github.com/devotts/jpmorgan-api-docs/blob/main/docs/how-to/obtain_a_fraud_score___payments_developer_portal.md Example JSON payload returned by the fraud check API. It contains transaction identifiers, risk decision details (score, action, status), risk element information (device, browser, transaction history), and overall response status. ```JSON { "transactionId": "91659309-b78a-4075-a18b-84f7e7a54b21", "requestId": "543ba35f-70d8-4370-97dd-9e602cf41b38", "riskDecision": { "fraudRiskScore": "34", "fraudRuleAction": "A", "digitalAlertRuleName": "0000=", "fraudStatus": "A000", "fraudStatusDescription": "Fraud score successful", "fraudRiskResponse": "A" }, "riskElement": { "fraudEvaluatorTransactionId": "K9SD0RKS4VYV", "highestRiskCountry": "US", "highestRiskRegion": "mn", "cardType": "AX", "fourteenDaysTransactionCount": 0, "sixHoursTransactionCount": 0, "fourteenDaysCardRecordCount": 1, "fourteenDaysDeviceRecordCount": 1, "fourteenDaysEmailRecordCount": 1, "deviceLayers": "BE5170F6F4..23EA1C3E4B.7D240F5823.2FB5A18D3", "sessionMatchIndicator": false, "hashedDigitalDeviceFingerprintIdentifier": "OE445516POI154F34E1A3151BCE70C19", "deviceTimestamp": "2022-08-18+11:25", "deviceLocalTimeZone": "300", "deviceRegion": "mn", "deviceCountry": "US", "digitalDeviceType": "Android", "deviceNetworkType": "N", "deviceProxyServer": "N", "browserJavaScriptEnabled": "N", "browserAdobeFlashEnabled": "N", "browserCookiesEnabled": "N", "deviceBrowserCountry": "US", "deviceBrowserLanguage": "EN", "mobileDevice": "N", "deviceWirelessCapability": "N", "deviceVoiceControlled": "N", "deviceRemotelyControlCapability": "N" }, "hostReferenceId": "5hOQTa9S8l8GqINboAbLa4", "responseStatus": "SUCCESS", "responseCode": "ACCEPTED", "responseMessage": "Transaction Accepted", "hostMessage": "Successful Action Requested" } ``` -------------------------------- ### RTAU Response: No Match, Non-Participating BIN (JSON) Source: https://github.com/devotts/jpmorgan-api-docs/blob/main/docs/payment-enhancement/real_time_account_updater.md Example JSON response indicating that the card issuer's BIN (Bank Identification Number) does not support Real-Time Account Updater (RTAU). ```json { "accountUpdater": { "requestAccountUpdater": true, "accountUpdaterResponse": "NO_MATCH_NON_PARTICIPATING_BIN", "accountUpdaterReasonCode": "ERROR", "accountUpdaterReasonMessage": "Issuer does not support real time AU" }, "networkAccountUpdater": { "replacementCode": false, "networkResponseCode": "VAU009" } } ``` -------------------------------- ### Example JSON Request for Online Payments API Source: https://github.com/devotts/jpmorgan-api-docs/blob/main/docs/payment-enhancement/3_d_secure___payments_developer_portal.md Shows a sample JSON payload for a /payments request to the Online Payments API. It includes details for card payment, 3DS authentication parameters, account holder information, merchant details, and browser information required for the transaction. ```Json { "amount": 14500, "currency": "USD", "paymentMethodType": { "card": { "accountNumber": "4112344112344113", "expiry": { "month": 5, "year": 2040 }, "paymentAuthenticationRequest": { "authenticationReturnUrl": "merchantCheckoutPage.com", "threeDSRequestorAuthenticationInfo": { "authenticationPurpose": "PAYMENT_TRANSACTION" }, "threeDSPurchaseInfo": { "purchaseDate": "2028-10-31T17:07:14.91Z", "threeDomainSecureTransactionType": "GOODS_SERVICES" } } } }, "accountHolder": { "firstName": "John", "lastName": "Doe", "email": "example@example.com", "billingAddress": { "line1": "1234 Main Street", "city": "New York", "postalCode": "10111" }, "phone": { "countryCode": "1", "phoneNumber": "1234567890" } }, "merchant": { "merchantSoftware": { "companyName": "John's Gym", "productName": "Cart" } }, "browserInfo": { "browserAcceptHeader": "application/json", "deviceIPAddress": "192.168.1.11", "browserLanguage": "en", "browserColorDepth": "8", "browserScreenHeight": "1", "browserScreenWidth": "1", "deviceLocalTimeZone": 1, "browserUserAgent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0", "challengeWindowSize": "FULL_SCREEN", "javaEnabled": true, "javaScriptEnabled": true } } ``` -------------------------------- ### Request Body for Immediate Authorization and Capture - JSON Source: https://github.com/devotts/jpmorgan-api-docs/blob/main/docs/how-to/authorize_and_capture_a_payment___payments_developer_portal.md Example JSON request body for the `/payments` endpoint to perform a card authorization with immediate capture. Sets `captureMethod` to 'NOW' (or omits it for default behavior) and includes minimum required fields like amount, currency, merchant info, and card details. Amount uses implied decimal places. ```json { "captureMethod": "NOW", "amount": 1000, "currency": "USD", "merchant": { "merchantSoftware": { "companyName": "Payment Company", "productName": "Application Name" } }, "paymentMethodType": { "card": { "accountNumber": "4012000033330026", "expiry": { "month": 5, "year": 2027 } } } } ``` -------------------------------- ### Partial Reversal Authorization Request (JSON) Source: https://github.com/devotts/jpmorgan-api-docs/blob/main/docs/how-to/update_a_payment___payments_developer_portal.md Example JSON request body for performing a partial reversal authorization. It specifies the capture method as "NOW" for immediate capture and sets the new authorized amount. The `amount` field represents the *replacement* authorization amount, not the amount to reverse. ```Json { "captureMethod": "NOW", "amount": 3000 } ``` -------------------------------- ### Example Payment Request with Device Fingerprint Data Source: https://github.com/devotts/jpmorgan-api-docs/blob/main/docs/how-to/collect_and_send_device_fingerprint_data___payments_developer_portal.md This JSON object represents a sample payment request payload including the device fingerprint session ID within the risk.consumerDeviceInfo field. It demonstrates how to structure the request body when submitting a payment with collected device telemetry. ```json { "captureMethod": "NOW", "amount": 1234, "currency": "USD", "risk": { "consumerDeviceInfo": { "deviceFingerprintSessionId": "1e37134jASDh203" } }, "merchant": { "merchantId": "991234567890", "merchantSoftware": { "companyName": "Payment Company", "productName": "Application Name", "version": "1.235", "softwareId": "string" }, "merchantCategoryCode": "4819", "merchantLogoUrl": "string" }, "paymentMethodType": { "card": { "accountNumberType": "PAN", "accountNumber": "string", "expiry": {}, "walletProvider": "APPLE_PAY", "cardType": "VI", "cardTypeName": "VISA", "cvv": "string", "originalNetworkTransactionId": "1c4b1100-4017-11e9-b649-8de064224186", "isBillPayment": true, "maskedAccountNumber": "123456XXXXXX9876", "maskedCardNumber": "string", "cardTypeIndicators": { "cardProductTypes": [] } } } } ``` -------------------------------- ### Verify Card Response JSON Source: https://github.com/devotts/jpmorgan-api-docs/blob/main/docs/how-to/verify_a_payment_method___payments_developer_portal.md Example JSON response body received after successfully verifying a card. It includes transaction details, response status, masked card information, and network response details. A successful response typically has an HTTP status of 200. ```json { "transactionId": "722bb5fd-7c27-442e-a9da-3f8a3c15b468", "requestId": "fc90352e-ebeb-4b19-8621-d439cf27cd07", "currency": "USD", "responseStatus": "SUCCESS", "responseCode": "APPROVED", "responseMessage": "Transaction approved by Issuer", "hostMessage": "Transaction accepted", "paymentMethodType": { "card": { "cardTypeName": "VISA", "cardType": "VI", "maskedAccountNumber": "401200XXXXXX0026", "cardTypeIndicators": { "issuanceCountryCode": "USA", "isLevel3Eligible": false, "isDurbinRegulated": false }, "networkResponse": { "addressVerificationResult": "NOT_REQUESTED", "networkTransactionId": "013228692165455" } } }, "merchant": { "merchantId": "000017904371", "merchantSoftware": { "companyName": "Payment Company", "productName": "Application Name", "version": "1.235" }, "merchantCategoryCode": "4899" }, "transactionDate": "2023-08-16T23:30:43.033Z", "initiatorType": "CARDHOLDER", "accountOnFile": "NOT_STORED", "hostReferenceId": "r8dnofa5dUdnWWiwQuGYC", "approvalCode": "tst262" } ``` -------------------------------- ### Valid Card with No RTAU Updates (JSON) Source: https://github.com/devotts/jpmorgan-api-docs/blob/main/docs/payment-enhancement/real_time_account_updater.md Example JSON response for a payment where the card is valid and no updates are available via Real-Time Account Updater (RTAU). ```json { "accountUpdater": { "requestAccountUpdater": true, "accountUpdaterResponse": "MATCH_NO_UPDATE", "accountUpdaterReasonCode": "SUCCESS", "accountUpdaterReasonMessage": "Valid card no update available" }, "networkAccountUpdater": { "replacementCode": false, "networkResponseCode": "VAU012" } } ``` -------------------------------- ### Direct Pay Pull Funds Request Body (JSON) Source: https://github.com/devotts/jpmorgan-api-docs/blob/main/docs/payment-enhancement/direct_pay___payments_developer_portal.md Example JSON request body for initiating a Direct Pay pull funds transaction via the /payments endpoint. It specifies the transaction type as 'ACCOUNT_TO_ACCOUNT', the reason as 'CREDIT_CARD_PAYMENT', and the direct payment type as 'PULL_FUNDS'. It includes sender details such as account number, funding source ('CREDIT_CARD'), tax information, name, address, and birth date. ```json { "directPay": { "fundsTransferType": "ACCOUNT_TO_ACCOUNT", "transactionReason": "CREDIT_CARD_PAYMENT", "directPaymentType": "PULL_FUNDS", "serviceFeeAmount": 123, "sender": { "transactionReferenceNumber": "1234567890123456", "accountNumber": "5214XXXXXX94", "fundingSource": "CREDIT_CARD", "taxId": "123456789", "taxIdType": "SSN", "firstName": "John", "middleName": "D", "lastName": "Doe", "address": { "line1": "1234 Main Street", "line2": "", "city": "BEDFORD", "state": "NH", "countryCode": "USA", "postalCode": "03109" } }, "birthDate": "1975-06-15" } } ``` -------------------------------- ### RTAU Response: Contact Cardholder (JSON) Source: https://github.com/devotts/jpmorgan-api-docs/blob/main/docs/payment-enhancement/real_time_account_updater.md Example JSON response indicating that the cardholder needs to be contacted for updates or information. ```json { "accountUpdater": { "requestAccountUpdater": true, "accountUpdaterResponse": "CONTACT_CARDHOLDER", "accountUpdaterReasonCode": "SUCCESS", "accountUpdaterReasonMessage": "Contact Cardholder" }, "networkAccountUpdater": { "accountStatus": "Q", "replacementCode": false } } ``` -------------------------------- ### Successful ACH Payment Response (JSON) Source: https://github.com/devotts/jpmorgan-api-docs/blob/main/docs/payment-enhancement/tokenization___payments_developer_portal.md Example JSON response for a successful ACH payment transaction. Includes transaction details, state, status, and masked account information. ```json { "transactionId": "f2ae4dd2-ded8-424f-a910-f3d34bb6b936", "requestId": "0a327188-f385-41ea-b4b9-5c6545ea5a7a", "transactionState": "CLOSED", "responseStatus": "SUCCESS", "responseCode": "ACCEPTED", "responseMessage": "Request successfully completed", "paymentMethodType": { "ach": { "financialInstitutionRoutingNumber": "123456789", "paymentType": "WEB", "accountType": "SAVING", "maskedAccountNumber": "XXXXXXX8925", "ecpProgramName": "STD" } } } ``` -------------------------------- ### RTAU Update: New Account Number (JSON) Source: https://github.com/devotts/jpmorgan-api-docs/blob/main/docs/payment-enhancement/real_time_account_updater.md Example JSON response showing an RTAU update where a new account number is provided for the card. ```json { "accountUpdater": { "requestAccountUpdater": true, "accountNumber": "4012001037141112", "accountUpdaterResponse": "NEW_ACCOUNT", "accountUpdaterReasonCode": "SUCCESS", "accountUpdaterReasonMessage": "Account Update provided for Account Number" }, "networkAccountUpdater": { "accountStatus": "A", "replacementCode": true } } ``` -------------------------------- ### Partial Reversal Authorization Response (JSON) Source: https://github.com/devotts/jpmorgan-api-docs/blob/main/docs/how-to/update_a_payment___payments_developer_portal.md Example JSON response body returned after successfully processing a partial reversal authorization request. It includes transaction details, status, payment method information, and updated authorization/capture details. ```Json { "transactionId": "4800ef65-f9e8-4c65-b99e-d537efca9ed1", "requestId": "a039333c-029a-4c1b-accb-51edc60b378f", "transactionState": "CLOSED", "responseStatus": "SUCCESS", "responseCode": "APPROVED", "responseMessage": "Transaction approved by Issuer", "paymentMethodType": { "card": { "cardType": "VI", "cardTypeName": "VISA", "isBillPayment": true, "maskedAccountNumber": "411234XXXXXX4113", "networkResponse": { "addressVerificationResult": "NOT_REQUESTED", "additionalData": { "electronicCommerceIndicator": "7" }, "paymentAccountReference": "Q1J4Z28RKA1EBL470G9XYG90R5D3E" }, "paymentAccountReference": "Q1J4Z28RKA1EBL470G9XYG90R5D3E" } }, "captureMethod": "NOW", "initiatorType": "CARDHOLDER", "accountOnFile": "NOT_STORED", "isVoid": false, "transactionDate": "2024-03-11T20:37:14.582Z", "approvalCode": "TST388", "hostMessage": "Approved", "isAmountFinal": true, "amount": 3000, "currency": "USD", "remainingRefundableAmount": 3000, "remainingAuthAmount": 0, "totalAuthorizedAmount": 10000, "hostReferenceId": "jmSdNuBeaa4uaLSHJFxnR7", "merchant": { "merchantId": "000017904374", "merchantSoftware": { "companyName": "Payment Company", "productName": "Application Name", "version": "1.235" }, "merchantCategoryCode": "4899" }, "paymentRequest": { "paymentRequestId": "4800ef65-f9e8-4c65-b99e-d537efca9ed1", "paymentRequestStatus": "CLOSED", "authorizations": [ { "authorizationId": "4800ef65-f9e8-4c65-b99e-d537efca9ed1", "amount": 10000, "transactionStatusCode": "CAPTURED", "authorizationType": "INITIAL" } ], "captures": [ { "captureId": "4800ef65-f9e8-4c65-b99e-d537efca9ed1", "amount": 3000, "transactionStatusCode": "CLOSED", "captureRemainingRefundableAmount": 3000 } ] } } ``` -------------------------------- ### ACH Payment Request with Safetech Token (JSON) Source: https://github.com/devotts/jpmorgan-api-docs/blob/main/docs/payment-enhancement/tokenization___payments_developer_portal.md Example JSON payload for initiating an ACH payment using a Safetech token as the account number. Specifies the payment type as 'WEB' and account type as 'SAVING'. ```json { "paymentMethodType": { "ach": { "accountNumber": "BTKNSTDPRIUP9PHTQKA", "paymentType": "WEB", "accountType": "SAVING" } } } ``` -------------------------------- ### Authorizing Payment with Delayed Capture - JSON Request Source: https://github.com/devotts/jpmorgan-api-docs/blob/main/docs/how-to/authorize_and_capture_a_payment___payments_developer_portal.md Example JSON request body for initiating a payment authorization with automatic delayed capture via the /payments endpoint. Specifies the capture method, amount, currency, merchant details, and card payment method information. ```Json { "captureMethod": "DELAYED", "amount": 1000, "currency": "USD", "merchant": { "merchantSoftware": { "companyName": "Payment Company", "productName": "Application Name" } }, "paymentMethodType": { "card": { "accountNumber": "4012000033330026", "expiry": { "month": 5, "year": 2027 } } } } ``` -------------------------------- ### RTAU Response: Account Closed (JSON) Source: https://github.com/devotts/jpmorgan-api-docs/blob/main/docs/payment-enhancement/real_time_account_updater.md Example JSON response indicating that the account associated with the card has been closed. ```json { "accountUpdater": { "requestAccountUpdater": true, "accountUpdaterResponse": "CLOSED_ACCOUNT", "accountUpdaterReasonCode": "SUCCESS", "accountUpdaterReasonMessage": "Account has been closed" }, "networkAccountUpdater": { "accountStatus": "C", "replacementCode": false } } ``` -------------------------------- ### Verify Card Request JSON Source: https://github.com/devotts/jpmorgan-api-docs/blob/main/docs/how-to/verify_a_payment_method___payments_developer_portal.md Example JSON request body for verifying a card using the J.P. Morgan Payments API. It includes merchant software details, currency, and card information (account number and expiry). The request is sent via POST to the /verifications endpoint. ```json { "merchant": { "merchantSoftware": { "companyName": "Payment Company", "productName": "Application Name" } }, "currency": "USD", "paymentMethodType": { "card": { "accountNumber": "4012000033330026", "expiry": { "month": "5", "year": "2027" } } } } ``` -------------------------------- ### Successful Response Body for Immediate Authorization and Capture - JSON Source: https://github.com/devotts/jpmorgan-api-docs/blob/main/docs/how-to/authorize_and_capture_a_payment___payments_developer_portal.md Example JSON response body for a successful authorization with immediate capture. Shows the transaction details, state ('CLOSED'), response status ('SUCCESS'), and captured amount, along with masked card details and timestamps. Indicates the transaction is closed and only refundable. ```json { "transactionId": "9f186d77-cb1b-4a9f-bb44-b5be91b891ac", "requestId": "40902d7b-4566-485c-bd07-7aef69557f55", "transactionState": "CLOSED", "responseStatus": "SUCCESS", "responseCode": "APPROVED", "responseMessage": "Transaction approved by Issuer", "paymentMethodType": { "card": { "cardType": "VI", "cardTypeName": "VISA", "maskedAccountNumber": "401200XXXXXX0026" } }, "captureMethod": "NOW", "captureTime": "2023-09-18T18:04:26.898Z", "initiatorType": "CARDHOLDER", "accountOnFile": "NOT_STORED", "isVoid": false, "transactionDate": "2023-09-18T18:04:26.898Z", "approvalCode": "tst021", "hostMessage": "Approved", "amount": 1000, "currency": "USD", "remainingRefundableAmount": 1234, "remainingAuthAmount": 0, "hostReferenceId": "xf1kGP1Q9zajkzcQ7SIpA6", "merchant": { "merchantId": "000017904371", "merchantSoftware": { "companyName": "Payment Company", "productName": "Application Name" }, "merchantCategoryCode": "4899" }, "paymentRequest": { "paymentRequestId": "9f186d77-cb1b-4a9f-bb44-b5be91b891ac", "paymentRequestStatus": "CLOSED", "authorizations": [ { "authorizationId": "9f186d77-cb1b-4a9f-bb44-b5be91b891ac", "amount": 1234, "transactionStatusCode": "CAPTURED", "authorizationType": "INITIAL" } ], "captures": [ { "captureId": "9f186d77-cb1b-4a9f-bb44-b5be91b891ac", "amount": 1234, "transactionStatusCode": "CLOSED", "captureRemainingRefundableAmount": 1234 } ] } } ``` -------------------------------- ### RTAU Update: New Expiry Date (JSON) Source: https://github.com/devotts/jpmorgan-api-docs/blob/main/docs/payment-enhancement/real_time_account_updater.md Example JSON response showing an RTAU update where a new expiry date is provided for the card. ```json { "accountUpdater": { "requestAccountUpdater": true, "accountUpdaterResponse": "NEW_EXPIRY", "accountUpdaterReasonCode": "SUCCESS", "accountUpdaterReasonMessage": "Account Update provided for Account Expiry" }, "networkAccountUpdater": { "accountStatus": "E", "replacementCode": true } } ``` -------------------------------- ### Successful Delayed Capture Authorization - JSON Response Source: https://github.com/devotts/jpmorgan-api-docs/blob/main/docs/how-to/authorize_and_capture_a_payment___payments_developer_portal.md Example JSON response body indicating a successful authorization with delayed capture. Includes transaction details, state, response codes, payment method info, capture details, and merchant information. ```Json { "transactionId": "9f186d77-cb1b-4a9f-bb44-b5be91b891ac", "requestId": "40902d7b-4566-485c-bd07-7aef69557f55", "transactionState": "AUTHORIZED", "responseStatus": "SUCCESS", "responseCode": "APPROVED", "responseMessage": "Transaction approved by Issuer", "paymentMethodType": { "card": { "cardType": "VI", "cardTypeName": "VISA", "maskedAccountNumber": "401200XXXXXX0026" } }, "captureMethod": "DELAYED", "captureTime": "2023-09-18T18:04:26.898Z", "initiatorType": "CARDHOLDER", "accountOnFile": "NOT_STORED", "isVoid": false, "transactionDate": "2023-09-18T18:04:26.898Z", "approvalCode": "tst021", "hostMessage": "Approved", "amount": 1000, "currency": "USD", "remainingRefundableAmount": 1234, "remainingAuthAmount": 0, "hostReferenceId": "xf1kGP1Q9zajkzcQ7SIpA6", "merchant": { "merchantId": "000017904371", "merchantSoftware": { "companyName": "Payment Company", "productName": "Application Name" }, "merchantCategoryCode": "4899" }, "paymentRequest": { "paymentRequestId": "9f186d77-cb1b-4a9f-bb44-b5be91b891ac", "paymentRequestStatus": "PENDING", "authorizations": [ { "authorizationId": "9f186d77-cb1b-4a9f-bb44-b5be91b891ac", "amount": 1234, "transactionStatusCode": "AUTHORIZED", "authorizationType": "INITIAL" } ] } } ``` -------------------------------- ### Payments API Response with Masked Card Data and Token Source: https://github.com/devotts/jpmorgan-api-docs/blob/main/docs/payment-enhancement/encryption___payments_developer_portal.md This JSON example illustrates the structure of a Payments API response after processing a transaction using encrypted card data. It shows the masked account number and details of the generated SAFETECH payment token. ```JSON { "paymentMethodType": { "card": { "maskedAccountNumber": "401200XXXXXX1112", "paymentTokens": [ { "tokenProvider": "SAFETECH", "tokenNumber": "4012000803101112", "responseStatus": "SUCCESS" } ] } } } ``` -------------------------------- ### RTAU Update: New Account Number and Expiry (JSON) Source: https://github.com/devotts/jpmorgan-api-docs/blob/main/docs/payment-enhancement/real_time_account_updater.md Example JSON response showing an RTAU update where both a new account number and a new expiry date are provided. ```json { "accountUpdater": { "requestAccountUpdater": true, "accountNumber": "4012001037141112", "newAccountExpiry": { "month": 12, "year": 2025 }, "accountUpdaterResponse": "NEW_ACCOUNT_AND_EXPIRY", "accountUpdaterReasonCode": "SUCCESS", "accountUpdaterReasonMessage": "Account Update provided for both account number and expiry" }, "networkAccountUpdater": { "accountStatus": "A", "replacementCode": true } } ``` -------------------------------- ### Standalone Refund Response Body (JSON) Source: https://github.com/devotts/jpmorgan-api-docs/blob/main/docs/how-to/refund_a_payment___payments_developer_portal.md This JSON object shows an example response received after successfully submitting a standalone refund request. It contains transaction details such as transaction ID, state, amount, currency, response status and codes, approval code, host message, transaction date, merchant details, and processed card information including masked account number and network response data. ```Json { "transactionId": "94d1dd5b-2c81-4896-a159-c726af81883a", "requestId": "e8cc1a4a-3869-420f-866c-02c53a370182", "transactionState": "AUTHORIZED", "amount": 1234, "currency": "USD", "responseStatus": "SUCCESS", "responseCode": "APPROVED", "responseMessage": "Transaction approved by Issuer", "approvalCode": "tst825", "hostMessage": "Approved", "initiatorType": "CARDHOLDER", "accountOnFile": "NOT_STORED", "transactionDate": "2024-07-31T14:16:04.869Z", "merchant": { "merchantId": "000017904371", "merchantSoftware": { "companyName": "Payment Company", "productName": "Application Name", "version": "1.235" }, "merchantCategoryCode": "4899" }, "paymentMethodType": { "card": { "cardTypeName": "VISA", "cardType": "VI", "maskedAccountNumber": "401200XXXXXX0026", "cardTypeIndicators": { "issuanceCountryCode": "USA", "isLevel2Eligible": false, "isLevel3Eligible": false, "isDurbinRegulated": false, "cardProductTypes": [ "COMMERCIAL", "PINLESS_DEBIT" ] }, "networkResponse": { "addressVerificationResult": "NOT_REQUESTED", "additionalData": { "electronicCommerceIndicator": "7", "productId": "F", "posEntryMode": "01", "returnAci": "T", "validationCode": "V7JO" }, "networkTransactionId": "014213692168401" } } }, "hostReferenceId": "S6JU1UmjVPOQFCmUjthEF7", "paymentRequest": { "paymentRequestId": "94d1dd5b-2c81-4896-a159-c726af81883a", "paymentRequestStatus": "CLOSED", "refunds": [ { "refundId": "94d1dd5b-2c81-4896-a159-c726af81883a", "amount": 1234, "transactionStatusCode": "CLOSED" } ] } } ``` -------------------------------- ### Incremental Authorization Request Body (JSON) Source: https://github.com/devotts/jpmorgan-api-docs/blob/main/docs/how-to/update_a_payment___payments_developer_portal.md Example JSON body for a PATCH request to update a payment with an incremental authorization. It includes the new total authorized amount in the 'amount' field. ```Json { "amount": 15000 } ``` -------------------------------- ### Submitting Payment Request with RTAU Enabled (Json) Source: https://github.com/devotts/jpmorgan-api-docs/blob/main/docs/payment-enhancement/real_time_account_updater.md Example JSON payload for a POST request to the /payments endpoint to submit a Visa transaction with the Real-time Account Updater service explicitly enabled by setting requestAccountUpdater to true. This is used for eligible recurring or stored payment transactions. ```Json { "paymentMethodType": { "card": { "accountNumber": "4012001037141112", "expiry": { "month": 5, "year": 2025 }, "accountUpdater": { "requestAccountUpdater": true } } } } ``` -------------------------------- ### Void Authorization Response Body (JSON) Source: https://github.com/devotts/jpmorgan-api-docs/blob/main/docs/how-to/update_a_payment___payments_developer_portal.md This JSON snippet provides an example of the response received after successfully voiding an authorization. Key fields like `transactionState` (showing "VOIDED"), `responseStatus` ("SUCCESS"), and `isVoid` (`true`) confirm the transaction's status. ```json { "transactionId": "7dcf2f28-2ce2-4f31-985b-e6c8d6138329", "requestId": "b53710da-608e-4fc2-b3cd-6ee9e1af96df", "transactionState": "VOIDED", "responseStatus": "SUCCESS", "responseCode": "APPROVED", "responseMessage": "Transaction approved by Issuer", "paymentMethodType": { "card": { "cardType": "VI", "cardTypeName": "VISA", "isBillPayment": true, "maskedAccountNumber": "411234XXXXXX4113", "networkResponse": { "addressVerificationResult": "NOT_REQUESTED", "additionalData": { "electronicCommerceIndicator": "7" }, "paymentAccountReference": "Q1J4Z28RKA1EBL470G9XYG90R5D3E" }, "paymentAccountReference": "Q1J4Z28RKA1EBL470G9XYG90R5D3E" } }, "initiatorType": "CARDHOLDER", "accountOnFile": "NOT_STORED", "isVoid": true, "transactionDate": "2024-03-11T20:39:29.007Z", "approvalCode": "tst101", "hostMessage": "Approved", "isAmountFinal": true, "amount": 1234, "currency": "USD", "remainingAuthAmount": 0, "hostReferenceId": "3nMRv8pnX9lWXEIQezTqx3", "merchant": { "merchantId": "000017904374", "merchantSoftware": { "companyName": "Payment Company", "productName": "Application Name", "version": "1.235" }, "merchantCategoryCode": "4899" }, "paymentRequest": { "paymentRequestId": "7dcf2f28-2ce2-4f31-985b-e6c8d6138329", "paymentRequestStatus": "CANCELLED", "authorizations": [ { "authorizationId": "7dcf2f28-2ce2-4f31-985b-e6c8d6138329", "amount": 1234, "transactionStatusCode": "VOIDED", "authorizationType": "INITIAL" } ] } } ```