PSS Partner API v1 — Sandbox

Δοκιμαστικό περιβάλλον ενσωμάτωσης της Pro Sales Support

Base URL: https://sandbox.api.prosalessupport.gr/partner/v1
Authentication: header X-API-Key: pss_test_… (το κλειδί σας παραδίδεται ξεχωριστά)
Όριο: 120 αιτήματα/λεπτό ανά κλειδί (429 με Retry-After)
Τεκμηρίωση: Swagger UI · openapi.yaml (ίδιο αρχείο με αυτό που σας στάλθηκε)

Κύκλος ζωής

Κάθε αίτηση προχωρά μόνη της: SUBMITTEDIN_REVIEW (+1′) → SENT_TO_PROVIDER (+3′) → ACTIVE (+5′). Κάθε μετάβαση στέλνει webhook. Τα leads: NEWCONTACTEDQUALIFIEDCONVERTED (με νέα αίτηση και application_id).

Μαγικές τιμές (στο επώνυμο)

ΕπώνυμοΑποτέλεσμα
TEST-ACTIONACTION_REQUIRED με pending_documents: [RECENT_BILL]· συνεχίζει μόλις ανεβάσετε RECENT_BILL
TEST-REJECTΑπόρριψη στον έλεγχο → CANCELED
TEST-CANCELΑκύρωση από πάροχο (μετά το SENT_TO_PROVIDER) → CANCELED
TEST-DEACTIVATEACTIVE και μετά DEACTIVATED (γραμμή CLAWBACK στην εκκαθάριση)
TEST-HOLDΜένει SUBMITTED· την προωθείτε εσείς με /sandbox/…/advance
TEST-WEBHOOK-FAILΚανονική ροή, αλλά οι 2 πρώτες προσπάθειες κάθε webhook αποτυγχάνουν (για δοκιμή retries)
TEST-UNREACHABLE (lead)CLOSED με closed_reason: UNREACHABLE
TEST-NOTINTERESTED (lead)CLOSED με NOT_INTERESTED
TEST-NOTCONFIRMED (lead)CLOSED με NOT_CONFIRMED

Εργαλεία sandbox (εκτός contract)

Υπάρχουν μόνο εδώ, όχι στην παραγωγή. Χρησιμοποιούν το ίδιο κλειδί και βλέπουν μόνο το κανάλι σας. Πλήρης περιγραφή στο Swagger («Sandbox εργαλεία»).

POST /sandbox/applications/{id}/advanceΕπόμενο βήμα τώρα, ή {"to":"ACTIVE"}
POST /sandbox/leads/{id}/advanceΌμοια για leads
PUT /sandbox/webhook{"url":"https://…"}: το callback URL σας
GET /sandbox/eventsΤα events που παρήχθησαν (και χωρίς webhook URL)
GET /sandbox/webhook-deliveriesΗμερολόγιο αποστολών και retries
GET /sandbox/echoΔοκιμαστικός receiver μας: δηλώστε το echo_url ως callback για να δείτε τι στέλνουμε
POST /sandbox/settlements/publishΔημοσίευση εκκαθάρισης μήνα + settlement.published
POST /sandbox/resetΔιαγραφή όλων των δεδομένων του καναλιού σας

Υπογραφή webhook

X-PSS-Signature: t=<unix seconds>, v1=<hex HMAC-SHA256(secret, t + "." + raw body)>. Απαντήστε 2xx εντός 10″· αλλιώς επαναπροσπάθειες για ~24 ώρες. Dedup με event_id.

const crypto = require('crypto');
function verify(rawBody, header, secret) {
  const m = /^t=(\d+),\s*v1=([0-9a-f]{64})$/.exec(header || '');
  if (!m || Math.abs(Date.now() / 1000 - m[1]) > 300) return false;
  const exp = crypto.createHmac('sha256', secret).update(m[1] + '.' + rawBody).digest();
  const got = Buffer.from(m[2], 'hex');
  return got.length === exp.length && crypto.timingSafeEqual(got, exp);
}

Pro Sales Support · Partner API v1 · Sandbox. Για τεχνικά ζητήματα απευθυνθείτε στην επαφή σας στην PSS, αναφέροντας το request_id της απόκρισης.