Μετάβαση στο περιεχόμενο
Τεκμηρίωση

Λειτουργίες λογαριασμού

Αυτά τα endpoint καλύπτουν υπόλοιπα, επιστροφές χρημάτων, αναλήψεις και απαντήσεις σε αμφισβητήσεις. Χρησιμοποιούν τα ίδια κλειδιά και τις ίδιες βοηθητικές συναρτήσεις αιτημάτων με τα endpoint πληρωμών.

EndpointΣκοπός
GET /api/account/balanceΥπόλοιπο
GET /api/account/available-balanceΥπόλοιπο προς ανάληψη
POST /api/account/refundsΕπιστροφή χρημάτων ή ακύρωση πληρωμής
GET /api/account/refunds[/{id}]Λίστα ή ανάκτηση επιστροφών χρημάτων
POST /api/account/withdrawalsΑίτημα ανάληψης USDT
GET /api/account/withdrawals[/{id}]Λίστα ή ανάκτηση αναλήψεων
GET /api/account/disputes[/{id}]Λίστα ή ανάκτηση αμφισβητήσεων
POST /api/account/disputes/{id}/evidenceΑπάντηση σε αμφισβήτηση

Συμβάσεις

  • Η υπογραφή, οι κεφαλίδες και το Idempotency-Key λειτουργούν όπως περιγράφεται στην ενότητα Έλεγχος ταυτότητας.
  • Ένα μεμονωμένο στοιχείο επιστρέφεται ως απλό αντικείμενο JSON· οι λίστες επιστρέφονται ως { "data": [...], "meta": {...} }.
  • Τα αναγνωριστικά πληρωμών, επιστροφών, αναλήψεων και αμφισβητήσεων έχουν τη μορφή LUVEI-ABCD-123456. Αποθηκεύστε ολόκληρο το αναγνωριστικό.
  • Τα υπόλοιπα και οι αναλήψεις εκφράζονται στο κύριο νόμισμα του συστήματος· οι επιστροφές χρημάτων και οι αμφισβητήσεις στο νόμισμα της πληρωμής.
  • Το 201 ή 202 σημαίνει ότι το αίτημα έγινε δεκτό, όχι ότι ολοκληρώθηκε. Παρακολουθείτε την κατάσταση ή τις ειδοποιήσεις webhook.
  • Για να δοκιμάσετε αποτελέσματα με κλειδί sandbox, δείτε Sandbox και δοκιμαστικές κάρτες.

Σελιδοποίηση

ΠεδίοΤύποςΥποχρεωτικόΠεριγραφή
pageinteger · queryΠροαιρετικόΑριθμός σελίδας, με αρχή το 1.
per_pageinteger · queryΠροαιρετικόΣτοιχεία ανά σελίδα, από 1 έως 100. Προεπιλογή: 20.
statusstring · queryΠροαιρετικόΕπιστρέφει μόνο στοιχεία με αυτή την κατάσταση.
ΠεδίοΤύποςΠεριγραφή
pageintegerΤρέχουσα σελίδα.
per_pageintegerΣτοιχεία ανά σελίδα.
totalintegerΠλήθος στοιχείων που πληρούν τα κριτήρια.
total_pagesintegerΠλήθος σελίδων (0 αν η λίστα είναι κενή).

Τα στοιχεία ταξινομούνται από το νεότερο προς το παλαιότερο. Μια σελίδα μετά την τελευταία επιστρέφει 200 με κενό data. Τιμή page μικρότερη του 1, τιμή per_page εκτός του εύρους 1–100, άγνωστο status ή άγνωστη παράμετρος επιστρέφει 422 1000001. Δεν υποστηρίζονται φίλτρα ημερομηνίας.

Απάντηση λίστας · Παράδειγμα

{
  "data": [
    {
      "id": "LUVEI-RFND-100001",
      "operation": "refund",
      "status": "requested",
      "amount": "100.00",
      "currency": "USD",
      "reason": "Customer requested a full refund",
      "provider_reference": null,
      "provider_refunded_at": null,
      "created_at": "2026-11-02T09:00:00.000Z",
      "updated_at": null,
      "payment_id": "LUVEI-PAYN-123456",
      "environment": "live"
    }
  ],
  "meta": {
    "page": 1,
    "per_page": 20,
    "total": 1,
    "total_pages": 1
  }
}
GET/api/account/balance

Υπόλοιπο

