at.marque.partner.getOrder
Schema Diff
+6 -1
Compatibility Analysis
Backward Compatible
Backward compatible. 2 non-breaking changes.
Non-Breaking Changes (2)
- AddedVertex AddedVertex { vertex_id: "at.marque.partner.getOrder:output.checkoutUrl" }
- AddedEdge AddedEdge { src: "at.marque.partner.getOrder:output", tgt: "at.marque.partner.getOrder:output.checkoutUrl", kind: "prop", name: Some("checkoutUrl") }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "at.marque.partner.getOrder:output.checkoutUrl" }
Additional Notes
- Non-breaking: AddedEdge { src: "at.marque.partner.getOrder:output", tgt: "at.marque.partner.getOrder:output.checkoutUrl", kind: "prop", name: Some("checkoutUrl") }
1
1
{
2
2
"id": "at.marque.partner.getOrder",
3
3
"defs": {
4
4
"item": {
5
5
"type": "object",
6
6
"required": [
7
7
"domain",
8
8
"status"
9
9
],
10
10
"properties": {
11
11
"domain": {
12
12
"type": "string",
13
13
"maxLength": 253,
14
14
"description": "The fully qualified domain name."
15
15
},
16
16
"status": {
17
17
"type": "string",
18
18
"description": "Per-domain provisioning status. pending: not yet registered. active: registered successfully. failed: registration failed for this domain.",
19
19
"knownValues": [
20
20
"pending",
21
21
"active",
22
22
"failed"
23
23
]
24
24
},
25
25
"expiresAt": {
26
26
"type": "string",
27
27
"format": "datetime",
28
28
"description": "When the registration expires. Present once the item is active. Write this into the at.marque.domain record."
29
29
},
30
30
"nameServers": {
31
31
"type": "array",
32
32
"items": {
33
33
"type": "string",
34
34
"maxLength": 253
35
35
},
36
36
"description": "Authoritative nameservers assigned to the domain. Present once the item is active."
37
37
},
38
38
"registeredAt": {
39
39
"type": "string",
40
40
"format": "datetime",
41
41
"description": "When the domain was registered upstream. Present once the item is active."
42
42
}
43
43
}
44
44
},
45
45
"main": {
46
46
"type": "query",
47
47
"errors": [
48
48
{
49
49
"name": "NotFound",
50
50
"description": "No order with that id is owned by the authenticated user."
51
51
}
52
52
],
53
53
"output": {
54
54
"schema": {
55
55
"type": "object",
56
56
"required": [
57
57
"orderId",
58
58
"status",
59
59
"items"
60
60
],
61
61
"properties": {
62
62
"error": {
63
63
"type": "string",
64
64
"description": "Failure reason when status is failed."
65
65
},
66
66
"items": {
67
67
"type": "array",
68
68
"items": {
69
69
"ref": "#item",
70
70
"type": "ref"
71
71
},
72
72
"description": "One entry per domain in the order, in the order submitted to createCheckout."
73
73
},
74
74
"status": {
75
75
"type": "string",
76
76
"description": "Overall order status. awaitingPayment: the user has not completed Stripe checkout. paid: payment captured, registration queued. provisioning: registering with the registry. provisioned: all domains registered (individual items may still be failed). failed: the order could not be provisioned.",
77
77
"knownValues": [
78
78
"awaitingPayment",
79
79
"paid",
80
80
"provisioning",
81
81
"provisioned",
82
82
"failed"
83
83
]
84
84
},
85
85
"orderId": {
86
86
"type": "string",
87
87
"description": "Echoes the requested order id."
88
+
},
89
+
"checkoutUrl": {
90
+
"type": "string",
91
+
"format": "uri",
92
+
"description": "Hosted payment URL. Present while status is awaitingPayment so a partner can resume an interrupted checkout."
88
93
}
89
94
}
90
95
},
91
96
"encoding": "application/json"
92
97
},
93
98
"parameters": {
94
99
"type": "params",
95
100
"required": [
96
101
"orderId"
97
102
],
98
103
"properties": {
99
104
"orderId": {
100
105
"type": "string",
101
106
"description": "The order id returned by createCheckout."
102
107
}
103
108
}
104
109
},
105
-
"description": "Poll an order created by createCheckout. Call it proxied through the user's PDS (atproto-proxy: did:web:marque.at:api#marque_registrar) with an at.marque.partnerApi-scoped token; only orders owned by the authenticated user (the JWT iss) are returned. Status flows awaitingPayment (user has not finished paying) -> paid -> provisioning -> provisioned (or failed). Poll every few seconds until provisioned or failed. Once provisioned, each item carries the registeredAt, expiresAt, and nameServers the partner needs to write the at.marque.domain and at.marque.dns records into the user's repository. Individual items can be failed even when the order is provisioned (a partial failure); check each item's status."
110
+
"description": "Poll an order created by createCheckout. Call it proxied through the user's PDS (atproto-proxy: did:web:marque.at#marque_registrar) with an at.marque.partnerApi-scoped token; only orders owned by the authenticated user (the JWT iss) are returned. Status flows awaitingPayment (user has not finished paying) -> paid -> provisioning -> provisioned (or failed). Poll every few seconds until provisioned or failed. Once provisioned, each item carries the registeredAt, expiresAt, and nameServers the partner needs to write the at.marque.domain and at.marque.dns records into the user's repository. Individual items can be failed even when the order is provisioned (a partial failure); check each item's status."
106
111
}
107
112
},
108
113
"$type": "com.atproto.lexicon.schema",
109
114
"lexicon": 1,
110
115
"description": "Get the status of a partner checkout order and the resulting domain details."
111
116
}