Skip to main content

Aksiyon İşlemleri

Aksiyonlar üstünde işlem yapmak için aşağıdaki endpointler kullanılır.

Aksiyonları getir

Aksiyon tipine göre ilgili tenant için aksiyonlarını getirir.

Authentication
  • x-auth + tenant-id
HTTP Request

GET /tenant/actions

Request Parameters
FieldTypeRequiredDefaultDesc
statusstringfalse-Action status
Response Parameters

Aksiyonlar liste halinde döner.

Aksiyon alanları
FieldTypeNullableDesc
txIdstringfalseAksiyon transaction id. Signature payload'un SHA256 özeti alınarak elde edilir.
tsnumbertrueAksiyon oluşum epoch timestamp.
tagstringtrueAksiyon niteleyici
statusstringtrueAksiyon durumu
typestringtrueAksiyon tipi
makerUserIdnumbertrueAksiyon isteğini oluşturan kullanıcı id'si
thresholdnumbertrueAksiyonun gerçekleşmesi için gereken onay sayısı
signaturesjson[]trueVerilen onaylar. Her bir onay, zamanı, imzayı ve imzalayanın kullanıcı id'sini barındırır.
methodstringtrueHTTP method
endpointstringtrueEndpoint ismi
paramsjsontrueGET ise query params, POST ise request body. JSON halinde.
signPayloadBase64stringtrueİmzalanması gereken payload. base64
Response Body Example

2FA gerektiren login sonucu.

[
{
"txId": "306a8a4e92726e1eafe06f95d692b59e9f71517d0b7f01f1c98bbd4d35112c58",
"ts": 1756708844515,
"tag": "TEST_POST_ENDPOINT",
"status": "PENDING",
"type": "COMMON",
"makerUserId": 1716,
"threshold": 2,
"signatures": [
{
"ts": 1756708847609,
"sig": "3046022100aeb054257a2ce934ccbf73b2610e172f3f3160333bb3beae0bf44dbad01eb941022100b4c8bafd74dd5c52b369333ac57758c58c417aa71a8c7cdef73c3321084c36ab",
"signer": 1500
}
],
"method": "POST",
"endpoint": "/tenant/actions/test",
"params": {
"test_param": 2,
"hello": "1234567"
},
"signPayloadBase64": "MTc1NjcwODg0NDUxNVBPU1QvdGVuYW50L2FjdGlvbnMvdGVzdHsKICAgICJ0ZXN0X3BhcmFtIjogMiwKICAgICJoZWxsbyI6ICIxMjM0NTY3Igp9"
},
{
"txId": "e59fb4a14a6176b7f1075a8e2814e92a666609325bed6af8bf150e0b350e6868",
"ts": 1756707458262,
"tag": "TEST_POST_ENDPOINT",
"status": "ACCEPTED",
"type": "COMMON",
"makerUserId": 1716,
"threshold": 2,
"signatures": [
{
"ts": 1756707460722,
"sig": "3045022100b5b9c2334c541815e4a93d133f25cc40a67298de2b751e60b6ae8dee54d1927f02207387a4b32de20aae59f2d50991f922e8178da4ed11d6fb52ce296aed071918f7",
"signer": 1500
},
{
"ts": 1756708731525,
"sig": "7dd01930a1744bff72d4140a9c53b416cdd19d18c9bc32bde05cc626d3c2f42bfb2fed6cbb76ef7bea85475e9eff74fc1dfaea250317d0bcb6bb725980056673",
"signer": 1716
}
],
"method": "POST",
"endpoint": "/tenant/actions/test",
"params": {
"test_param": 2,
"hello": "1234567"
},
"signPayloadBase64": "MTc1NjcwNzQ1ODI2MlBPU1QvdGVuYW50L2FjdGlvbnMvdGVzdHsKICAgICJ0ZXN0X3BhcmFtIjogMiwKICAgICJoZWxsbyI6ICIxMjM0NTY3Igp9",
"result": {
"statusCode": "200",
"body": {
"test_param": 2,
"hello": "1234567"
}
}
}
]