Ανακτήστε το υπόλοιπό σας και το ποσό που είναι διαθέσιμο για ανάληψη αυτή τη στιγμή. Και οι δύο κλήσεις είναι μόνο ανάγνωσης και αφορούν το πορτοφόλι API σας, το οποίο περιέχει τα κεφάλαια που εισπράχθηκαν μέσω αυτού του API. Τα λοιπά πορτοφόλια του πάνελ σας ούτε εμφανίζονται ούτε συνυπολογίζονται.

ΠεδίοΤύποςΠεριγραφή
currency_codestringΝόμισμα όλων των ποσών: το κύριο νόμισμα του συστήματος.
available_amountstringΕκκαθαρισμένα κεφάλαια στο πορτοφόλι API σας που είναι διαθέσιμα για χρήση τώρα. Τα μη εκκαθαρισμένα και τα δεσμευμένα ποσά εξαιρούνται.
pending_settlement_amountstringΚεφάλαια από πληρωμές που δεν έχουν ακόμη εκκαθαριστεί. Στο sandbox είναι πάντα 0.00.
environmentstringsandbox ή live.
./payniko.sh GET '/api/account/balance'
import {api} from './payniko.mjs';

const balance = await api('GET', '/api/account/balance');
console.log(balance);
<?php
require __DIR__ . '/payniko.php';

$balance = payniko_api('GET', '/api/account/balance');
print_r($balance);
from payniko import api

balance = api("GET", "/api/account/balance")
print(balance)

Απάντηση · Παράδειγμα

{
  "currency_code": "USD",
  "available_amount": "1250.00",
  "pending_settlement_amount": "300.00",
  "environment": "live"
}

Οι πληρωμές σε άλλα νομίσματα μετατρέπονται στο κύριο νόμισμα. Οι προμήθειες και οι ημερομηνίες εκκαθάρισης δεν περιλαμβάνονται σε αυτή την απάντηση.

GET/api/account/available-balance

Υπόλοιπο προς ανάληψη

ΠεδίοΤύποςΠεριγραφή
currency_codestringΤο κύριο νόμισμα του συστήματος.
withdrawable_amountstringΕκκαθαρισμένα κεφάλαια στο πορτοφόλι API σας που μπορούν να αναληφθούν τώρα. Πρόκειται ακριβώς για το ποσό που μπορείτε να αναλάβετε μέσω του POST /api/account/withdrawals.
can_withdrawbooleanfalse όσο οποιοδήποτε από τα υπόλοιπά σας είναι αρνητικό, οπότε δεν είναι δυνατή καμία ανάληψη. Το true δεν εγγυάται την εκτέλεση της ανάληψης.
environmentstringsandbox ή live.
./payniko.sh GET '/api/account/available-balance'
import {api} from './payniko.mjs';

const available = await api('GET', '/api/account/available-balance');
console.log(available);
<?php
require __DIR__ . '/payniko.php';

$available = payniko_api('GET', '/api/account/available-balance');
print_r($available);
from payniko import api

available = api("GET", "/api/account/available-balance")
print(available)

Απάντηση · Παράδειγμα

{
  "currency_code": "USD",
  "withdrawable_amount": "1250.00",
  "can_withdraw": true,
  "environment": "live"
}

Εξαιρούνται τα ποσά που έχουν δεσμευτεί για ανοιχτές αναλήψεις, τα μη εκκαθαρισμένα κεφάλαια και οι δεσμεύσεις. Το υπόλοιπο ελέγχεται ξανά όταν υποβάλλετε αίτημα ανάληψης, επομένως το αίτημα μπορεί και πάλι να αποτύχει με 409 9000020.

POST/api/account/refundsΑπαιτείται Idempotency-Key

Αίτημα επιστροφής χρημάτων ή ακύρωσης

Επιστρέψτε στον πληρωτή ολόκληρο το ποσό μιας επιτυχημένης πληρωμής. Κάθε αίτημα εξετάζεται και διεκπεραιώνεται από το Payniko· το 202 επιβεβαιώνει μόνο ότι το αίτημα έγινε δεκτό.

Σώμα αιτήματος

