# JPMC-PDP Documentation from https://developer.payments.jpmorgan.com # Testing The test environment generates notification and subscription responses based on the transaction and details supplied in the request. ## Before you begin Test the client credentials you received from the implementations team to conduct a test transaction. For more information about getting your test client credentials, see [Getting started](/docs/commerce/optimization-protection/getting-started). ## Test subscriptions The **/subscriptions** endpoint supports POST, PUT, GET, and DELETE methods. The following tables break down test case information by method: **HTTP methods**: POST and PUT **Endpoints**: /subscriptions - POST — /subscriptions - PUT — /subscriptions/{subscriptionId} **Subscription test cases for POST and PUT methods** | Test case | Test data | responseStatus | responseCode | | --- | --- | --- | --- | | Successful subscription | Valid notification type and callback URL | SUCCESS | ACCEPTED | | Authentication failure | Set incorrect authorization credentials | ERROR | UNAUTHORIZED | | Merchant not authorized to access the resource | Set field merchantId blank | ERROR | VALIDATION_ERROR | | Invalid field length | Set field requestId: 7611d1bf-325c-4795-a828-ac21f9bea5deefgghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhff1232derffgggeeewededgegghhhedr234466777777777777 | ERROR | VALIDATION_ERROR | | Required field is missing | Set field requestId blank | ERROR | VALIDATION_ERROR | | Required field has invalid value | Set field requestId 7611d1bf-325c-4795-a828!!!-ac21f9bea5d | ERROR | VALIDATION_ERROR | | Notification empty error | Set field {"notifications": { }, } | ERROR | VALIDATION_ERROR | | Invalid notification type | Set field { "notifications": { abc},} | ERROR | VALIDATION_ERROR | | Invalid callback URL | Set field { "callbackURL": "//helix-merchant-notification"} | ERROR | VALIDATION_ERROR | | Missing callback URL | Set field { "notifications": { "disputeNotification": [ "All" ] } } | ERROR | VALIDATION_ERROR | | Callback URL already exists | Existing callback URL | ERROR | VALIDATION_ERROR | | Subscription not found | Blank or non-existent subscription ID | ERROR | VALIDATION_ERROR | | Invalid subscription ID | Set field subscriptionId: de772f09-ef2d-45a2-b0f4-2dd3658dfc64 | ERROR | VALIDATION_ERROR | ** HTTP method: **GET **Endpoints**: /subscriptions - Get by merchant ID — /subscriptions - Get by subscription ID — /subscriptions/{subscriptionId} **Subscription test cases for GET method** | Test case | Test data | responseStatus | responseCode | | --- | --- | --- | --- | | Successful get subscription by merchant ID | Valid merchant ID | SUCCESS | ACCEPTED | | Successful get by subscription ID | Valid merchant ID and subscription ID | SUCCESS | ACCEPTED | | Authorization failure | Set incorrect authorization credentials | ERROR | UNAUTHORIZED | | Merchant not authorized to access the resource | Set field merchantId blank | ERROR | VALIDATION_ERROR | | Invalid field length | Set field requestId: 7611d1bf-325c-4795-a828-ac21f9bea5deefgghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhff1232derffgggeeewededgegghhhedr234466777777777777 | ERROR | VALIDATION_ERROR | | Required field is missing | Set field requestId blank | ERROR | VALIDATION_ERROR | | Required field has invalid value | Set field requestId: 7611d1bf-325c-4795-a828!!!-ac21f9bea5dc | ERROR | VALIDATION_ERROR | | Subscription not found | Blank or non-existent subscriptionId | ERROR | VALIDATION_ERROR | | Invalid subscription ID | Set field subscriptionId: de772f09-ef2d-45a2-b0f4-2dd3658dfc64 | ERROR | VALIDATION_ERROR | **HTTP method**: DELETE **Endpoints**: /subscriptions/{subscriptionId} **Subscription test cases for DELETE method** | Test case | Test data | responseStatus | responseCode | | --- | --- | --- | --- | | Successful subscription deletion | Valid merchant ID and subscription ID | SUCCESS | ACCEPTED | | Authorization failure | Set incorrect authorization credentials | ERROR | UNAUTHORIZED | | Merchant not authorized to access the resource | Set field merchant ID blank | ERROR | VALIDATION_ERROR | | Invalid field length | Set field requestId: 7611d1bf-325c-4795-a828-ac21f9bea5deefgghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhff1232derffgggeeewededgegghhhedr234466777777777777 | ERROR | VALIDATION_ERROR | | Required field is missing | Set field requestId blank | ERROR | VALIDATION_ERROR | | Required field has invalid value | Set field requestId: 7611d1bf-325c-4795-a828!!!-ac21f9bea5dc | ERROR | VALIDATION_ERROR | | Subscription not found | Blank or non-existent subscriptionId | ERROR | VALIDATION_ERROR | | Invalid subscription ID | Set field subscriptionId: de772f09-ef2d-45a2-b0f4-2dd3658dfc64 | ERROR | VALIDATION_ERROR | ## Notification test cases The **/notifications** and **/notificationTypes** endpoints support the GET method. The following tables break down test case information by endpoint: **HTTP method**: GET **Endpoints**: /notifications/{notificationId} **Notification test cases for GET method** | Test case | Test data | responseStatus | responseCode | | --- | --- | --- | --- | | Successful get notifications by notification ID | Valid merchant ID and notification ID | SUCCESS | ACCEPTED | | Authorization failure | Set incorrect authorization credentials | ERROR | UNAUTHORIZED | | Merchant not authorized to access the resource | Set field merchantId blank | ERROR | VALIDATION_ERROR | | Invalid field length | Set field requestId: 7611d1bf-325c-4795-a828-ac21f9bea5deefgghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhff1232derffgggeeewededgegghhhedr234466777777777777 | ERROR | VALIDATION_ERROR | | Required field is missing | Set field requestId blank | ERROR | VALIDATION_ERROR | | Required field has invalid value | Set field requestId: 7611d1bf-325c-4795-a828!!!-ac21f9bea5dc | ERROR | VALIDATION_ERROR | | Notification not found | Blank or non-existent notificationId | ERROR | VALIDATION_ERROR | | Invalid notification ID | Set field notificationId: de772f09-ef2d-45a2-b0f4-2dd3658dfc64 | ERROR | VALIDATION_ERROR | **HTTP method**: GET **Endpoints**: /notificationTypes **Notification type test cases for GET method** | Test case | Test data | responseStatus | responseCode | | --- | --- | --- | --- | | Successfully retrieve all event types and sub-types | Valid authorization credentials | SUCCESS | ACCEPTED | | Authentication failure | Set incorrect authorization credentials | ERROR | UNAUTHORIZED |