# JPMC-PDP Documentation from https://developer.payments.jpmorgan.com # Add and update an external party as a recipient Your client is able to make business-related payments to external parties from their LIMITED_DDA_PAYMENTS account. Bank accounts for external parties are not verified in the same way linked accounts are. Your client cannot pay to an external party recipient from their LIMITED_DDA account. ## Transaction methods Your client can create a recipient and add the methods of payment they wish to use to make payments to that recipient. At a glance, the minimum details for each payment type are: - Wire transfer: - Individual or business name - Country code - Address including city, state, and postal code - Routing and account numbers - ACH or direct payment: - Individual or business name - Country code - Routing and account numbers - Account type (Checking or Savings) - RTP: - Individual or business name - Country code - Routing and account numbers - Push to Card (P2C): - Individual or business name - Country code (US only) - Complete address including city, state, and postal code - Cardholder name (max 30 characters, alphabetic and spaces only, no special characters) - 16-digit debit card number (numeric only, no spaces) - Card expiration date (YYMM format) To add the details of the party you are paying, send a request to `POST /recipients`. ## Create a recipient for ACH, Wires and RTP Send a `POST /recipients` request with the account object containing the account number, type, country code, and a routingInformation array. Each entry in the array specifies a routing number and transactionType (ACH, RTP or WIRE). Multiple transaction types can be enabled for a single recipient in one request. Sample request: ```json { "partyDetails": { "address": { "addressLine1": "200 Central Park West", "addressLine2": "Apt. 3663", "city": "New York City", "countryCode": "US", "postalCode": "12345", "state": "NY", "zip": "10024" }, "type": "ORGANIZATION", "businessName": "Susie Struth", "contacts": [ { "contactType": "EMAIL", "value": "rob4568.smith@gmail.com" } ] }, "account": { "number": "0259057683", "type": "SAVINGS", "routingInformation": [ { "routingCodeType": "USABA", "routingNumber": "021000021", "transactionType": "ACH" }, { "routingCodeType": "USABA", "routingNumber": "021000021", "transactionType": "RTP" }, { "routingCodeType": "USABA", "routingNumber": "021000021", "transactionType": "WIRE" } ], "countryCode": "US" }, "type": "RECIPIENT" } ``` Sample response: ```json { "id": "56043232-1ef2-4495-953b-1320b5b8913d", "partyDetails": { "address": { "addressType": null, "addressLine1": "200 Central Park West", "addressLine2": "Apt. 3663", "addressLine3": null, "city": "New York City", "state": "NY", "postalCode": "12345", "countryCode": "US" }, "type": "ORGANIZATION", "firstName": null, "lastName": null, "businessName": "Susie Struth", "alternativeName": null, "contacts": [ { "contactType": "EMAIL", "countryCode": null, "value": "rob4568.smith@gmail.com" } ], "identities": null }, "partyId": "33321085-23c6-4116-9e1b-b1a9a651ce7b", "account": { "number": "0259057683", "type": "SAVINGS", "bic": null, "bankName": null, "branchCode": null, "routingInformation": [ { "routingNumber": "021000021", "transactionType": "ACH", "routingCodeType": "USABA" }, { "routingNumber": "021000021", "transactionType": "RTP", "routingCodeType": "USABA" }, { "routingNumber": "021000021", "transactionType": "WIRE", "routingCodeType": "USABA" } ], "countryCode": "US" }, "type": "RECIPIENT", "status": "ACTIVE", "clientId": "3002023061", "createdAt": "2025-04-08T17:19:33.368472Z", "updatedAt": "2025-04-08T17:19:33.366590372Z", "accountValidationResponse": null, "card": null } ``` ## Update a recipient for ACH, Wires and RTP Send a `PUT /recipients/{recipientId}` request with the `account` and `partyDetails` objects. Sample request: ```json { "partyDetails": { "address": { "addressLine1": "200 Central Park West", "addressLine2": "Apt. 3663", "city": "New York City", "countryCode": "US", "postalCode": "12345", "state": "NY", "zip": "10024" }, "type": "ORGANIZATION", "businessName": "Susie Struth", "contacts": [ { "contactType": "EMAIL", "value": "rob4568.smith@gmail.com" } ] }, "account": { "number": "0259057683", "type": "SAVINGS", "routingInformation": [ { "routingCodeType": "USABA", "routingNumber": "021000021", "transactionType": "ACH" }, { "routingCodeType": "USABA", "routingNumber": "021000021", "transactionType": "RTP" }, { "routingCodeType": "USABA", "routingNumber": "021000021", "transactionType": "WIRE" } ], "countryCode": "US" }, "type": "RECIPIENT" } ``` Sample response: ```json { "id": "56043232-1ef2-4495-953b-1320b5b8913d", "partyDetails": { "address": { "addressType": null, "addressLine1": "200 Central Park West", "addressLine2": "Apt. 3663", "addressLine3": null, "city": "New York City", "state": "NY", "postalCode": "12345", "countryCode": "US" }, "type": "ORGANIZATION", "firstName": null, "lastName": null, "businessName": "Susie Struth", "alternativeName": null, "contacts": [ { "contactType": "EMAIL", "countryCode": null, "value": "rob4568.smith@gmail.com" } ], "identities": null }, "partyId": "33321085-23c6-4116-9e1b-b1a9a651ce7b", "account": { "number": "0259057683", "type": "SAVINGS", "bic": null, "bankName": null, "branchCode": null, "routingInformation": [ { "routingNumber": "021000021", "transactionType": "ACH", "routingCodeType": "USABA" }, { "routingNumber": "021000021", "transactionType": "RTP", "routingCodeType": "USABA" }, { "routingNumber": "021000021", "transactionType": "WIRE", "routingCodeType": "USABA" } ], "countryCode": "US" }, "type": "RECIPIENT", "status": "ACTIVE", "clientId": "3002023061", "createdAt": "2025-04-08T17:19:33.368472Z", "updatedAt": "2025-04-08T17:19:33.366590372Z", "accountValidationResponse": null, "card": null } ``` ## Create a recipient for Push to Card (P2C) To create a recipient for Push to Card payments, include the card object with the following required fields: - name (string): Name on the debit card, maximum 30 characters, alphabetic characters and spaces only, case insensitive - pan (string): 16-digit debit card number, no spaces allowed - expiryDate (string): Debit card expiration date in YYMM format (e.g., 2612 for December 2026) Sample request: ```json { "partyDetails": { "address": { "addressLine1": "200 C Park West", "addressLine2": "Apt. 777", "city": "Tampa", "state": "FL", "postalCode": "33647", "countryCode": "US" }, "type": "INDIVIDUAL", "firstName": "Mary", "lastName": "Sheen", "contacts": [ { "contactType": "PHONE", "countryCode": "+1", "value": "8137771122" }, { "contactType": "EMAIL", "value": "MSheen@info.com" } ] }, "card": { "name": "MARY K SHEEN", "pan": "16digitcardnumber", "expiryDate": "2603" }, "type": "RECIPIENT", "clientId": "1000010400" } ``` Sample response: > The tokenized card number is masked, showing only the last 4 digits of the card number in the response. > ```json { "id": "c8dc77a2-890c-4f4e-b714-29ce0b5dda7b", "partyDetails": { "address": { "addressType": null, "addressLine1": "200 C Park West", "addressLine2": "Apt. 777", "addressLine3": null, "city": "Tampa", "state": "FL", "postalCode": "33647", "countryCode": "US" }, "type": "INDIVIDUAL", "firstName": "Mary", "lastName": "Sheen", "businessName": null, "alternativeName": null, "contacts": [ { "contactType": "PHONE", "countryCode": "+1", "value": "8137771122" }, { "contactType": "EMAIL", "countryCode": null, "value": "MSheen@info.com" } ], "identities": null }, "partyId": "abce4b47-8ec2-4363-ba9a-c6e4f6e9a5b5", "account": null, "type": "RECIPIENT", "status": "ACTIVE", "clientId": "1000010400", "createdAt": "2025-09-01T20:48:53.294312Z", "updatedAt": "2025-09-01T20:48:53.294355Z", "accountValidationResponse": null, "card": { "name": "MARY K SHEEN", "pan": "************4447", "expiryDate": "2603" } } ``` ## Update a recipient for Push to Card (P2C) Send a `PUT /recipients/{recipientId}` request with the card object. For Push to Card recipients, note the following: - Both name and expiryDate are required in the card object, even if only one field is changing. - You cannot update the card number (pan) on an existing recipient. If the card number changes, you must create a new recipient record with a new ID. Sample request (P2C): ```json { "card": { "name": "MARY K SAVAGE", "expiryDate": "2703" } } ``` Sample response (P2C): > The tokenized card number is masked, showing only the last 4 digits of the card number in the response. > ```json { "id": "c8dc77a2-890c-4f4e-b714-29ce0b5dda7b", "partyDetails": { "address": { "addressType": null, "addressLine1": "200 C Park West", "addressLine2": "Apt. 2777", "addressLine3": null, "city": "New York City", "state": "NY", "postalCode": "33647", "countryCode": "US" }, "type": "INDIVIDUAL", "firstName": "Mary", "lastName": "Sheen", "businessName": null, "alternativeName": null, "contacts": [ { "contactType": "PHONE", "countryCode": "+1", "value": "8137771122" }, { "contactType": "EMAIL", "countryCode": null, "value": "MSheen@info.com" } ], "identities": null }, "partyId": "abce4b47-8ec2-4363-ba9a-c6e4f6e9a5b5", "account": null, "type": "RECIPIENT", "status": "ACTIVE", "clientId": "1000010400", "createdAt": "2025-09-05T20:48:53.294312Z", "updatedAt": "2026-12-12T14:23:37.792374Z", "accountValidationResponse": null, "card": { "name": "MARY K SAVAGE", "pan": "************4447", "expiryDate": "2703" } } ```