ΠεδίοΤύποςΥποχρεωτικόΠεριγραφήΠαράδειγμα
payment_idstring · LUVEI-ABCD-123456ΥποχρεωτικόΠληρωμή σε κατάσταση succeeded που δημιουργήθηκε μέσω του /api/payments στο ίδιο περιβάλλον. Για οποιοδήποτε άλλο αναγνωριστικό επιστρέφεται 404 9000009.LUVEI-PAYN-123456
operation_typestringΥποχρεωτικόΗ λειτουργία που ζητείται.
refundvoid
refund
reasonstringΥποχρεωτικό3–500 χαρακτήρες. Εξετάζεται από την ομάδα λειτουργιών του Payniko.Customer requested a full refund

Δεν υπάρχει πεδίο ποσού· επιστρέφεται ολόκληρο το ποσό της πληρωμής. Μια πληρωμή μπορεί να έχει μόνο μία επιστροφή χρημάτων ή ακύρωση κάθε φορά. Όσο υπάρχει ανοιχτή ή ολοκληρωμένη επιστροφή χρημάτων ή ακύρωση, ή όσο για την πληρωμή υπάρχει αμφισβήτηση που δεν έχει κριθεί υπέρ σας, ένα νέο αίτημα επιστρέφει 409 9000014.

KEY="$(openssl rand -hex 16)"  # store with the order before sending; reuse it after network errors
./payniko.sh POST '/api/account/refunds' '{
  "payment_id": "LUVEI-PAYN-123456",
  "operation_type": "refund",
  "reason": "Customer requested a full refund"
}' "$KEY"
import {api, randomUUID} from './payniko.mjs';

const key = randomUUID(); // Store this key with the order before sending; reuse it after network errors.
const refund = await api('POST', '/api/account/refunds', {
  "payment_id": "LUVEI-PAYN-123456",
  "operation_type": "refund",
  "reason": "Customer requested a full refund"
}, key);
console.log(refund);
<?php
require __DIR__ . '/payniko.php';

$key = bin2hex(random_bytes(16)); // store with the order; reuse it after network errors
$refund = payniko_api('POST', '/api/account/refunds', [
    "payment_id" => 'LUVEI-PAYN-123456',
    "operation_type" => 'refund',
    "reason" => 'Customer requested a full refund',
], $key);
print_r($refund);
from payniko import api
import uuid

key = str(uuid.uuid4())  # store with the order; reuse it after network errors
refund = api("POST", "/api/account/refunds", {
    "payment_id": "LUVEI-PAYN-123456",
    "operation_type": "refund",
    "reason": "Customer requested a full refund"
}, key)
print(refund)

Απάντηση · Παράδειγμα

{
  "id": "LUVEI-RFND-100001",
  "operation": "refund",
  "status": "requested",
  "amount": "100.00",
  "currency": "USD",
  "reason": "Customer requested a full refund",
  "provider_reference": null,
  "provider_refunded_at": null,
  "created_at": "2026-11-02T09:00:00.000Z",
  "updated_at": null,
  "payment_id": "LUVEI-PAYN-123456",
  "environment": "live"
}

Απάντηση · 202

Επιστρέφει το αντικείμενο επιστροφής χρημάτων. Η εκ νέου αποστολή με το ίδιο κλειδί και το ίδιο σώμα επιστρέφει 202 με την ίδια επιστροφή χρημάτων.

Πιθανά σφάλματα

Λίστα και ανάκτηση επιστροφών χρημάτων

./payniko.sh GET '/api/account/refunds?status=completed&page=1&per_page=20'
import {api} from './payniko.mjs';

const refunds = await api('GET', '/api/account/refunds?status=completed&page=1&per_page=20');
console.log(refunds);
<?php
require __DIR__ . '/payniko.php';

$refunds = payniko_api('GET', '/api/account/refunds?status=completed&page=1&per_page=20');
print_r($refunds);
from payniko import api

refunds = api("GET", "/api/account/refunds?status=completed&page=1&per_page=20")
print(refunds)
ΠεδίοΤύποςΥποχρεωτικόΠεριγραφή
pageinteger · queryΠροαιρετικόΑριθμός σελίδας, με αρχή το 1.
per_pageinteger · queryΠροαιρετικόΣτοιχεία ανά σελίδα, από 1 έως 100. Προεπιλογή: 20.
statusstring · queryΠροαιρετικόΕπιστρέφει μόνο επιστροφές χρημάτων με αυτή την κατάσταση.
operation_typestring · queryΠροαιρετικόrefund ή void.

Το GET /api/account/refunds/{id} επιστρέφει μία επιστροφή χρημάτων (404 9000009 αν δεν υπάρχει). Η λίστα περιέχει τις επιστροφές χρημάτων που ζητήθηκαν μέσω του API.

