Entegrasyonlar API

Entegrasyonlar modülünün tüm işlemleri (22) ve veri modelleri (8): adresler, izinler, girdiler, ön koşullar, olaylar ve örnekler.

Pazaryerleri, e-ticaret siteleri, kargo ve e-fatura — siparişleriniz, ürünleriniz, stoğunuz ve müşterilerinizle eşitlenir.

Modül kodu integrations · 22 işlem · 8 veri modeli · 22 olay. Bir anahtar ya da token, arkasındaki kişinin bu modülde yapabildiğinden fazlasını asla yapamaz; satır düzeyindeki güvenlik uygulamadakiyle birebir aynıdır. Yetki kapsamları: integrations (hepsi), integrations:read (yalnız okuma) ya da integrations:<yetenek>.

Kaynaklar

KaynakTabloListeleme ve okumaPOSTPATCHDELETE
carrier_shipmentscarrier_shipment/api/v1/carrier_shipments
channel_listingschannel_listing/api/v1/channel_listings
einvoice_documentseinvoice_document/api/v1/einvoice_documents
integration_accountsintegration_account/api/v1/integration_accounts
integration_inboundsintegration_inbound/api/v1/integration_inbounds
integration_issuesintegration_issue/api/v1/integration_issues
integration_reviewsintegration_review/api/v1/integration_reviews
integration_runsintegration_run/api/v1/integration_runs

Listeler limit (en çok 200), cursor, order (ör. -created_at), fields ve q alır; diğer her sorgu parametresi bir sütun süzgecidir: ?status=paid, ?total[gte]=100, ?id[in]=a,b, ?x=null.

İşlemler

İşlemGereken izinNe yapar
integrations.cancel_shipmentintegrations:writeKargoyu iptal et
integrations.connectintegrations:manageEşitleme için bir uygulama bağla
integrations.create_shipmentintegrations:writeKargoya ver
integrations.disconnectintegrations:deleteUygulama bağlantısını kes
integrations.issue_einvoiceintegrations:writeSiparişi faturala (e-Arşiv / e-Fatura)
integrations.map_listingintegrations:writeİlanı bir ürüne bağla
integrations.publish_listingsintegrations:writeÜrün varyantlarını pazaryerinde yayınla
integrations.raise_issueintegrations:handleEşitleme sorunu aç
integrations.record_einvoiceintegrations:handlee-Fatura cevabını kaydet
integrations.record_inboundintegrations:handleWebhook teslimatını kaydet
integrations.record_review_replyintegrations:handleYorum cevabının sonucunu kaydet
integrations.record_reviewsintegrations:handleYorumları kaydet
integrations.record_runintegrations:handleEşitleme turunu kaydet
integrations.record_shipmentintegrations:handleKargo cevabını kaydet
integrations.record_stock_pushintegrations:handleStok gönderimini kaydet
integrations.record_testintegrations:manageBağlantı testini kaydet
integrations.reply_reviewintegrations:writeYoruma cevap ver
integrations.request_syncintegrations:writeŞimdi eşitle
integrations.resolve_issueintegrations:writeEşitleme sorununu kapat
integrations.set_pausedintegrations:manageEşitlemeyi duraklat ya da sürdür
integrations.update_settingsintegrations:manageEşitleme ayarlarını değiştir
integrations.upsert_listingsintegrations:handleİlanları kaydet

integrations.cancel_shipment

Kargoyu iptal et — Kargo firması henüz almadıysa iptal eder; firmaya arka planda bildirilir.

Gereken izin integrations:write · siler ya da geri alınamaz · Era çalıştırırken bir kişiye onaylatır

POSThttps://app.getera.io/api/v1/carrier_shipments/{id}/actions/cancel_shipment
API anahtarı ya da OAuth token · integrations:write
  • Asıl adres: POST /api/v1/actions/integrations.cancel_shipment

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Koli · kimliği: carrier_shipment

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundBu kargo bulunamadı.
not_cancellableKargo firması aldıktan sonra iptal edilemez.

Yayımladığı olaylar: integrations.shipment_updated

Neye yazar: carrier_shipment (update) — Marks it cancelled

curl -X POST https://app.getera.io/api/v1/carrier_shipments/CARRIER_SHIPMENT_ID/actions/cancel_shipment \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "integrations.shipment_updated"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.carrierShipments.cancelShipment("CARRIER_SHIPMENT_ID")
era carrier_shipments cancel_shipment CARRIER_SHIPMENT_ID
tools/call
{
  "name": "era__integrations__cancel_shipment",
  "arguments": {
    "id": "CARRIER_SHIPMENT_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde integrations:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, not_cancellable · 429 çok sık istek

integrations.connect

Eşitleme için bir uygulama bağla — Bağlantıyı (şifreli anahtarıyla) eşitlemeye bağlar: pazaryeri ya da mağaza için bir satış kanalı ve depo.

Gereken izin integrations:manage · dışarıya ulaşır (gönderir, yayımlar ya da ücret alır) · Era çalıştırırken bir kişiye onaylatır

POSThttps://app.getera.io/api/v1/integration_accounts/actions/connect
API anahtarı ya da OAuth token · integrations:manage
  • Asıl adres: POST /api/v1/actions/integrations.connect

Girdi

AlanTürZorunluAçıklama
providerstringevetUygulama · en çok 41
labelstringAd · en çok 160
credentialIduuidBağlantı · kimliği: credential
channelIduuidSatış kanalı · kimliği: channel
warehouseIduuidDepo · kimliği: warehouse
configobject / arrayHesap ayarları
settingsobject / arrayNeler eşitlenecek

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
unknown_providerEra bu uygulamayı tanımıyor.
credential_not_foundBu bağlantı bu çalışma alanında yok.
provider_mismatchBu bağlantı başka bir uygulamaya ait.
credential_takenBu bağlantı zaten bir hesapta kullanılıyor.
channel_requiredPazaryeri ya da mağaza için bir satış kanalı gerekir.
channel_takenBu satış kanalı zaten başka bir hesaba bağlı.
bad_configDepo bulunamadı ya da ayarlar geçersiz.
bad_settingBilinmeyen ya da geçersiz bir senkron ayarı.

Yayımladığı olaylar: integrations.connected

Neye yazar: integration_account (insert) — The account, with a fresh inbound-webhook token

curl -X POST https://app.getera.io/api/v1/integration_accounts/actions/connect \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"provider":"App"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "integrations.connected"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.integrationAccounts.connect({
  provider: "App"
})
era integration_accounts connect \
  --provider "App"
