One attempt
curl -s "https://services.sandbox.payplug-elements.msem.tech/api/attempts/0193f6c1-8b3f-7c5e-a012-3d4e5f6a7b8c" \ -H "authorization: Bearer $ACCESS_TOKEN"const response = await fetch("https://services.sandbox.payplug-elements.msem.tech/api/attempts/0193f6c1-8b3f-7c5e-a012-3d4e5f6a7b8c", { headers: { authorization: `Bearer ${accessToken}` },});var response = client.send( HttpRequest.newBuilder(URI.create("https://services.sandbox.payplug-elements.msem.tech/api/attempts/0193f6c1-8b3f-7c5e-a012-3d4e5f6a7b8c")) .header("authorization", "Bearer " + accessToken) .GET() .build(), HttpResponse.BodyHandlers.ofString());var request = new HttpRequestMessage(HttpMethod.Get, "https://services.sandbox.payplug-elements.msem.tech/api/attempts/0193f6c1-8b3f-7c5e-a012-3d4e5f6a7b8c");request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);var response = await http.SendAsync(request);$request = curl_init("https://services.sandbox.payplug-elements.msem.tech/api/attempts/0193f6c1-8b3f-7c5e-a012-3d4e5f6a7b8c");curl_setopt_array($request, [ CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ "authorization: Bearer $accessToken", ],]);$response = curl_exec($request);response = requests.get( "https://services.sandbox.payplug-elements.msem.tech/api/attempts/0193f6c1-8b3f-7c5e-a012-3d4e5f6a7b8c", headers={"authorization": f"Bearer {access_token}"},)response = Net::HTTP.get_response( URI("https://services.sandbox.payplug-elements.msem.tech/api/attempts/0193f6c1-8b3f-7c5e-a012-3d4e5f6a7b8c"), { "authorization" => "Bearer #{access_token}" })req, err := http.NewRequest("GET", "https://services.sandbox.payplug-elements.msem.tech/api/attempts/0193f6c1-8b3f-7c5e-a012-3d4e5f6a7b8c", nil)if err != nil { return err}req.Header.Set("authorization", "Bearer "+accessToken)resp, err := http.DefaultClient.Do(req)if err != nil { return err}defer resp.Body.Close()let response = http .get("https://services.sandbox.payplug-elements.msem.tech/api/attempts/0193f6c1-8b3f-7c5e-a012-3d4e5f6a7b8c") .bearer_auth(access_token) .send() .await?;curl -s "https://services.payplug-elements.msem.tech/api/attempts/0193f6c1-8b3f-7c5e-a012-3d4e5f6a7b8c" \ -H "authorization: Bearer $ACCESS_TOKEN"const response = await fetch("https://services.payplug-elements.msem.tech/api/attempts/0193f6c1-8b3f-7c5e-a012-3d4e5f6a7b8c", { headers: { authorization: `Bearer ${accessToken}` },});var response = client.send( HttpRequest.newBuilder(URI.create("https://services.payplug-elements.msem.tech/api/attempts/0193f6c1-8b3f-7c5e-a012-3d4e5f6a7b8c")) .header("authorization", "Bearer " + accessToken) .GET() .build(), HttpResponse.BodyHandlers.ofString());var request = new HttpRequestMessage(HttpMethod.Get, "https://services.payplug-elements.msem.tech/api/attempts/0193f6c1-8b3f-7c5e-a012-3d4e5f6a7b8c");request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);var response = await http.SendAsync(request);$request = curl_init("https://services.payplug-elements.msem.tech/api/attempts/0193f6c1-8b3f-7c5e-a012-3d4e5f6a7b8c");curl_setopt_array($request, [ CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ "authorization: Bearer $accessToken", ],]);$response = curl_exec($request);response = requests.get( "https://services.payplug-elements.msem.tech/api/attempts/0193f6c1-8b3f-7c5e-a012-3d4e5f6a7b8c", headers={"authorization": f"Bearer {access_token}"},)response = Net::HTTP.get_response( URI("https://services.payplug-elements.msem.tech/api/attempts/0193f6c1-8b3f-7c5e-a012-3d4e5f6a7b8c"), { "authorization" => "Bearer #{access_token}" })req, err := http.NewRequest("GET", "https://services.payplug-elements.msem.tech/api/attempts/0193f6c1-8b3f-7c5e-a012-3d4e5f6a7b8c", nil)if err != nil { return err}req.Header.Set("authorization", "Bearer "+accessToken)resp, err := http.DefaultClient.Do(req)if err != nil { return err}defer resp.Body.Close()let response = http .get("https://services.payplug-elements.msem.tech/api/attempts/0193f6c1-8b3f-7c5e-a012-3d4e5f6a7b8c") .bearer_auth(access_token) .send() .await?;The attempt as the dashboard sees it — its transactions, verdicts and acks — with the session and order it belongs to. Another merchant’s attempt answers the same 404 as a nonexistent one.
Authorizations
Section titled “Authorizations”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters”The attempt, as a search returned it. A lowercase UUID — the ones we mint are v7.
Example
0193f6c1-8b3f-7c5e-a012-3d4e5f6a7b8cResponses
Section titled “ Responses ”The attempt, with the home that gives it meaning — session, merchant, order.
object
The session this belongs to.
The merchant it belongs to.
Their own order reference.
The attempt itself.
object
Our handle for this attempt — what the refund door addresses.
When the attempt was opened — epoch milliseconds (Q13).
The last event that touched it — its transactions’ moves included.
Archetype of the method that carried it (card, oney…).
The method INSTANCE of the session it was started on.
The PSP adapter that served this attempt (D-051) — always present.
Where this attempt stands. AUTHORIZING: dispatched, verdict still due (always out-of-band). AUTHORIZED: the money is held. DECLINED: refused, nothing taken. CANCELLED: the payer backed out at the PSP. CAPTURED: taken. VOIDED: the hold was released.
Who decided a grant below the request: the payer in their app (chosen), or the issuer (mandated).
BNPL attempts only: the plan the payer chose.
object
How many instalments the payer took.
Whether that plan carried fees.
What the attempt asked for.
object
Amount in the MINOR unit of the currency — 1000_00 is one thousand euros, never 1000.
ISO 4217 code, uppercase. One currency per session.
What was actually authorized — what counts against the balance.
object
Amount in the MINOR unit of the currency — 1000_00 is one thousand euros, never 1000.
ISO 4217 code, uppercase. One currency per session.
How much of it has already been sent back.
object
Amount in the MINOR unit of the currency — 1000_00 is one thousand euros, never 1000.
ISO 4217 code, uppercase. One currency per session.
What can still be refunded on it — granted minus refunded, zero unless it settled.
object
Amount in the MINOR unit of the currency — 1000_00 is one thousand euros, never 1000.
ISO 4217 code, uppercase. One currency per session.
The card registration this attempt produced, when the order asked for one (for later merchant-initiated payments).
The card network this attempt ran on, as the PSP named it — visa, cb, mastercard, amex… Card attempts only, and only when the platform named one we could place: an absence means the verdict said nothing, never that the payment had no network.
The card as the PSP masked it — its first six and last four digits, the rest X — when it gave it.
The country of the card’s issuer, ISO 3166 alpha-2 — when the PSP gave it.
Money taken that nothing can hand back (direct-settlement) — the ops debt.
When this attempt’s settlement was recorded overdue — still without a verdict a day after the session’s term (the settlement-overdue alert). Epoch milliseconds. While the attempt is still AUTHORIZING, an administrator can conclude it from the dashboard.
Every PSP operation of this attempt, oldest first — the authorization, then its capture, void or refunds.
object
Our handle for this PSP operation — what a refund door addresses.
When the operation was opened — epoch milliseconds (Q13).
The last event that touched it — for a terminal transaction, its verdict’s instant.
What this operation asked the PSP: hold the money, take it in one go, capture a hold, release a hold, send money back, or debit the registered card later.
What this operation moved, in minor units.
object
Amount in the MINOR unit of the currency — 1000_00 is one thousand euros, never 1000.
ISO 4217 code, uppercase. One currency per session.
The PSP’s reference — what their dashboard greps (D-047).
The VERDICT facet: what the PSP finally decided about this operation — as opposed to the ack facet below, which is what the driving call answered on the spot.
object
Where the operation stands. pending means the verdict is still due — it always arrives out-of-band.
The PSP’s own code, split at the source — successes carry theirs too.
The PSP’s own sentence, as they said it — never glued to the code.
What a refusal means, when the PSP’s answer could be read.
What the driving call answered (the ack facet).
What the driving call said — a transport failure’s raw cause included.
Absent beside a present ackMessage = no HTTP response ever came.
The PSP’s own reference for the driving call’s exchange, when it named one — what its support asks for.
The caller’s reconciliation tag, on refunds only (lot 5) — echoed verbatim.
The refused operation this one replays — asked again by an administrator.
On a refund: the later debit it gives back — absent, the attempt’s own taking.
Example
{ "attempt": { "status": "AUTHORIZING", "partialAuth": "chosen", "cardScheme": "visa", "cardCode": "497010XXXXXX0007", "cardCountry": "FR", "settlementOverdueAt": 1791000000000, "transactions": [ { "type": "authorization", "status": { "kind": "pending", "category": "bank-refusal" } } ] }}InvalidRequest — the request could not be read: a missing or malformed field, a bad pattern, or a property this door does not declare (the message names it). Every door with a schema can answer this, before any business rule is consulted.
object
Stable machine-readable code — the one thing to branch on. Never parse the message.
English sentence for logs and operators. Wording may change; the code will not.
Example
{ "code": "InvalidRequest", "message": "body/<field> failed validation"}Unauthorized — the only code this response carries: no usable access token (absent, malformed, expired). One answer for every failure shape, so nothing can be learned by watching which one comes back.
object
Stable machine-readable code — the one thing to branch on. Never parse the message.
English sentence for logs and operators. Wording may change; the code will not.
Example
{ "code": "Unauthorized", "message": "a valid access token is required"}NotFound — the only code this response carries: unknown, or belonging to another merchant. The two are deliberately indistinguishable.
object
Stable machine-readable code — the one thing to branch on. Never parse the message.
English sentence for logs and operators. Wording may change; the code will not.
Example
{ "code": "NotFound", "message": "no such resource"}