Aksiyon onayı gönder

Maker'ın oluşturduğu istek cihazdaki keypair private key'i ile imzalanır ve API'ye gönderilir.

Authentication
  • x-auth + tenant-id + device_signature(optional) + 2FA
HTTP Request

POST /tenant/actions/proof

Request Parameters
FieldTypeRequiredDefaultDesc
txIdstringtrue-Action tx id
signaturestringfalse-Action tx signature with device generated keypair
deviceIdstringfalse-Device id, to skip 2FA flow with device sig
Response Example Web
{
"challenge": {
"challengeId": "ENJGgxCwk2SryykQ",
"ts": 1756722390307,
"status": "PENDING",
"expire": 300,
"methodList": [
{
"id": "W7gy",
"name": "PUSH",
"expire": 60,
"renewStart": 0
}
]
}
}
Response Example Mobile With Signature
{
"challenge": {
"challengeId": "MBTwC4HJNPX8HUes",
"ts": 1756725299422,
"status": "COMPLETED",
"expire": 300,
"methodList": []
},
"result": {
"challengeId": "MBTwC4HJNPX8HUes",
"action": "TENANT_ACTION",
"execResult": {
"success": true,
"data": {
"tag": "TEST_POST_ENDPOINT",
"result": {
"statusCode": "200",
"body": {
"test_param": 2,
"hello": "1234567"
}
}
}
}
}
}

Aksiyon onaylama challenge getir

2FA akışında bulunan POST /auth/2fa/challenge/ongoing endpoint'i çağırılır. Dönen obje içindeki ayrıştırıcılar sayesinde mobil client imzalama yapması gerektiğini anlayabilir.

action alanında bulunan TENANT_ACTION verisi ile karşılaşıldığında signPayloadBase64 alanındaki veri cihazda üretilen keypair'in private key'i ile imzalanır. Oluşan imza POST /auth/2fa/challenge/complete isteğinin body kısmının signature alanına eklenir.

[
{
"body": "TEST_POST_ENDPOINT isteğini onaylamak için tıklayınız. (292670812d1236818d32505d00bccb1bdc6a85060e86ba2120fb291bf0998876)",
"data": {
"challengeId": "Lqb3vi8BFAFsPQBf",
"methodId": "wpsH",
"action": "TENANT_ACTION",
"params": {
"txId": "292670812d1236818d32505d00bccb1bdc6a85060e86ba2120fb291bf0998876",
"tenantId": "be88d767-d238-4503-940d-04c52a52468d",
"tx_id": "292670812d1236818d32505d00bccb1bdc6a85060e86ba2120fb291bf0998876",
"tag": "TEST_POST_ENDPOINT",
"makerUserId": "1716",
"threshold": 2,
"method": "POST",
"endpoint": "/tenant/actions/test",
"params": "{\"test_param\":2,\"hello\":\"1234567\"}",
"signPayloadBase64": "MTc1NjcyNjYxNTQ5OFBPU1QvdGVuYW50L2FjdGlvbnMvdGVzdHsKICAgICJ0ZXN0X3BhcmFtIjogMiwKICAgICJoZWxsbyI6ICIxMjM0NTY3Igp9",
"infoTable": {
"metadata": {
"type": "simple",
"rows": 6,
"cols": 2
},
"data": [
[
"Action Id",
"292670812d1236818d32505d00bccb1bdc6a85060e86ba2120fb291bf0998876"
],
[
"Tag",
"TEST_POST_ENDPOINT"
],
[
"Maker",
"1716"
],
[
"Confirmations",
"1 / 2"
],
[
"Detail",
"POST /tenant/actions/test"
],
[
"Values",
"{\"test_param\":2,\"hello\":\"1234567\"}"
]
]
},
"expire": 56
}
}
}
]