tools/call
{
  "name": "era__integrations__connect",
  "arguments": {
    "provider": "App"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde integrations:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 unknown_provider, credential_not_found, provider_mismatch, credential_taken, channel_required, channel_taken, bad_config, bad_setting · 429 çok sık istek

integrations.create_shipment

Kargoya ver — Bağlı bir kargo firmasıyla (Yurtiçi, Aras, MNG, Sürat, HepsiJet) sipariş için kargo kaydı açar; takip kendiliğinden gelir.

Gereken izin integrations:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/carrier_shipments/actions/create_shipment
API anahtarı ya da OAuth token · integrations:write
  • Asıl adres: POST /api/v1/actions/integrations.create_shipment

Girdi

AlanTürZorunluAçıklama
orderIduuidevetSipariş · kimliği: sales_order
accountIduuidKargo firması hesabı · Boş: bağlı ilk kargo firması. · kimliği: integration_account
piecesnumberKargolar · en az 1 · en çok 99
desinumberDesi · en az 0 · en çok 1000
weightKgnumberAğırlık (kg) · en az 0 · en çok 1000
codAmountnumber (money)Kapıda ödeme (küçük birim) · en az 0

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
order_not_foundSipariş bulunamadı.
no_shipping_accountBağlı ve açık bir kargo firması yok. Uygulamalar’dan Yurtiçi, Aras, MNG, Sürat ya da HepsiJet bağlayın.
not_shipping_accountSeçilen hesap bir kargo firması değil.
order_not_shippableTaslak, iptal, süresi dolmuş ya da iade edilmiş sipariş kargoya verilmez.
shipment_existsBu siparişin bu firmada açık bir kargosu zaten var.
no_addressSiparişin sokak ve şehir içeren bir teslimat adresi yok.

Yayımladığı olaylar: integrations.shipment_requested

Neye yazar: carrier_shipment (insert) — The parcel request; the worker books it at the carrier

curl -X POST https://app.getera.io/api/v1/carrier_shipments/actions/create_shipment \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"orderId":"SALES_ORDER_ID"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "integrations.shipment_requested"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.carrierShipments.createShipment({
  orderId: "SALES_ORDER_ID"
})
era carrier_shipments create_shipment \
  --order-id "SALES_ORDER_ID"