Αντικείμενο επιστροφής χρημάτων

ΠεδίοΤύποςΠεριγραφή
idstring · LUVEI-ABCD-123456Αναγνωριστικό της επιστροφής χρημάτων.
operationstringrefund ή void, όπως αποστάλθηκε στο operation_type.
statusstringΔείτε τον πίνακα παρακάτω.
amountstringΟλόκληρο το ποσό της πληρωμής.
currencystringΤο νόμισμα της πληρωμής.
reasonstringΗ αιτιολογία που δόθηκε στο αίτημα.
provider_referencestring | nullΚωδικός αναφοράς της επιστροφής χρημάτων μετά την επεξεργασία της, μόλις είναι διαθέσιμος.
provider_refunded_atstring · date-time | nullΧρόνος επεξεργασίας της επιστροφής χρημάτων, αν είναι γνωστός.
created_atstring · date-timeΧρόνος υποβολής του αιτήματος.
updated_atstring · date-time | nullΧρόνος της τελευταίας μεταβολής.
payment_idstring · LUVEI-ABCD-123456 | nullΗ πληρωμή για την οποία γίνεται η επιστροφή χρημάτων.
environmentstringsandbox ή live.
ΚατάστασηΣημασία
requestedΈγινε δεκτή, αλλά δεν έχει ακόμη υποβληθεί σε επεξεργασία.
processingΣε επεξεργασία.
awaiting_provider_manualΟλοκληρώνεται χειροκίνητα· αυτό μπορεί να διαρκέσει περισσότερο.
completedΟλοκληρώθηκε. Τελική κατάσταση.
rejectedΑπορρίφθηκε. Τελική κατάσταση.
failedΑπέτυχε. Τελική κατάσταση.
cancelledΑκυρώθηκε. Τελική κατάσταση.

Το GET /api/account/refunds/{id} επιστρέφει πάντα την τρέχουσα κατάσταση. Το αποτέλεσμα αποστέλλεται επίσης ως ειδοποίηση webhook.

POST/api/account/withdrawalsΑπαιτείται Idempotency-Key

Αίτημα ανάληψης

Αναλάβετε κεφάλαια από το πορτοφόλι API σας σε USDT στο δίκτυο TRON (TRC20). Το ποσό δεσμεύεται και αποστέλλεται μετά από έλεγχο.

Σώμα αιτήματος

ΠεδίοΤύποςΥποχρεωτικόΠεριγραφήΠαράδειγμα
amountstringΥποχρεωτικόΔύο δεκαδικά ψηφία, για παράδειγμα 50.00· δεν πρέπει να είναι 0.00 και πρέπει να είναι τουλάχιστον ίσο με το ελάχιστο ποσό σας. Μαζί με τις σημερινές αναλήψεις που έχουν ζητηθεί και αποσταλεί, πρέπει να παραμένει εντός του ημερήσιου ορίου σας."50.00"
addressstringΥποχρεωτικόΔιεύθυνση TRC20: 34 χαρακτήρες, με αρχικό χαρακτήρα T και έγκυρο άθροισμα ελέγχου.YOUR_VERIFIED_TRC20_ADDRESS
address_acknowledgedbooleanΥποχρεωτικόΠρέπει να είναι true, ως επιβεβαίωση ότι η διεύθυνση είναι σωστή.true
webhook_urlstring · uriΥποχρεωτικόEndpoint που λαμβάνει τις ειδοποιήσεις webhook αυτής της ανάληψης. Ισχύουν οι ίδιοι κανόνες με τις πληρωμές.https://merchant.example/webhooks/withdrawals

Τα success_url και fail_url δεν επιτρέπονται σε αυτό το αίτημα.

# Replace YOUR_VERIFIED_TRC20_ADDRESS with the address you confirmed with its owner.
KEY="$(openssl rand -hex 16)"  # store with the order before sending; reuse it after network errors
./payniko.sh POST '/api/account/withdrawals' '{
  "amount": "50.00",
  "address": "YOUR_VERIFIED_TRC20_ADDRESS",
  "address_acknowledged": true,
  "webhook_url": "https://merchant.example/webhooks/withdrawals"
}' "$KEY"
import {api, randomUUID} from './payniko.mjs';

