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}} |