☰ Μενού · Idempotency
Ξεκινώντας

Idempotency

Το δίκτυο μπορεί να πέσει στη μέση μιας κλήσης. Κάθε εγγραφή επαναλαμβάνεται με ασφάλεια, ώστε ο πελάτης να μην πάρει ποτέ διπλό cashback για μία απόδειξη.

Αποδείξεις και επισκέψεις: external_id

Τα POST /v1/transactions και POST /v1/visits απαιτούν external_id: το δικό σας id της απόδειξης ή της επίσκεψης. Κάθε external_id εφαρμόζεται μία φορά ανά επιχείρηση. Αν το στείλετε ξανά, λαμβάνετε 200 με το αποθηκευμένο αποτέλεσμα αντί για 201, και τίποτα δεν αλλάζει στην κάρτα. Αυτό ισχύει για πάντα, όχι μόνο για μία ημέρα, οπότε μπορείτε με ασφάλεια να ξαναστείλετε ολόκληρη βάρδια αφού το ταμείο ήταν εκτός σύνδεσης.

Για τις υπόλοιπες εγγραφές (εγγραφή μέλους, εξαργύρωση επιβράβευσης, δημιουργία πιάτου) στείλτε την κεφαλίδα Idempotency-Key με μοναδική τιμή, για παράδειγμα ένα UUID που δημιουργείτε πριν από την πρώτη προσπάθεια. Αποθηκεύουμε την απάντηση για 24 ώρες. Μια επανάληψη με το ίδιο κλειδί και το ίδιο σώμα επιστρέφει αυτή την απάντηση με την κεφαλίδα Idempotent-Replayed: true. Το ίδιο κλειδί με διαφορετικό σώμα απορρίπτεται με 409 idempotency_key_reused.

curl
curl https://loyaltyfy.io/api/v1/members \
  -H "Authorization: Bearer sk_test_..." \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: 3f6d1c0a-9b0e-4d2b-8e57-enrol-77" \
  -d '{ "phone": "+37366791102", "first_name": "Ion", "consent": true }'

# repeat the same call: same body, same status, plus the header
# Idempotent-Replayed: true

Πώς να επαναλαμβάνετε

  • Επαναλάβετε σε σφάλματα δικτύου, timeouts, 429, 500, 502 και 503. Μην επαναλαμβάνετε άλλα 4xx· η απάντηση δεν θα αλλάξει.
  • Περιμένετε πριν από κάθε επανάληψη και κάθε φορά περισσότερο, για παράδειγμα 1, 2, 4, 8 δευτερόλεπτα.
  • Κρατήστε το ίδιο external_id ή Idempotency-Key σε όλες τις επαναλήψεις μιας λειτουργίας. Νέα τιμή σημαίνει νέα λειτουργία.
Ερωτήσεις για μια σύνδεση: api@loyaltyfy.io. Απαντάμε μέσα σε μία εργάσιμη ημέρα.