// Replace YOUR_VERIFIED_TRC20_ADDRESS with the address you confirmed with its owner.
const key = randomUUID(); // Store this key with the order before sending; reuse it after network errors.
const withdrawal = await api('POST', '/api/account/withdrawals', {
  "amount": "50.00",
  "address": "YOUR_VERIFIED_TRC20_ADDRESS",
  "address_acknowledged": true,
  "webhook_url": "https://merchant.example/webhooks/withdrawals"
}, key);
console.log(withdrawal);
<?php
require __DIR__ . '/payniko.php';

// Replace YOUR_VERIFIED_TRC20_ADDRESS with the address you confirmed with its owner.
$key = bin2hex(random_bytes(16)); // store with the order; reuse it after network errors
$withdrawal = payniko_api('POST', '/api/account/withdrawals', [
    "amount" => '50.00',
    "address" => 'YOUR_VERIFIED_TRC20_ADDRESS',
    "address_acknowledged" => true,
    "webhook_url" => 'https://merchant.example/webhooks/withdrawals',
], $key);
print_r($withdrawal);
from payniko import api
import uuid

# Replace YOUR_VERIFIED_TRC20_ADDRESS with the address you confirmed with its owner.
key = str(uuid.uuid4())  # store with the order; reuse it after network errors
withdrawal = api("POST", "/api/account/withdrawals", {
    "amount": "50.00",
    "address": "YOUR_VERIFIED_TRC20_ADDRESS",
    "address_acknowledged": True,
    "webhook_url": "https://merchant.example/webhooks/withdrawals"
}, key)
print(withdrawal)

Απάντηση · Παράδειγμα

{
  "id": "LUVEI-WTHD-100002",
  "status": "requested",
  "amount": "50.00",
  "currency": "USD",
  "asset": "USDT",
  "network": "TRC20",
  "address": "YOUR_VERIFIED_TRC20_ADDRESS",
  "usdt_amount": "49.950000",
  "tx_hash": null,
  "rejection_reason": null,
  "requested_at": "2026-11-02T10:00:00.000Z",
  "processed_at": null,
  "created_at": "2026-11-02T10:00:00.000Z",
  "environment": "live"
}

Απάντηση · 201

Επιστρέφει την ανάληψη με την κατάστασή της, συνήθως requested. Η εκ νέου αποστολή με το ίδιο κλειδί και το ίδιο σώμα επιστρέφει 201 με την ίδια ανάληψη.

Πιθανά σφάλματα

Λίστα και ανάκτηση αναλήψεων

./payniko.sh GET '/api/account/withdrawals?status=requested&page=1&per_page=20'
import {api} from './payniko.mjs';

const withdrawals = await api('GET', '/api/account/withdrawals?status=requested&page=1&per_page=20');
console.log(withdrawals);
<?php
require __DIR__ . '/payniko.php';

$withdrawals = payniko_api('GET', '/api/account/withdrawals?status=requested&page=1&per_page=20');
print_r($withdrawals);
from payniko import api

withdrawals = api("GET", "/api/account/withdrawals?status=requested&page=1&per_page=20")
print(withdrawals)

Φιλτράρετε με βάση το status. Το GET /api/account/withdrawals/{id} επιστρέφει μία ανάληψη (404 9000023 αν δεν υπάρχει).

Αντικείμενο ανάληψης

ΠεδίοΤύποςΠεριγραφή
idstring · LUVEI-ABCD-123456Αναγνωριστικό της ανάληψης.
statusstringΔείτε τον πίνακα παρακάτω.
requestedsentrejected
amountstringΤο ζητούμενο ποσό στο κύριο νόμισμα.
currencystringΤο κύριο νόμισμα.
assetstringΠάντα USDT.
networkstringΠάντα TRC20.
addressstringΔιεύθυνση προορισμού.
usdt_amountstringΠοσό USDT προς αποστολή (έξι δεκαδικά ψηφία).
tx_hashstring | nullΤιμή κατακερματισμού (hash) της συναλλαγής blockchain, μόλις γίνει γνωστή.
rejection_reasonstring | nullΗ αιτία της απόρριψης.
requested_atstring · date-timeΧρόνος υποβολής του αιτήματος.
processed_atstring · date-time | nullΧρόνος αποστολής ή απόρριψης της ανάληψης.
created_atstring · date-timeΧρόνος δημιουργίας.
environmentstringsandbox ή live.
ΚατάστασηΣημασία
requestedΔημιουργήθηκε· το ποσό έχει δεσμευτεί, αλλά δεν έχει αποσταλεί ακόμη.
sentΑποστάλθηκε. Τελική κατάσταση. Το tx_hash μπορεί αρχικά να είναι null και προστίθεται αργότερα.
rejectedΔεν αποστάλθηκε· το δεσμευμένο ποσό επιστρέφει στο διαθέσιμο υπόλοιπό σας. Δείτε το rejection_reason. Τελική κατάσταση.

