Wiki source code of Problems
                      Last modified by Asbjørn Ulsberg on 2018/07/05 12:48
                  
            | 1 | When performing requests against the PayEx Checkout API, problems might occur. All problems will be served in the form of an {{code}}application/problem+json{{/code}} ([[RFC 7807 Problem Detail>>https://tools.ietf.org/html/rfc7807]]) response. All problem responses will have a common structure, with the following properties: | 
| 2 | |
| 3 | = Properties = | 
| 4 | |
| 5 | |(% style="text-align:right" %)**Property** |=(% style="width: 1119px;" %)Description|=(% style="text-align:center" %)Use* | 
| 6 | |(% style="text-align:right" %){{code}}type{{/code}} | 
| 7 | (% style="color:LightGrey" %)string|(% style="width:1119px" %)((( | 
| 8 | A URL describing the type of problem that occurred. To be treated as an exception class type. Can be trusted to not change between different instances of the same problem type. | 
| 9 | )))|(% style="color:#2bb461; text-align:center" %)✓ | 
| 10 | |(% style="text-align:right" %){{code}}title{{/code}} | 
| 11 | (% style="color:LightGrey" %)string|(% style="width:1119px" %)((( | 
| 12 | The human readable title of the problem. | 
| 13 | )))|(% style="color:red; text-align:center" %)✗ | 
| 14 | |(% style="text-align:right" %){{code}}status{{/code}} | 
| 15 | (% style="color:LightGrey" %)int|(% style="width:1119px" %)((( | 
| 16 | The HTTP status code of the response, included as a convenience for logging, etc. | 
| 17 | )))|(% style="color:#2bb461; text-align:center" %)✓ | 
| 18 | |(% style="text-align:right" %){{code}}detail{{/code}} | 
| 19 | (% style="color:LightGrey" %)string|(% style="width:1119px" %)The human readable detail explaining the source of the problem and, if any, which actions you can perform to remedy the problem.|(% style="color:red; text-align:center" %)✗ | 
| 20 | |(% style="text-align:right" %){{code}}instance{{/code}} | 
| 21 | (% style="color:LightGrey" %)string | 
| 22 | (optional)|(% style="width:1119px" %)An optional identifier of the instance of the problem that occurred, useful for PayEx Support when debugging what the source of the problem might be. |(% style="color:red; text-align:center" %)✗ | 
| 23 | |(% style="text-align:right" %){{code}}problems{{/code}} | 
| 24 | (% style="color:LightGrey" %)array | 
| 25 | (optional) |(% style="width:1119px" %)((( | 
| 26 | An optional array of objects containing details about which JSON fields or similar in the request that had errors and a description of what the error was. | 
| 27 | |
| 28 | {{code language="JavaScript"}} | 
| 29 | { | 
| 30 | "name": "...", | 
| 31 | "description": "..." | 
| 32 | } | 
| 33 | {{/code}} | 
| 34 | )))|(% style="color:#2bb461; text-align:center" %)✓ | 
| 35 | |
| 36 | ***Use: **Whether hard coded, programmatic use of values in this property is encouraged or not. | 
| 37 | |
| 38 | = Request Problems = | 
| 39 | |
| 40 | Request problems within the HTTP status code range of {{code}}400{{/code}} to {{code}}499{{/code}} indicates that the request contains an error that needs to be fixed before the request can be retried against the PayEx Checkout API. Below is an example of a problem response you might get from PayEx Checkout: | 
| 41 | |
| 42 | {{code language="JavaScript"}} | 
| 43 | { | 
| 44 | "type": "https://api.payex.com/psp/checkout/problems/validation", | 
| 45 | "title": "Validation error", | 
| 46 | "status": 400, | 
| 47 | "detail": "There was 1 error in the request. Please correct the problem(s) and repeat the request.", | 
| 48 | "instance": "1337", | 
| 49 | "problems": [ | 
| 50 | { | 
| 51 | "name": "reference", | 
| 52 | "description": "The field reference must be a string with a maximum length of 40." | 
| 53 | } | 
| 54 | ] | 
| 55 | } | 
| 56 | {{/code}} | 
| 57 | |
| 58 | = Server Problems = | 
| 59 | |
| 60 | Request problems within the HTTP status code range of {{code}}500{{/code}} to {{code}}599{{/code}} indicates that an unexpected error occurred in the server that it was unable to gracefully recover from. Below is an example of a problem response you might get from PayEx Checkout: | 
| 61 | |
| 62 | {{code language="JavaScript"}} | 
| 63 | { | 
| 64 | "type": "https://api.payex.com/psp/checkout/problems/validation", | 
| 65 | "title": "An unexpected error occurred", | 
| 66 | "status": 500, | 
| 67 | "detail": "An unexpected error occurred. Please contact support.ecom@payex.com with the value of the instance field (1337) to have the problem resolved", | 
| 68 | "instance": "1337", | 
| 69 | } | 
| 70 | {{/code}} |