tools/call
{
  "name": "era__integrations__create_shipment",
  "arguments": {
    "orderId": "SALES_ORDER_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde integrations:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 order_not_found, no_shipping_account, not_shipping_account, order_not_shippable, shipment_exists, no_address · 429 çok sık istek

integrations.disconnect

Uygulama bağlantısını kes — Eşitleme kalıcı olarak durur. Siparişler, ürünler ve geçmiş kalır; anahtar bağlantıyla birlikte silinir.

Gereken izin integrations:delete · siler ya da geri alınamaz · Era çalıştırırken bir kişiye onaylatır

POSThttps://app.getera.io/api/v1/integration_accounts/{id}/actions/disconnect
API anahtarı ya da OAuth token · integrations:delete
  • Asıl adres: POST /api/v1/actions/integrations.disconnect

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Hesap · kimliği: integration_account

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundBu hesap bulunamadı.
already_disconnectedBu hesabın bağlantısı zaten kesik.

Yayımladığı olaylar: integrations.disconnected

Neye yazar: integration_account (update) — Marks it disconnected; drops the webhook token

curl -X POST https://app.getera.io/api/v1/integration_accounts/INTEGRATION_ACCOUNT_ID/actions/disconnect \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "integrations.disconnected"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.integrationAccounts.disconnect("INTEGRATION_ACCOUNT_ID")
era integration_accounts disconnect INTEGRATION_ACCOUNT_ID
tools/call
{
  "name": "era__integrations__disconnect",
  "arguments": {
    "id": "INTEGRATION_ACCOUNT_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde integrations:delete izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, already_disconnected · 429 çok sık istek

integrations.issue_einvoice

Siparişi faturala (e-Arşiv / e-Fatura) — Bağlı e-fatura sağlayıcısından (Paraşüt, Uyumsoft ya da Logo eLogo) sipariş için fatura ister: e-Fatura mükellefine e-Fatura, diğerlerine e-Arşiv.

Gereken izin integrations:write · dışarıya ulaşır (gönderir, yayımlar ya da ücret alır) · Era çalıştırırken bir kişiye onaylatır

POSThttps://app.getera.io/api/v1/einvoice_documents/actions/issue_einvoice
API anahtarı ya da OAuth token · integrations:write
  • Asıl adres: POST /api/v1/actions/integrations.issue_einvoice

Girdi

AlanTürZorunluAçıklama
orderIduuidevetSipariş · kimliği: sales_order
accountIduuidE-fatura hesabı · kimliği: integration_account

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
order_not_foundSipariş bulunamadı.
no_einvoice_accountBağlı ve açık bir e-fatura sağlayıcısı yok. Uygulamalar’dan Paraşüt, Uyumsoft ya da Logo eLogo bağlayın.
not_einvoice_accountSeçilen hesap bir e-fatura sağlayıcısı değil.
order_not_invoiceableTaslak, iptal ya da süresi dolmuş sipariş faturalanmaz.
already_invoicedBu siparişin bu sağlayıcıda geçerli bir faturası zaten var.

Yayımladığı olaylar: integrations.einvoice_requested

Neye yazar: einvoice_document (insert) — The request; the worker sends it to the provider

curl -X POST https://app.getera.io/api/v1/einvoice_documents/actions/issue_einvoice \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"orderId":"SALES_ORDER_ID"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "integrations.einvoice_requested"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.einvoiceDocuments.issueEinvoice({
  orderId: "SALES_ORDER_ID"
})
era einvoice_documents issue_einvoice \
  --order-id "SALES_ORDER_ID"
tools/call
{
  "name": "era__integrations__issue_einvoice",
  "arguments": {
    "orderId": "SALES_ORDER_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde integrations:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 order_not_found, no_einvoice_account, not_einvoice_account, order_not_invoiceable, already_invoiced · 429 çok sık istek

integrations.map_listing

İlanı bir ürüne bağla — Bir pazaryeri ilanının hangi Era varyantı olduğunu söyler; siparişleri stok düşer, Era stoğu ona gider.

Gereken izin integrations:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/channel_listings/{id}/actions/map_listing
API anahtarı ya da OAuth token · integrations:write
  • Asıl adres: POST /api/v1/actions/integrations.map_listing

Girdi

AlanTürZorunluAçıklama
listingIduuidevetDoldurulduğu yer: adresteki {id} · İlan · kimliği: channel_listing
itemVariantIduuidVaryant · Boş bırakılırsa bağ kaldırılır. · kimliği: item_variant
sourcestring (enum)Nasıl · İzin verilen değerler: manual, created

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundBu ilan bulunamadı.
variant_not_foundBu Era ürünü bulunamadı.

Yayımladığı olaylar: integrations.listing_mapped

Neye yazar: channel_listing (update) — Sets (or clears) the variant; the next push sends its stock

curl -X POST https://app.getera.io/api/v1/channel_listings/CHANNEL_LISTING_ID/actions/map_listing \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"itemVariantId":"ITEM_VARIANT_ID"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "integrations.listing_mapped"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.channelListings.mapListing("CHANNEL_LISTING_ID", {
  itemVariantId: "ITEM_VARIANT_ID"
})
era channel_listings map_listing CHANNEL_LISTING_ID \
  --item-variant-id "ITEM_VARIANT_ID"
tools/call
{
  "name": "era__integrations__map_listing",
  "arguments": {
    "listingId": "CHANNEL_LISTING_ID",
    "itemVariantId": "ITEM_VARIANT_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde integrations:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, variant_not_found · 429 çok sık istek

integrations.publish_listings

Ürün varyantlarını pazaryerinde yayınla — Katalogdaki varyantları bağlı Trendyol hesabına gönderir. Fiyat ve stok katalogdan alınır; marka, kategori ve nitelik kimlikleri belirtilir. Kuyruğa alınması yayınlandığı anlamına gelmez; sonuç uygulamanın işlem geçmişinde izlenir.

Gereken izin integrations:write · dışarıya ulaşır (gönderir, yayımlar ya da ücret alır) · Era çalıştırırken bir kişiye onaylatır

POSThttps://app.getera.io/api/v1/integration_runs/actions/publish_listings
API anahtarı ya da OAuth token · integrations:write
  • Asıl adres: POST /api/v1/actions/integrations.publish_listings

Girdi

AlanTürZorunluAçıklama
accountIduuidevetHesap · kimliği: integration_account
modestring (enum)İşlem · İzin verilen değerler: create, update_unapproved, update_content, update_variant
listingsobject / arrayevetVaryantlar ve pazaryeri alanları · Dizi: variantId, barcode, quantity (varsayılan olarak kanalın serbest stoku, hiçbir zaman serbest stoktan fazla değil), images (https adresleri), meta: {brandId,categoryId,productMainId,vatRate,attributes}. Bir ürünün tüm varyantları aynı productMainId’yi paylaşır. listPrice küçük birim cinsindendir. Onaylı içerik güncellemeleri için meta.contentId verin.

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
listing_account_unavailableÖnce yayınlamayı destekleyen etkin bir pazaryeri hesabı bağla.
invalid_listing_requestErişilebilir varyantları, stok kodlarını (SKU), barkodları, stokları ve gerekli pazaryeri alanlarını kontrol et.

Yayımladığı olaylar: integrations.listing_publish_requested

Neye yazar: integration_run (insert) — Track the asynchronous publication request

curl -X POST https://app.getera.io/api/v1/integration_runs/actions/publish_listings \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"accountId":"INTEGRATION_ACCOUNT_ID","listings":{}}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "integrations.listing_publish_requested"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.integrationRuns.publishListings({
  accountId: "INTEGRATION_ACCOUNT_ID",
  listings: {}
})
era integration_runs publish_listings --data '{"accountId":"INTEGRATION_ACCOUNT_ID","listings":{}}'
tools/call
{
  "name": "era__integrations__publish_listings",
  "arguments": {
    "accountId": "INTEGRATION_ACCOUNT_ID",
    "listings": {}
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde integrations:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 listing_account_unavailable, invalid_listing_request · 429 çok sık istek

integrations.raise_issue

Eşitleme sorunu aç — Bir kişinin bakması gereken şey, Türkçe. Aynısı tekrar olursa sayısı artar.

Gereken izin integrations:handle · veriyi değiştirir

POSThttps://app.getera.io/api/v1/integration_issues/actions/raise_issue
API anahtarı ya da OAuth token · integrations:handle
  • Asıl adres: POST /api/v1/actions/integrations.raise_issue

Girdi

AlanTürZorunluAçıklama
accountIduuidevetHesap · kimliği: integration_account
kindstringevetTür · en çok 40
externalRefstringHakkında · en çok 300
messagestringevetMesaj · en çok 2000
detailobject / arrayAyrıntı
orderIduuidSipariş · kimliği: sales_order
itemVariantIduuidVaryant · kimliği: item_variant

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundBu hesap bulunamadı.
bad_kindBilinmeyen bir sorun türü.

Yayımladığı olaylar: integrations.issue_raised

Neye yazar: integration_issue (upsert) — One open issue per (account, kind, thing)

curl -X POST https://app.getera.io/api/v1/integration_issues/actions/raise_issue \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"accountId":"INTEGRATION_ACCOUNT_ID","kind":"Kind","message":"Message"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "integrations.issue_raised"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.integrationIssues.raiseIssue({
  accountId: "INTEGRATION_ACCOUNT_ID",
  kind: "Kind",
  message: "Message"
})
era integration_issues raise_issue \
  --account-id "INTEGRATION_ACCOUNT_ID" \
  --kind "Kind" \
  --message "Message"
tools/call
{
  "name": "era__integrations__raise_issue",
  "arguments": {
    "accountId": "INTEGRATION_ACCOUNT_ID",
    "kind": "Kind",
    "message": "Message"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde integrations:handle izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, bad_kind · 429 çok sık istek

integrations.record_einvoice

e-Fatura cevabını kaydet — e-Fatura sağlayıcısının istekle ne yaptığı.

Gereken izin integrations:handle · veriyi değiştirir

POSThttps://app.getera.io/api/v1/einvoice_documents/{id}/actions/record_einvoice
API anahtarı ya da OAuth token · integrations:handle
  • Asıl adres: POST /api/v1/actions/integrations.record_einvoice

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · e-Fatura · kimliği: einvoice_document
statusstringevetDurum · en çok 20
kindstringTür · en çok 20
externalIdstringSağlayıcı kimliği · en çok 200
documentNumberstringSayı · en çok 100
pdfUrlstringPDF · en çok 1000
errorstringRet · en çok 1000

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundBu e-fatura bulunamadı.

Yayımladığı olaylar: integrations.einvoice_updated

Neye yazar: einvoice_document (update) — The provider’s answer

curl -X POST https://app.getera.io/api/v1/einvoice_documents/EINVOICE_DOCUMENT_ID/actions/record_einvoice \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"status":"Status"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "integrations.einvoice_updated"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.einvoiceDocuments.recordEinvoice("EINVOICE_DOCUMENT_ID", {
  status: "Status"
})
era einvoice_documents record_einvoice EINVOICE_DOCUMENT_ID \
  --status "Status"
tools/call
{
  "name": "era__integrations__record_einvoice",
  "arguments": {
    "id": "EINVOICE_DOCUMENT_ID",
    "status": "Status"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde integrations:handle izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found · 429 çok sık istek

integrations.record_inbound

Webhook teslimatını kaydet — Her teslimat bir kez; kabul edilen bir eşitlemeyi tetikler (gövdesi asla veri olarak alınmaz).

Gereken izin integrations:handle · veriyi değiştirir

POSThttps://app.getera.io/api/v1/integration_inbounds/actions/record_inbound
API anahtarı ya da OAuth token · integrations:handle
  • Asıl adres: POST /api/v1/actions/integrations.record_inbound

Girdi

AlanTürZorunluAçıklama
accountIduuidevetHesap · kimliği: integration_account
externalIdstringevetTeslimat · en çok 300
topicstringKonu · en çok 200
acceptedbooleanevetKabul edildi
reasonstringRet nedeni · en çok 300

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundBu hesap bulunamadı.

Yayımladığı olaylar: integrations.webhook_received

Neye yazar: integration_inbound (insert) — The delivery, deduped on its id

curl -X POST https://app.getera.io/api/v1/integration_inbounds/actions/record_inbound \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"accountId":"INTEGRATION_ACCOUNT_ID","externalId":"Delivery","accepted":true}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "integrations.webhook_received"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.integrationInbounds.recordInbound({
  accountId: "INTEGRATION_ACCOUNT_ID",
  externalId: "Delivery",
  accepted: true
})
era integration_inbounds record_inbound \
  --account-id "INTEGRATION_ACCOUNT_ID" \
  --external-id "Delivery" \
  --accepted true
tools/call
{
  "name": "era__integrations__record_inbound",
  "arguments": {
    "accountId": "INTEGRATION_ACCOUNT_ID",
    "externalId": "Delivery",
    "accepted": true
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde integrations:handle izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found · 429 çok sık istek

integrations.record_review_reply

Yorum cevabının sonucunu kaydet — Yorum sağlayıcısının cevabı yayımlayıp yayımlamadığı.

Gereken izin integrations:handle · veriyi değiştirir

POSThttps://app.getera.io/api/v1/integration_reviews/{id}/actions/record_review_reply
API anahtarı ya da OAuth token · integrations:handle
  • Asıl adres: POST /api/v1/actions/integrations.record_review_reply

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Gözden geçir · kimliği: integration_review
okbooleanevetYayımlandı
repliedAtstringNe zaman · en çok 40
errorstringRet · en çok 1000

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundBu yorum bulunamadı.

Yayımladığı olaylar: integrations.review_replied

Neye yazar: integration_review (update) — The provider’s answer

curl -X POST https://app.getera.io/api/v1/integration_reviews/INTEGRATION_REVIEW_ID/actions/record_review_reply \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"ok":true}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "integrations.review_replied"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.integrationReviews.recordReviewReply("INTEGRATION_REVIEW_ID", {
  ok: true
})
era integration_reviews record_review_reply INTEGRATION_REVIEW_ID \
  --ok true
tools/call
{
  "name": "era__integrations__record_review_reply",
  "arguments": {
    "id": "INTEGRATION_REVIEW_ID",
    "ok": true
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde integrations:handle izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found · 429 çok sık istek

integrations.record_reviews

Yorumları kaydet — Bağlı yorum sağlayıcısındaki güncel yorumlar: yeni gelenler, düzenlenenler ve Era dışında yazılan cevaplar.

Gereken izin integrations:handle · veriyi değiştirir

POSThttps://app.getera.io/api/v1/integration_reviews/actions/record_reviews
API anahtarı ya da OAuth token · integrations:handle
  • Asıl adres: POST /api/v1/actions/integrations.record_reviews

Girdi

AlanTürZorunluAçıklama
accountIduuidevetHesap · kimliği: integration_account
reviewsobject / arrayevetDeğerlendirmeler

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundBu hesap bulunamadı.
not_reviews_accountBu hesap yorum tutmuyor.
invalid_reviewsYorum listesi geçersiz.

Yayımladığı olaylar: integrations.reviews_synced

Neye yazar: integration_review (insert) — One row per review, updated in place on the next sync

curl -X POST https://app.getera.io/api/v1/integration_reviews/actions/record_reviews \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"accountId":"INTEGRATION_ACCOUNT_ID","reviews":{}}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "integrations.reviews_synced"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.integrationReviews.recordReviews({
  accountId: "INTEGRATION_ACCOUNT_ID",
  reviews: {}
})
era integration_reviews record_reviews --data '{"accountId":"INTEGRATION_ACCOUNT_ID","reviews":{}}'
tools/call
{
  "name": "era__integrations__record_reviews",
  "arguments": {
    "accountId": "INTEGRATION_ACCOUNT_ID",
    "reviews": {}
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde integrations:handle izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, not_reviews_account, invalid_reviews · 429 çok sık istek

integrations.record_run

Eşitleme turunu kaydet — Bir turu açar ya da sayılarıyla ve tek bir Türkçe cümleyle kapatır; hesabın imleçlerini ve sağlığını günceller.

Gereken izin integrations:handle · veriyi değiştirir

POSThttps://app.getera.io/api/v1/integration_accounts/{id}/actions/record_run
API anahtarı ya da OAuth token · integrations:handle
  • Asıl adres: POST /api/v1/actions/integrations.record_run

Girdi

AlanTürZorunluAçıklama
accountIduuidevetDoldurulduğu yer: adresteki {id} · Hesap · kimliği: integration_account
runIduuidÇalıştır
feedstringAkış · en çok 20
triggerstringTetikleyici · en çok 20
statusstring (enum)Durum · İzin verilen değerler: running, ok, partial, failed, skipped
countsobject / arraySayılar
messagestringMesaj · en çok 1000
jobIduuidİş
cursorsobject / arrayİmleçler
touchstringAkış tamamlandı · en çok 20
errorstringHata · en çok 2000

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundHesap ya da senkron turu bulunamadı.

Yayımladığı olaylar: integrations.run_finished

Neye yazar: integration_run (upsert) — The run row; integration_account (update) — Last sync times, cursors, health

curl -X POST https://app.getera.io/api/v1/integration_accounts/INTEGRATION_ACCOUNT_ID/actions/record_run \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"runId":"RUN_ID"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "integrations.run_finished"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.integrationAccounts.recordRun("INTEGRATION_ACCOUNT_ID", {
  runId: "RUN_ID"
})
era integration_accounts record_run INTEGRATION_ACCOUNT_ID \
  --run-id "RUN_ID"
tools/call
{
  "name": "era__integrations__record_run",
  "arguments": {
    "accountId": "INTEGRATION_ACCOUNT_ID",
    "runId": "RUN_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde integrations:handle izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found · 429 çok sık istek

integrations.record_shipment

Kargo cevabını kaydet — Kargo firmasının kaydı, takip numarası, etiketi ya da son hareketi — ya da reddi.

Gereken izin integrations:handle · veriyi değiştirir

POSThttps://app.getera.io/api/v1/carrier_shipments/{id}/actions/record_shipment
API anahtarı ya da OAuth token · integrations:handle
  • Asıl adres: POST /api/v1/actions/integrations.record_shipment

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Koli · kimliği: carrier_shipment
statusstringDurum · en çok 20
trackingNumberstringTakip numarası · en çok 100
barcodestringBarkod · en çok 100
labelUrlstringEtiket · en çok 1000
trackingUrlstringTakip sayfası · en çok 1000
lastEventstringSon hareket · en çok 500
lastEventAtstringNe zaman · en çok 40
errorstringRet · en çok 1000

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundBu kargo bulunamadı.

Yayımladığı olaylar: integrations.shipment_updated

Neye yazar: carrier_shipment (update) — What the carrier said

curl -X POST https://app.getera.io/api/v1/carrier_shipments/CARRIER_SHIPMENT_ID/actions/record_shipment \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"status":"Status"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "integrations.shipment_updated"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.carrierShipments.recordShipment("CARRIER_SHIPMENT_ID", {
  status: "Status"
})
era carrier_shipments record_shipment CARRIER_SHIPMENT_ID \
  --status "Status"
tools/call
{
  "name": "era__integrations__record_shipment",
  "arguments": {
    "id": "CARRIER_SHIPMENT_ID",
    "status": "Status"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde integrations:handle izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found · 429 çok sık istek

integrations.record_stock_push

Stok gönderimini kaydet — Her ilana ne gönderildiği ve kanalın kabul edip etmediği.

Gereken izin integrations:handle · veriyi değiştirir

POSThttps://app.getera.io/api/v1/integration_accounts/{id}/actions/record_stock_push
API anahtarı ya da OAuth token · integrations:handle
  • Asıl adres: POST /api/v1/actions/integrations.record_stock_push

Girdi

AlanTürZorunluAçıklama
accountIduuidevetDoldurulduğu yer: adresteki {id} · Hesap · kimliği: integration_account
resultsobject / arrayevetSonuçlar
batchRefstringSağlayıcı toplu işi · en çok 200

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundBu hesap bulunamadı.
malformed_resultsGönderim sonuçları geçersiz.

Yayımladığı olaylar: integrations.stock_pushed

Neye yazar: channel_listing (update) — Last pushed quantity, or the refusal; integration_account (update) — Last push time

curl -X POST https://app.getera.io/api/v1/integration_accounts/INTEGRATION_ACCOUNT_ID/actions/record_stock_push \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"results":{}}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "integrations.stock_pushed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.integrationAccounts.recordStockPush("INTEGRATION_ACCOUNT_ID", {
  results: {}
})
era integration_accounts record_stock_push INTEGRATION_ACCOUNT_ID --data '{"results":{}}'
tools/call
{
  "name": "era__integrations__record_stock_push",
  "arguments": {
    "accountId": "INTEGRATION_ACCOUNT_ID",
    "results": {}
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde integrations:handle izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, malformed_results · 429 çok sık istek

integrations.record_test

Bağlantı testini kaydet — Sağlayıcıya yapılan zararsız çağrının sonucunu hesapta saklar.

Gereken izin integrations:manage · veriyi değiştirir

POSThttps://app.getera.io/api/v1/integration_accounts/{id}/actions/record_test
API anahtarı ya da OAuth token · integrations:manage
  • Asıl adres: POST /api/v1/actions/integrations.record_test

Girdi

AlanTürZorunluAçıklama
accountIduuidevetDoldurulduğu yer: adresteki {id} · Hesap · kimliği: integration_account
okbooleanevetBaşarılı
messagestringevetNe oldu · en çok 1000

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundBu hesap bulunamadı.

Yayımladığı olaylar: integrations.tested

Neye yazar: integration_account (update) — Last test time and result; integration_run (insert) — The test in the run history

curl -X POST https://app.getera.io/api/v1/integration_accounts/INTEGRATION_ACCOUNT_ID/actions/record_test \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"ok":true,"message":"What happened"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "integrations.tested"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.integrationAccounts.recordTest("INTEGRATION_ACCOUNT_ID", {
  ok: true,
  message: "What happened"
})
era integration_accounts record_test INTEGRATION_ACCOUNT_ID \
  --ok true \
  --message "What happened"
tools/call
{
  "name": "era__integrations__record_test",
  "arguments": {
    "accountId": "INTEGRATION_ACCOUNT_ID",
    "ok": true,
    "message": "What happened"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde integrations:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found · 429 çok sık istek

integrations.reply_review

Yoruma cevap ver — İşletmenin bir Google yorumuna herkese açık cevabını yayımlar (eski cevabın yerine geçer); arka planda gönderilir.

Gereken izin integrations:write · dışarıya ulaşır (gönderir, yayımlar ya da ücret alır) · Era çalıştırırken bir kişiye onaylatır

POSThttps://app.getera.io/api/v1/integration_reviews/{id}/actions/reply_review
API anahtarı ya da OAuth token · integrations:write
  • Asıl adres: POST /api/v1/actions/integrations.reply_review

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Gözden geçir · kimliği: integration_review
textstringevetYanıtla · En fazla 4.000 karakter (Google’ın sınırı).

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundBu yorum bulunamadı.
reply_emptyÖnce cevabı yazın.
reply_too_longGoogle en fazla 4.000 karakterlik cevap kabul ediyor.
account_inactiveBu yorumun hesabı bağlı değil; cevaplamak için yeniden bağlayın.
reply_in_flightBu yoruma bir cevap zaten gidiyor.

Yayımladığı olaylar: integrations.review_reply_requested

Neye yazar: integration_review (update) — Keeps the reply and marks it on its way

curl -X POST https://app.getera.io/api/v1/integration_reviews/INTEGRATION_REVIEW_ID/actions/reply_review \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"text":"Reply"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "integrations.review_reply_requested"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.integrationReviews.replyReview("INTEGRATION_REVIEW_ID", {
  text: "Reply"
})
era integration_reviews reply_review INTEGRATION_REVIEW_ID \
  --text "Reply"
tools/call
{
  "name": "era__integrations__reply_review",
  "arguments": {
    "id": "INTEGRATION_REVIEW_ID",
    "text": "Reply"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde integrations:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, reply_empty, reply_too_long, account_inactive, reply_in_flight · 429 çok sık istek

integrations.request_sync

Şimdi eşitle — Pazaryerinden ya da mağazadan yeni siparişleri ve ürünleri çeker, Era stoğunu geri gönderir — arka planda, saniyeler içinde.

Gereken izin integrations:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/integration_runs/actions/request_sync
API anahtarı ya da OAuth token · integrations:write
  • Asıl adres: POST /api/v1/actions/integrations.request_sync

Girdi

AlanTürZorunluAçıklama
iduuidHesap · kimliği: integration_account
providerstringUygulama · Kimlik yerine: trendyol, hepsiburada, amazon, shopify, woocommerce, n11, ciceksepeti, ikas, ticimax, ideasoft, etsy. · en çok 41
feedstring (enum)Ne · orders = yeni siparişleri al, stock = Era’daki stoku gönder, products = ilanları yeniden oku, all = hepsi. · İzin verilen değerler: orders, products, stock, reviews, all
triggerstring (enum)İsteyen · İzin verilen değerler: manual, era, schedule, webhook, connect, event

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundBu uygulamanın bağlı bir hesabı yok.
ambiguous_accountBu uygulamanın birden fazla hesabı var; hangisi?
not_syncableYalnız pazaryerleri, mağazalar ve yorum sağlayıcıları kendiliğinden senkronlanır.
disconnectedBağlantısı kesilmiş hesap senkronlanmaz.
pausedHesap duraklatılmış; önce sürdürün.
sync_runningBu senkron zaten sürüyor; bitince sonucu görünür.

Yayımladığı olaylar: integrations.sync_requested

Neye yazar: integration_run (insert) — The run, which the worker picks up

curl -X POST https://app.getera.io/api/v1/integration_runs/actions/request_sync \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"id":"INTEGRATION_ACCOUNT_ID"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "integrations.sync_requested"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.integrationRuns.requestSync({
  id: "INTEGRATION_ACCOUNT_ID"
})
era integration_runs request_sync \
  --id "INTEGRATION_ACCOUNT_ID"
tools/call
{
  "name": "era__integrations__request_sync",
  "arguments": {
    "id": "INTEGRATION_ACCOUNT_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde integrations:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, ambiguous_account, not_syncable, disconnected, paused, sync_running · 429 çok sık istek

integrations.resolve_issue

Eşitleme sorununu kapat — Halledildi ya da önemsiz olarak işaretler.

Gereken izin integrations:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/integration_issues/{id}/actions/resolve_issue
API anahtarı ya da OAuth token · integrations:write
  • Asıl adres: POST /api/v1/actions/integrations.resolve_issue

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Faturayı kes · kimliği: integration_issue
statusstring (enum)Kapanış nedeni · İzin verilen değerler: resolved, ignored

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundBu sorun bulunamadı.
already_closedBu sorun zaten kapatılmış.

Yayımladığı olaylar: integrations.issue_resolved

Neye yazar: integration_issue (update) — Closes it

curl -X POST https://app.getera.io/api/v1/integration_issues/INTEGRATION_ISSUE_ID/actions/resolve_issue \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"status":"resolved"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "integrations.issue_resolved"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.integrationIssues.resolveIssue("INTEGRATION_ISSUE_ID", {
  status: "resolved"
})
era integration_issues resolve_issue INTEGRATION_ISSUE_ID \
  --status "resolved"
tools/call
{
  "name": "era__integrations__resolve_issue",
  "arguments": {
    "id": "INTEGRATION_ISSUE_ID",
    "status": "resolved"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde integrations:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, already_closed · 429 çok sık istek

integrations.set_paused

Eşitlemeyi duraklat ya da sürdür — Duraklatılan hesapta her şey durur; sürdürülene kadar hiçbir şey çekilmez ya da gönderilmez.

Gereken izin integrations:manage · veriyi değiştirir

POSThttps://app.getera.io/api/v1/integration_accounts/{id}/actions/set_paused
API anahtarı ya da OAuth token · integrations:manage
  • Asıl adres: POST /api/v1/actions/integrations.set_paused

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Hesap · kimliği: integration_account
pausedbooleanevetDuraklatıldı

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundBu hesap bulunamadı.
disconnectedBağlantısı kesilmiş hesap sürdürülmez; yeniden bağlayın.

Yayımladığı olaylar: integrations.paused, integrations.resumed

Neye yazar: integration_account (update) — Flips paused / active

curl -X POST https://app.getera.io/api/v1/integration_accounts/INTEGRATION_ACCOUNT_ID/actions/set_paused \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"paused":true}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "integrations.paused",
    "integrations.resumed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.integrationAccounts.setPaused("INTEGRATION_ACCOUNT_ID", {
  paused: true
})
era integration_accounts set_paused INTEGRATION_ACCOUNT_ID \
  --paused true
tools/call
{
  "name": "era__integrations__set_paused",
  "arguments": {
    "id": "INTEGRATION_ACCOUNT_ID",
    "paused": true
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde integrations:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, disconnected · 429 çok sık istek

integrations.update_settings

Eşitleme ayarlarını değiştir — Siparişler gelsin mi, ürünler okunsun mu, stok gitsin mi, güvenlik stoğu, ne kadar geriye bakılsın.

Gereken izin integrations:manage · veriyi değiştirir

POSThttps://app.getera.io/api/v1/integration_accounts/{id}/actions/update_settings
API anahtarı ya da OAuth token · integrations:manage
  • Asıl adres: POST /api/v1/actions/integrations.update_settings

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Hesap · kimliği: integration_account
settingsobject / arrayNeler eşitlenecek
configobject / arrayHesap ayarları
labelstringAd · en çok 160
warehouseIduuidDepo · kimliği: warehouse

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundBu hesap bulunamadı.
disconnectedBağlantısı kesilmiş hesap düzenlenmez; yeniden bağlayın.
bad_settingBilinmeyen ya da geçersiz bir senkron ayarı.

Yayımladığı olaylar: integrations.settings_changed

Neye yazar: integration_account (update) — Merges the settings

curl -X POST https://app.getera.io/api/v1/integration_accounts/INTEGRATION_ACCOUNT_ID/actions/update_settings \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"settings":{}}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "integrations.settings_changed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.integrationAccounts.updateSettings("INTEGRATION_ACCOUNT_ID", {
  settings: {}
})
era integration_accounts update_settings INTEGRATION_ACCOUNT_ID --data '{"settings":{}}'
tools/call
{
  "name": "era__integrations__update_settings",
  "arguments": {
    "id": "INTEGRATION_ACCOUNT_ID",
    "settings": {}
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde integrations:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, disconnected, bad_setting · 429 çok sık istek

integrations.upsert_listings

İlanları kaydet — Kanalın sattıklarını saklar ve her ilanı stok kodu, barkod ya da dış anahtarla bir Era varyantına bağlar.

Gereken izin integrations:handle · veriyi değiştirir

POSThttps://app.getera.io/api/v1/channel_listings/actions/upsert_listings
API anahtarı ya da OAuth token · integrations:handle
  • Asıl adres: POST /api/v1/actions/integrations.upsert_listings

Girdi

AlanTürZorunluAçıklama
accountIduuidevetHesap · kimliği: integration_account
listingsobject / arrayevetİlanlar

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundBu hesap bulunamadı.
malformed_listingsİlan listesi geçersiz (en fazla 1000, her birinin anahtarı olmalı).

Yayımladığı olaylar: integrations.listings_synced

Neye yazar: channel_listing (upsert) — One row per listing; a match is never undone by a re-read

curl -X POST https://app.getera.io/api/v1/channel_listings/actions/upsert_listings \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"accountId":"INTEGRATION_ACCOUNT_ID","listings":{}}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "integrations.listings_synced"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.channelListings.upsertListings({
  accountId: "INTEGRATION_ACCOUNT_ID",
  listings: {}
})
era channel_listings upsert_listings --data '{"accountId":"INTEGRATION_ACCOUNT_ID","listings":{}}'
tools/call
{
  "name": "era__integrations__upsert_listings",
  "arguments": {
    "accountId": "INTEGRATION_ACCOUNT_ID",
    "listings": {}
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde integrations:handle izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, malformed_listings · 429 çok sık istek

Veri modelleri

CarrierShipment

Tablo carrier_shipment · Kaynak carrier_shipments

  • GET /api/v1/carrier_shipments
  • GET /api/v1/carrier_shipments/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
account_idstring (uuid) · uuidintegration_account
order_idstring (uuid) · uuidevetsales_order
referencestring · text
carrierstring · text
tracking_numberstring · textevet
barcodestring · textevet
label_urlstring · textevet
tracking_urlstring · textevet
statusstring · textrequested, created, in_transit, delivered, returned, cancelled, failed
last_eventstring · textevet
last_event_atstring (date-time) · timestamptzevet
receiverobject · jsonb
piecesinteger · int4
desistring (decimal) · numericevet
cod_amountstring (int64) · int8evet
errorstring · textevet
created_bystring (uuid) · uuidevetapp_user
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz

Birincil anahtar: id

Tekil: account_id, reference

Denetimler:

  • CHECK (((cod_amount IS NULL) OR (cod_amount >= 0)))
  • CHECK ((pieces >= 1))
  • CHECK ((reference ~ '^[A-Za-z0-9-]{4,40}$'::text))

ChannelListing

Tablo channel_listing · Kaynak channel_listings

  • GET /api/v1/channel_listings
  • GET /api/v1/channel_listings/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
account_idstring (uuid) · uuidintegration_account
external_keystring · text
external_product_idstring · textevet
external_variant_idstring · textevet
skustring · textevet
barcodestring · textevet
titlestring · text
variant_namestring · textevet
urlstring · textevet
image_urlstring · textevet
item_variant_idstring (uuid) · uuidevetitem_variant
match_sourcestring · textevetsku, barcode, reference, manual, created
remote_quantityinteger · int4evet
remote_pricestring (int64) · int8evet
currencystring · bpchareveten çok 3
last_pushed_quantityinteger · int4evet
last_pushed_atstring (date-time) · timestamptzevet
push_errorstring · textevet
is_activeboolean · bool
seen_atstring (date-time) · timestamptz
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz
metaobject · jsonb

Birincil anahtar: id

Tekil: account_id, external_key

Denetimler:

  • CHECK ((length(external_key) > 0))
  • CHECK (((remote_price IS NULL) OR (remote_price >= 0)))

EinvoiceDocument

Tablo einvoice_document · Kaynak einvoice_documents

  • GET /api/v1/einvoice_documents
  • GET /api/v1/einvoice_documents/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
account_idstring (uuid) · uuidintegration_account
order_idstring (uuid) · uuidevetsales_order
kindstring · texte_archive, e_invoice, draft
statusstring · textqueued, draft, issued, failed, cancelled
external_idstring · textevet
document_numberstring · textevet
pdf_urlstring · textevet
errorstring · textevet
total_amountstring (int64) · int8evet
currencystring · bpchareveten çok 3
created_bystring (uuid) · uuidevetapp_user
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz
issued_atstring (date-time) · timestamptzevet

Birincil anahtar: id

IntegrationAccount

Tablo integration_account · Kaynak integration_accounts

  • GET /api/v1/integration_accounts
  • GET /api/v1/integration_accounts/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
providerstring · text
categorystring · textmarketplace, ecommerce, payment, shipping, einvoice, messaging, google, microsoft, accounting
labelstring · text
channel_idstring (uuid) · uuidevetchannel
warehouse_idstring (uuid) · uuidevetwarehouse
statusstring · textactive, paused, error, disconnected
configobject · jsonb
settingsobject · jsonb
cursorsobject · jsonb
last_sync_atstring (date-time) · timestamptzevet
last_order_sync_atstring (date-time) · timestamptzevet
last_product_sync_atstring (date-time) · timestamptzevet
last_stock_push_atstring (date-time) · timestamptzevet
last_test_atstring (date-time) · timestamptzevet
last_test_okboolean · boolevet
last_test_messagestring · textevet
last_errorstring · textevet
consecutive_failuresinteger · int4
created_bystring (uuid) · uuidevetapp_user
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz

Birincil anahtar: id

Tekil: webhook_token

Denetimler:

  • CHECK ((consecutive_failures >= 0))
  • CHECK ((length(TRIM(BOTH FROM label)) > 0))
  • CHECK ((provider ~ '^[a-z][a-z0-9_]{1,40}$'::text))

IntegrationInbound

Tablo integration_inbound · Kaynak integration_inbounds

  • GET /api/v1/integration_inbounds
  • GET /api/v1/integration_inbounds/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
account_idstring (uuid) · uuidintegration_account
external_idstring · text
topicstring · textevet
statusstring · textaccepted, rejected
reasonstring · textevet
received_atstring (date-time) · timestamptz

Birincil anahtar: id

Tekil: account_id, external_id

IntegrationIssue

Tablo integration_issue · Kaynak integration_issues

  • GET /api/v1/integration_issues
  • GET /api/v1/integration_issues/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
account_idstring (uuid) · uuidintegration_account
kindstring · textunmatched_line, unmatched_listing, stock_short, push_refused, status_unknown, order_failed, auth, rate_limit, config, shipment_failed, einvoice_failed, webhook_rejected
external_refstring · text
item_variant_idstring (uuid) · uuidevetitem_variant
order_idstring (uuid) · uuidevetsales_order
messagestring · text
detailobject · jsonb
statusstring · textopen, resolved, ignored
occurrencesinteger · int4
first_seen_atstring (date-time) · timestamptz
last_seen_atstring (date-time) · timestamptz
resolved_atstring (date-time) · timestamptzevet
resolved_bystring (uuid) · uuidevetapp_user

Birincil anahtar: id

Denetimler:

  • CHECK ((occurrences >= 1))

IntegrationReview

Tablo integration_review · Kaynak integration_reviews

  • GET /api/v1/integration_reviews
  • GET /api/v1/integration_reviews/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
account_idstring (uuid) · uuidintegration_account
providerstring · text
external_idstring · text
location_namestring · text
location_titlestring · textevet
ratinginteger · int2evet
commentstring · textevet
reviewer_namestring · textevet
reviewed_atstring (date-time) · timestamptzevet
reply_textstring · textevet
replied_atstring (date-time) · timestamptzevet
reply_statusstring · textnone, sending, sent, failed
reply_draftstring · textevet
reply_errorstring · textevet
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz

Birincil anahtar: id

Denetimler:

  • CHECK (((length(external_id) >= 1) AND (length(external_id) <= 500)))
  • CHECK ((provider ~ '^[a-z][a-z0-9_]{1,40}$'::text))
  • CHECK (((rating >= 1) AND (rating <= 5)))

IntegrationRun

Tablo integration_run · Kaynak integration_runs

  • GET /api/v1/integration_runs
  • GET /api/v1/integration_runs/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
account_idstring (uuid) · uuidintegration_account
feedstring · textorders, products, stock, webhook, test, shipments, einvoice, reviews
triggerstring · textschedule, manual, webhook, era, connect, event
statusstring · textrunning, ok, partial, failed, skipped
started_atstring (date-time) · timestamptz
finished_atstring (date-time) · timestamptzevet
countsobject · jsonb
messagestring · textevet
job_idstring (uuid) · uuidevet
created_bystring (uuid) · uuidevetapp_user

Birincil anahtar: id

Olaylar

İş akışları ve webhook'lar bu olaylara tepki verir.

OlayNe olurTaşıdığı alanlar
integrations.connectedBir uygulama hesabı senkron için bağlandı.id, provider, category, channelId
integrations.disconnectedBir hesabın senkronu kalıcı olarak durdu.id, provider
integrations.einvoice_requestedBir sipariş için e-fatura istendi.id, accountId, orderId
integrations.einvoice_updatedBir e-fatura kesildi ya da kesilemedi.id, orderId, status, documentNumber
integrations.issue_raisedBir kişinin bakması gereken bir şey çıktı (eşleşmeyen stok kodu, reddedilen gönderim…).id, accountId, kind, message
integrations.issue_resolvedBir sorun halledildi ya da önemsiz sayıldı.id, accountId, kind, status
integrations.listing_mappedBir ilan elle bir Era ürününe bağlandı.id, accountId, itemVariantId
integrations.listing_publish_requestedÜrün varyantları pazaryerine yayınlanmak üzere sıraya alındı.id, accountId, mode, listings, userId
integrations.listings_syncedİlanlar okundu ve ürünlerle eşlendi.id, provider, seen, matched, unmatched
integrations.pausedBir hesap duraklatıldı; hiçbir şey senkronlanmıyor.id, provider
integrations.resumedDuraklatılmış bir hesap yeniden açıldı.id, provider
integrations.review_repliedSağlayıcı yorum yanıtını yayımladı (ya da reddetti).id, accountId, ok
integrations.review_reply_requestedBir yoruma yazılan herkese açık yanıt sağlayıcıya gönderiliyor.id, accountId
integrations.reviews_syncedYorumlar bir yorum sağlayıcısından (Google İşletme Profili) okundu.id, provider, created, updated
integrations.run_finishedBir senkron, gönderim ya da test bitti.id, accountId, provider, feed, status, counts, message
integrations.settings_changedBir hesabın neyi senkronladığı değişti.id, provider
integrations.shipment_requestedBir kargo firmasıyla kargo kaydı açıldı.id, accountId, orderId, carrier, reference
integrations.shipment_updatedBir kargonun durumu değişti.id, orderId, status, trackingNumber
integrations.stock_pushedEra stoğu bir kanala gönderildi.id, provider, pushed, failed
integrations.sync_requestedBir senkron istendi (bir kişi, Era, webhook ya da zamanlayıcı).id, provider, feed, trigger, runId
integrations.testedBir bağlantı testi yapıldı.id, provider, ok, message
integrations.webhook_receivedBir sağlayıcı bir şeyin değiştiğini bildirdi.id, accountId, provider, topic
Bu sayfa yardımcı oldu mu?