Η ομάδα του Payniko αποστέλλει ή απορρίπτει κάθε ανάληψη και, στη συνέχεια, ορίζει το processed_at, μαζί με το tx_hash ή το rejection_reason. Κατά τη διάρκεια συντήρησης, ένα νέο αίτημα ανάληψης μπορεί να επιστρέψει 503 1000014.

GET/api/account/disputes

Λίστα και ανάκτηση αμφισβητήσεων

Μια αμφισβήτηση (chargeback) ανοίγει όταν ο κάτοχος της κάρτας αμφισβητεί μια πληρωμή στην τράπεζά του. Με το άνοιγμα της αμφισβήτησης, το ποσό συνήθως αφαιρείται από το υπόλοιπό σας· επιστρέφεται αν η αμφισβήτηση κριθεί υπέρ σας και παραμένει αφαιρεμένο αν κριθεί εις βάρος σας. Απαντήστε πριν από τη λήξη της προθεσμίας.

./payniko.sh GET '/api/account/disputes?status=open&page=1&per_page=20'
import {api} from './payniko.mjs';

const disputes = await api('GET', '/api/account/disputes?status=open&page=1&per_page=20');
console.log(disputes);
<?php
require __DIR__ . '/payniko.php';

$disputes = payniko_api('GET', '/api/account/disputes?status=open&page=1&per_page=20');
print_r($disputes);
from payniko import api

disputes = api("GET", "/api/account/disputes?status=open&page=1&per_page=20")
print(disputes)

Απάντηση · Παράδειγμα

{
  "data": [
    {
      "id": "LUVEI-DSPT-100003",
      "service": "api",
      "amount": "100.00",
      "currency": "USD",
      "status": "open",
      "reason": "product_not_delivered",
      "reason_note": null,
      "occurred_on": "2026-11-03",
      "evidence_due_at": "2026-11-10T09:00:00.000Z",
      "evidence_submitted_at": null,
      "merchant_evidence_note": null,
      "merchant_evidence_submitted_at": null,
      "resolved_at": null,
      "created_at": "2026-11-03T09:00:00.000Z",
      "payment_id": "LUVEI-PAYN-123456",
      "environment": "sandbox"
    }
  ],
  "meta": {
    "page": 1,
    "per_page": 20,
    "total": 1,
    "total_pages": 1
  }
}

Φιλτράρετε με βάση το status. Το GET /api/account/disputes/{id} επιστρέφει μία αμφισβήτηση (404 9000015 αν δεν υπάρχει). Η λίστα περιέχει όλες τις αμφισβητήσεις του λογαριασμού σας· το payment_id ορίζεται όταν η αμφισβήτηση αφορά πληρωμή API.

Αντικείμενο αμφισβήτησης

ΠεδίοΤύποςΠεριγραφή
idstring · LUVEI-ABCD-123456Αναγνωριστικό της αμφισβήτησης.
servicestringΗ προέλευση της πληρωμής, για παράδειγμα api.
amountstringΤο αμφισβητούμενο ποσό στο νόμισμα της πληρωμής.
currencystringΤο νόμισμα της πληρωμής.
statusstringΔείτε τον πίνακα παρακάτω.
openunder_reviewwonlost
reasonstringΗ αιτία που δήλωσε η τράπεζα. Προβλέψτε χειρισμό και για άγνωστες τιμές.
fraudunauthorizedproduct_not_deliveredduplicateamount_mismatchother
reason_notestring | nullΣημείωση της τράπεζας, εφόσον υπάρχει.
occurred_onstring · dateΗμερομηνία της αμφισβήτησης (YYYY-MM-DD).
evidence_due_atstring · date-time | nullΠροθεσμία υποβολής της απάντησής σας.
evidence_submitted_atstring · date-time | nullΧρόνος υποβολής της αντίκρουσης στην τράπεζα.
merchant_evidence_notestring | nullΗ πιο πρόσφατη απάντησή σας.
merchant_evidence_submitted_atstring · date-time | nullΧρόνος υποβολής της απάντησής σας.
resolved_atstring · date-time | nullΧρόνος έκδοσης της απόφασης για την αμφισβήτηση.
created_atstring · date-timeΧρόνος δημιουργίας.
payment_idstring · LUVEI-ABCD-123456 | nullΗ αμφισβητούμενη πληρωμή API· διαφορετικά, null.
environmentstringsandbox ή live.
ΚατάστασηΣημασία
openΝέα αμφισβήτηση. Μπορείτε να απαντήσετε έως το evidence_due_at.
under_reviewΗ αντίκρουση έχει υποβληθεί στην τράπεζα και η απόφαση εκκρεμεί. Μπορείτε ακόμη να απαντήσετε έως τη λήξη της προθεσμίας.
wonΚρίθηκε υπέρ σας. Τελική κατάσταση.
lostΚρίθηκε εις βάρος σας. Τελική κατάσταση.
POST/api/account/disputes/{id}/evidenceΑπαιτείται Idempotency-Key

