Appearance
Querying
If autofeed is available HyPe Initiator can be used to interrogate service about state of the payment manually or using automation.
Manual Operation
Manual operation is similar in nature as invoicing operation and requires issuing a command as member of operator group while providing autofeed JSON to Standard Input:
sh
cat src/examples/status_autofeed.json | aelucrative-hype-initiator statusTherefore it is required to have properly stored autofeed JSON from invoicing step.
INFO
Format of autofeed JSON in described in previous section.
Output
The same principles apply as in invoicing: foundational failure doesn't produce valid standard output JSON.
WARNING
Initiator application currently doesn't reprocess output from the endpoint and provides it as is. This is subject to change in the future to bring more stable API later.
During operation one may encounter what we call "engineering issue/fault": those are cause for engineering concern and are indicative of required manual intervention by an engineer. It is recommended for implementors to flag transactions which cause engineering-type fault and skip them until resolved unless whole interface become inoperative due to neglect.
Additionaly, there are "administrative issues/faults": those are related to adherence to Service Agreement and operational side of things, like key enrollment and voluntary user endpoint suspension.
Failure Case
json
{"identifier" : "", "fault": "bad_signature"}Available faults are:
| Fault | Description | Recommended Implementor Action |
|---|---|---|
| unspecified | Internal fault which is undisclosed. | Retry later. |
| server_error | Known internal service error. | Retry later. |
| bad_signature | Applied signature is incorrect. | This is both engineering and administrative issue. You signature is damaged, invalid or not enrolled. Do not retry. |
| user_disabled | User endpoint is disabled. | This is administrative issue. Your account has been suspended for not following Service Agreement or voluntarily. |
| resource_not_found | Wrong endpoint or non-existing transaction. | The resource you requested - endpoint or transaction identifier do not exist anymore. This is engineering fault. |
Success Case
json
{"identifier" : "", "status" : "completed_success"}Available statuses are:
| Status | Description | Recommended Implementor Action |
|---|---|---|
| undeterminable | This is well-known status which indicates that service is currently resolving transition. | Retry query later |
| created | Transaction is just created, no one touched it yet or is, at least, in the process. | Retry query later. Safe to redispatch gateway URI to user. |
| reached | Transaction was reached by user and they are interacting with the system. | Same as "created". |
| payment_in_process | Transaction is acted upon by user. System is awaiting payment from upstream. | Retry query later. It is not safe to redispatch. Consider waiting, or if you don't want to inconvenience user, create a new transaction and be ready to handle first one to be eventually completed |
| completed_success | Transaction is completed. | Payment is complete. Please note, this doesn't indicate finality as refund can still occur. |
| completed_refunded | Transaction is completed with customer being refunded. | Payment was complete, but then refunded. This is final. |
| completed_rejected | Transaction was rejected by the user explicitly. | Payment will never happen. Safe to issue another transaction if needed. |
| unexpected | There is internal protocol mismatch. | This is engineering issue. Update your terminal SDK and report issue to AELucrita. |