Απάντηση σε αμφισβήτηση

Σώμα αιτήματος

ΠεδίοΤύποςΥποχρεωτικόΠεριγραφή
notestringΥποχρεωτικόΗ απάντησή σας, 3–4000 χαρακτήρες: στοιχεία παράδοσης, επικοινωνία με τον πελάτη και τα αποδεικτικά στοιχεία που διαθέτετε.
KEY="$(openssl rand -hex 16)"  # store with the order before sending; reuse it after network errors
./payniko.sh POST '/api/account/disputes/LUVEI-DSPT-100003/evidence' '{
  "note": "The order was delivered on 2026-10-28; tracking number and signed receipt are available."
}' "$KEY"
import {api, randomUUID} from './payniko.mjs';

const key = randomUUID(); // Store this key with the order before sending; reuse it after network errors.
const dispute = await api('POST', '/api/account/disputes/LUVEI-DSPT-100003/evidence', {
  "note": "The order was delivered on 2026-10-28; tracking number and signed receipt are available."
}, key);
console.log(dispute);
<?php
require __DIR__ . '/payniko.php';

$key = bin2hex(random_bytes(16)); // store with the order; reuse it after network errors
$dispute = payniko_api('POST', '/api/account/disputes/LUVEI-DSPT-100003/evidence', [
    "note" => 'The order was delivered on 2026-10-28; tracking number and signed receipt are available.',
], $key);
print_r($dispute);
from payniko import api
import uuid

key = str(uuid.uuid4())  # store with the order; reuse it after network errors
dispute = api("POST", "/api/account/disputes/LUVEI-DSPT-100003/evidence", {
    "note": "The order was delivered on 2026-10-28; tracking number and signed receipt are available."
}, key)
print(dispute)

Απάντηση · Παράδειγμα

{
  "id": "LUVEI-DSPT-100003",
  "service": "api",
  "amount": "100.00",
  "currency": "USD",
  "status": "open",
  "reason": "product_not_delivered",
  "reason_note": null,
  "occurred_on": "2026-11-03",
  "evidence_due_at": "2026-11-10T09:00:00.000Z",
  "evidence_submitted_at": null,
  "merchant_evidence_note": "The order was delivered on 2026-10-28; tracking number and signed receipt are available.",
  "merchant_evidence_submitted_at": "2026-11-04T08:00:00.000Z",
  "resolved_at": null,
  "created_at": "2026-11-03T09:00:00.000Z",
  "payment_id": "LUVEI-PAYN-123456",
  "environment": "sandbox"
}

Απάντηση · 200

Επιστρέφει την αμφισβήτηση μαζί με τη σημείωσή σας.

  • Γίνεται δεκτή μόνο όσο η αμφισβήτηση είναι σε open ή under_review και πριν από το evidence_due_at· διαφορετικά, το αίτημα επιστρέφει 409 9000016.
  • Ένα νέο αίτημα με νέο Idempotency-Key αντικαθιστά την προηγούμενη σημείωσή σας.
  • Η μεταφόρτωση αρχείων μέσω του API δεν υποστηρίζεται. Περιγράψτε στη σημείωση τα διαθέσιμα αποδεικτικά στοιχεία.

Πιθανά σφάλματα

Για να δοκιμάσετε αμφισβητήσεις με κλειδί sandbox, δημιουργήστε μία με το POST /api/sandbox/disputes.