- Κατευθυντήριες οδηγίες ενοποίησης
- Υποστηριζόμενες δυνατότητες (Τρόποι πληρωμής)
- Πληρωμές Automated Clearing House
Automated Clearing House
Το Automated Clearing House είναι ένα ηλεκτρονικό δίκτυο για τη διεκπεραίωση πακέτων χρεωστικών και πιστωτικών συναλλαγών μεταξύ χρηματοπιστωτικών ιδρυμάτων στις ΗΠΑ. Τελεί υπό τη διαχείριση της NACHA (National Clearing House Association, Εθνικής Ένωσης Γραφείων Συμψηφισμού).
Το δίκτυο μπορεί να χρησιμοποιηθεί για την ηλεκτρονική μεταφορά χρημάτων μεταξύ λογαριασμών. Χρησιμοποιείται για Direct Payment μέσω Automated Clearing House (π.χ. μια επαναλαμβανόμενη πληρωμή υποθήκης ή μια ηλεκτρονική αγορά καταναλωτή) και Direct Deposit μέσω Automated Clearing House (π.χ. πληρωμές μισθοδοσίας, επιστροφή χρημάτων για ηλεκτρονική αγορά ή πληρωμή B2B).
Η πύλη σάς επιτρέπει να διεκπεραιώνετε απευθείας πληρωμές (πληρωμές) και απευθείας καταθέσεις (επιστροφές χρημάτων) μέσω Automated Clearing House.
Αυτή η σελίδα περιγράφει τις απαιτήσεις για διεκπεραίωση των πληρωμών Automated Clearing House μέσω του Mastercard Gateway και παρέχει μια επισκόπηση της ροής πληρωμών και των λεπτομερειών σχετικά με τις υποστηριζόμενες πράξεις API για πληρωμές Automated Clearing House.
Προαπαιτούμενα
Πρέπει να έχετε έναν λογαριασμό Automated Clearing House διαμορφωμένο με μια τράπεζα εμπόρου Automated Clearing House.
- Πρέπει να λάβετε ρητή έγκριση του πελάτη γι να γίνει η τακτοποίηση Automated Clearing House.
- Καθώς το Automated Clearing House δεν αποτελεί δίκτυο σε πραγματικό χρόνο, μπορούν ακόμα να πραγματοποιηθούν επιστροφές και μετά την υποβολή του αιτήματος πληρωμής στο Mastercard Gateway.
- Πρέπει να συμμορφώνεστε με τους κανονισμούς της NACHA. Η αποτυχία συμμόρφωσης μπορεί να επιφέρει σημαντικές κυρώσεις. Για να παραμείνετε ενημερωμένοι σχετικά με τους ισχύοντες κανονισμούς, επισκεφθείτε τη διεύθυνση https://www.nacha.org/
- Πρέπει να θεσπίσετε, να εφαρμόσετε και να ενημερώσετε τις πολιτικές, τις διαδικασίες και τα συστήματα που σχετίζονται με την έναρξη, την επεξεργασία και την αποθήκευση των καταχωρήσεων, προκειμένου:
- Να διασφαλιστεί η εμπιστευτικότητα των πληροφοριών.
- Να προστατευθείτε από απειλές κατά της ασφάλειας των πληροφοριών.
- Να προστατευθείτε από μη εγκεκριμένη χρήση των πληροφοριών.
Ροή δεδομένων Automated Clearing House
- Ο πληρωτής εγκρίνει την πληρωμή η την κατάθεση.
Οι επιτρεπόμενοι από την NACHA τυπικοί κωδικοί εισόδου (SEC, Standard Entry Codes) είναι:
TEL
. Είσοδος με έναρξη τηλεφωνικά.WEB
. Είσοδος με έναρξη μέσω web.PPD
. Προκαθορισμένη πληρωμή και καταθέσεις.
- Ο έμπορος στέλνει αίτημα συναλλαγής στο Mastercard Gateway.
Τα αιτήματα μπορεί να είναι τύπου
PAY
,REFUND
ήVOID
. - Το Mastercard Gateway εκδίδει μια απόκριση που περιέχει πληροφορίες κατάστασης (π.χ.
APPROVED_PENDING_SETTLEMENT
).Η συναλλαγή προστίθεται στο τρέχον πακέτο για τακτοποίηση.
Το πακέτο των συναλλαγών κλείνει με δύο τρόπους:
- Μία φορά την ημέρα κατά τη ρυθμισμένη ώρα.
- Κλείνοντας το τρέχον ανοιχτό πακέτο υποβάλλοντας ένα αίτημα
CLOSE_BATCH
στο API. Οι επακόλουθες συναλλαγές θα προστεθούν σε νέο πακέτο.
Στο τέλος της ημέρας, όλα τα κλειστά πακέτα που δεν έχουν υποβληθεί ακόμη συλλέγονται στο αρχείο τακτοποίησης και διαβιβάζονται στην τράπεζα εμπόρου Automated Clearing House.
- Η τράπεζα εμπόρου Automated Clearing House Acquirer εκδίδει μια άμεση απόκριση, η οποία περιέχει το αποτέλεσμα επικύρωσης των διαβιβαζόμενων δεδομένων (π.χ.
APPROVED
ήDECLINED
), και υποβάλλει τα αιτήματα πληρωμής στο δίκτυο Automated Clearing House για διεκπεραίωση.Σημειώσεις:
- Μια κατάσταση
APPROVED
που εκδίδεται από την τράπεζα εμπόρου Automated Clearing House συνεπάγεται απλώς την επικύρωση της αποδοχή της διαβίβασης για περαιτέρω διεκπεραίωση, όχι μια πραγματική έγκριση της οικονομικής συναλλαγής. - Για να ειδοποιείστε όταν υπάρχει απόκριση της τράπεζας εμπόρου Automated Clearing House, εγγραφείτε στις Ειδοποιήσεις Webhook.
- Μια κατάσταση
- Το δίκτυο Automated Clearing House διαχειρίζεται τις συναλλαγές πληρωμής μεταξύ των ισχυόντων χρηματοπιστωτικών ιδρυμάτων.
- Μετά από καθυστέρηση έως και 3 ημερών, το δίκτυο Automated Clearing House στέλνει μια αναφορά εξαίρεσης για τα μη εγκριθέντα αιτήματα πληρωμής στην τράπεζα εμπόρου Automated Clearing House, η οποία θα σας τη δώσει.
Ενοποίηση πληρωμών Automated Clearing House
Υπάρχουν τρεις επιλογές για την ενοποίηση πληρωμών Automated Clearing House στη σελίδα πληρωμής σας:
Αν έχετε μια υπάρχουσα ενοποίηση Hosted Checkout, μπορείτε να χρησιμοποιήσετε το Hosted Checkout για να επαληθεύσετε τις λεπτομέρειες της πληρωμής Automated Clearing House.
Αυτό μπορείτε να το κάνετε ρυθμίζοντας το interaction.operation=VERIFY
στο αίτημα Create Checkout Session. Το Hosted Checkout εμφανίζει πληρωμές Automated Clearing House ως μια επιλογή πληρωμής στον πληρωτή. Τα δεδομένα που εισάγονται από τον πληρωτή επαληθεύονται χρησιμοποιώντας τις μεθόδους επαλήθευσης που υποστηρίζονται από τη διαμορφωμένη τράπεζα εμπόρου.
Μπορείτε να καθορίσετε την επιτυχία της πράξης επαλήθευσης συγκρίνοντας την παράμετρο resultIndicator
με την παράμετρο successIndicator
. Αν η αλληλεπίδραση δεν ήταν επιτυχής, το Hosted Checkout εμφανίζει ένα μήνυμα που υποδεικνύει ότι η επαλήθευση απέτυχε και προτρέπει τον πληρωτή να δοκιμάσει ξανά.
Αν έχετε τη δική σας σελίδα πληρωμής, μπορείτε να κάνετε την επιλογή ενοποίησης Hosted Session προκειμένου το Mastercard Gateway να δεσμεύσει με ασφάλεια τις λεπτομέρειες πληρωμής Automated Clearing House και να τις αποθηκεύσει ένα session πληρωμής (payment session).
<html> <head> <!-- INCLUDE SESSION.JS JAVASCRIPT LIBRARY --> <script src="htt/version/72/merchant/<MERCHANTID>/session.js"></script> <!-- APPLY CLICK-JACKING STYLING AND HIDE CONTENTS OF THE PAGE --> <style id="antiClickjack">body{display:none !important;}</style> </head> <body> <!-- CREATE THE HTML FOR THE PAYMENT PAGE --> <div>Please enter your Automated Clearing House details:</div> <div> <label class="control-label" id="ach-account-type-label">Account Type:</label> <select class="form-control col-sm-6" name="ach-account-type" id="ach-account-type"> <option value="CONSUMER_SAVINGS">Consumer Savings Account</option> <option value="CONSUMER_CHECKING" selected>Consumer Checking Account</option> <option value="CORPORATE_CHECKING">Business Checking Account</option> </select> </div> <div>Bank Account Holder: <input type="text" id="ach-account-holder" class="input-field" value="" readonly></div> <div>Bank Account Number:<input type="text" id="ach-account-number" class="input-field" value="" readonly></div> <div>Routing Number:<input type="text" id="ach-routing-number" class="input-field" value="" readonly></div> <div><button id="payButton" onclick="pay();">Pay Now</button></div> <!-- JAVASCRIPT FRAME-BREAKER CODE TO PROVIDE PROTECTION AGAINST IFRAME CLICK-JACKING --> <script type="text/javascript"> if (self === top) { var antiClickjack = document.getElementById("antiClickjack"); antiClickjack.parentNode.removeChild(antiClickjack); } else { top.location = self.location; } PaymentSession.configure({ fields: { // ATTACH HOSTED FIELDS TO YOUR PAYMENT PAGE FOR ACH ach: { accountType: "#ach-account-type", bankAccountHolder: "#ach-account-holder", bankAccountNumber: "#ach-account-number", routingNumber: "#ach-routing-number" } }, //SPECIFY YOUR MITIGATION OPTION HERE frameEmbeddingMitigation: ["javascript"], callbacks: { initialized: function(response) { // HANDLE INITIALIZATION RESPONSE }, formSessionUpdate: function(response) { // HANDLE RESPONSE FOR UPDATE SESSION if (response.status) { if ("ok" == response.status) { console.log("Session updated with data: " + response.session.id); } else if ("fields_in_error" == response.status) { console.log("Session update failed with field errors."); if (response.errors.bankAccountHolder) { console.log("Bank account holder invalid."); } if (response.errors.bankAccountNummber) { console.log("Bank account number invalid."); } if (response.errors.routingNumber) { console.log("Routing number invalid."); } } else if ("request_timeout" == response.status) { console.log("Session update failed with request timeout: " + response.errors.message); } else if ("system_error" == response.status) { console.log("Session update failed with system error: " + response.errors.message); } } else { console.log("Session update failed: " + response); } } } }); function pay() { // UPDATE THE SESSION WITH THE INPUT FROM HOSTED FIELDS PaymentSession.updateSessionFromForm('ach'); } </script> </body> </html>
- Συμπεριλάβετε τη βιβλιοθήκη
session.js
JavaScript πελάτη που φιλοξενείται από την πύλη στη σελίδα πληρωμής σας. Η διαδρομή προς αυτό το αρχείο περιλαμβάνει τόσο την έκδοση API όσο και το αναγνωριστικό εμπόρου για την περίοδο λειτουργίας (session). - Δημιουργήστε την HTML για τη σελίδα πληρωμής που περιέχει τα πεδία Automated Clearing House.
Για να αποτρέψετε την υποβολή ευαίσθητων δεδομένων στον διακομιστή, βεβαιωθείτε ότι τα πεδία ευαίσθητων δεδομένων είναιreadonly
και ΔΕΝ έχουν το χαρακτηριστικόname
. - Κάντε επίκληση στη συνάρτηση
PaymentSession.configure(configuration)
.
Το αντικείμενο
configuration
σάς επιτρέπει να προσαρτήσετε hosted πεδία στη σελίδα πληρωμής σας. Πρέπει να δώσετε τα εξής:
- session(optional), αν δεν το δώσετε, η βιβλιοθήκη πελάτη δημιουργεί ένα session πληρωμής (payment session).
- επιλογείς πεδίων για πεδία πληρωμής Automated Clearing House, οι οποίοι όταν παρέχονται, αντικαθίστανται από αντίστοιχα πεδία μεσολάβησης ενσωματωμένα σε iFrames που φιλοξενούνται από το Mastercard Gateway. Τα πεδία μεσολάβησης θα έχουν την ίδια εμφάνιση και αίσθηση με τα αντικατεστημένα πεδία.
-
επιλογές μετριασμού για την αποτροπή clickjacking
Το clickjacking, γνωστό και ως "επίθεση επανόρθωσης UI", είναι όταν ένας εισβολέας χρησιμοποιεί πολλαπλά διαφανή ή αδιαφανή επίπεδα για να εξαπατήσει έναν χρήστη να κάνει κλικ σε ένα κουμπί ή σε έναν σύνδεσμο σε άλλη σελίδα ενώ σκόπευε να κάνει κλικ στη σελίδα του ανώτερου επιπέδου. Για να χρησιμοποιήσετε το Hosted Session, πρέπει να εφαρμόσετε μία ή περισσότερες από τις ακόλουθες δυνατότητες άμυνας κατά των επιθέσεων clickjacking.
Επιλογή μετριασμού πλαισίων Υλοποίηση javascript
συμπεριλάβετε ένα JavaScript "frame-breaker" στη σελίδα πληρωμής. x-frame-options
ο διακομιστής σας πρέπει να επιστρέψει μια κεφαλίδα απόκρισης X-Frame Options HTTP. csp
ο διακομιστής σας θα πρέπει να επιστρέψει την κεφαλίδα απόκρισης Content-Security-Policy HTTP που περιέχει μια οδηγία frame-ancestors. Πρέπει να καθορίσετε ποιες άμυνες υλοποιούνται μέσω της παραμέτρου
frameEmbeddingMitigation
στην κλήσηPaymentSession.configure(configuration)
. Για πληροφορίες σχετικά με την υπεράσπιση των επιθέσεων clickjacking, βλ. το Clickjacking Defense Cheat Sheet στον εξωτερικό ιστότοπο OWASP. -
ανακλήσεις για τον χειρισμό διαφόρων συμβάντων κατά τη διάρκεια της αλληλεπίδρασης Hosted Session
initialized( )
: γίνεται επίκληση όταν τα hosted πεδία προσαρτώνται στη σελίδα πληρωμής σας.formSessionUpdate( )
: γίνεται επίκληση σε απόκριση στη συνάρτησηPaymentSession.updateSessionFromForm('ach')
(βλ. επόμενο βήμα)
- Γίνεται επίκληση του
PaymentSession.updateSessionFromForm('ach')
για αποθήκευση των λεπτομερειών Automated Clearing House που συλλέγονται σε ένα session πληρωμής (payment session). Μόλις ολοκληρωθεί η διαδικασία, γίνεται επίκληση της ανάκλησηςformSessionUpdate( )
με μια παράμετρο αποτελέσματος. Πρέπει να ελέγξετε την τιμήresult.status
για να καθορίσετε αν η πράξη ήταν επιτυχής. Βλ. Χειρισμός αποκρίσεων ανάκλησης. - Μπορείτε να χρησιμοποιήσετε την επιστρεφόμενη περίοδο λειτουργίας πληρωμής (session.id) για να εκτελέσετε μια συναλλαγή tokenization ή πληρωμής, όταν απαιτείται. Για περισσότερες πληροφορίες, βλ. Εκτέλεση πράξης χρησιμοποιώντας την περίοδο λειτουργίας.
Αναφορά session.js[JavaScript]
Μπορείτε να υποβάλετε λεπτομέρειες πληρωμής Automated Clearing House απευθείας στο Mastercard Gateway χρησιμοποιώντας τις ακόλουθες πράξεις.
Εκκινείτε μια πληρωμή Automated Clearing House υποβάλλοντας ένα αίτημα APIPAY
και μια επιστροφή χρημάτων υποβάλλοντας ένα αίτημα APIREFUND
.
Βεβαιωθείτε ότι έχετε συμπεριλάβει τις ακόλουθες πληροφορίες στο αίτημά σας:
sourceOfFunds.type = ACH.
sourceOfFunds.provided.ach.routingNumber
: Ο αριθμός δρομολόγησης της τράπεζας του πληρωτή.sourceOfFunds.provided.ach.bankAccountNumber
: Ο αριθμός τραπεζικού λογαριασμού του πληρωτή.sourceOfFunds.provided.ach.bankAccountHolder
: Το όνομα του κατόχου λογαριασμού του πληρωτή.sourceOfFunds.provided.ach.accountType
: Ο τύπος τραπεζικού λογαριασμού του πληρωτή.sourceOfFunds.provided.ach.secCode
: Ο κωδικός SEC για την πληρωμή Automated Clearing House που ισχύει για τη συναλλαγή.Ο κωδικός SEC πρέπει να είναι ένα από τα εξής:
TEL
: Μια καταχώρηση χρέωσης Automated Clearing House για μια πληρωμή B2C εγκρίνεται από τον πελάτη τηλεφωνικά. Το τηλέφωνο (TEL) μπορεί να χρησιμοποιηθεί μόνο όταν υπάρχει ήδη σχέση μεταξύ εσάς και τον πληρωτή ή, όταν δεν υπάρχει σχέση, ο πληρωτής ξεκινά την επαφή μαζί σας.WEB
: Μια καταχώρηση χρέωσης Automated Clearing House για μια πληρωμή B2C εγκρίνεται μέσω Internet ή ασύρματου δικτύου.PPD
: Μια χρέωση ή πίστωση Automated Clearing House βασίζεται σε μια εγκεκριμένη ταυτοποίηση που παρέχεται από έναν πληρωτή. Το PPD χρησιμοποιείται για πληρωμές B2C (π.χ. μισθοδοσία εργαζομένων, πληρωμές υποθήκης ή επιστροφή εξόδων).
Μπορείτε να ακυρώσετε την προηγούμενη συναλλαγή για μια παραγγελία υποβάλλοντας ένα αίτημα APIVOID
για την παραγγελία με την παράμετρο του ID συναλλαγής προορισμού να κάνει αναφορά στο αίτημα PAY
ή REFUND
.
Για ένα επιτυχές αίτημα APIVOID
, η συναλλαγή προορισμού στην οποία γίνεται αναφορά καταργείται από το πακέτο και κατά συνέπεια δεν θα υποβληθεί στην τράπεζα εμπόρου Automated Clearing House.
Οι συναλλαγές δεν μπορούν να ακυρωθούν όταν το πακέτο που περιέχει τη συναλλαγή προορισμού στην οποία γίνεται αναφορά έχει κλείσει για τακτοποίηση (δηλαδή βρίσκεται σε εξέλιξη τακτοποίηση) ή έχει γίνει ήδη τακτοποίηση.
Μπορείτε να επαληθεύσετε τις λεπτομέρειες πληρωμής για μια πληρωμή Automated Clearing House υποβάλλοντας ένα αίτημα APIVERIFY
.
Επί του παρόντος, το Mastercard Gateway υποστηρίζει μόνο τη σημασιολογική επαλήθευση των λεπτομερειών πληρωμής ACH, αλλά δεν επαληθεύει ότι ο λογαριασμός είναι έγκυρος τραπεζικός λογαριασμός και ότι η τράπεζα συμμετέχει στο Automated Clearing House.
Διαχείριση και τακτοποίηση πακέτου
Μπορείτε να ελέγξετε το κλείσιμο του πακέτου υποβάλλοντας ένα αίτημα APICLOSE_BATCH
με το ID τράπεζας εμπόρου για την τράπεζα εμπόρου Automated Clearing House. Το ID πληρωτή παρέχεται στο transaction.acquirer.id
, στην απόκριση συναλλαγής.
Ως αποτέλεσμα, το τρέχον πακέτο τράπεζα εμπόρου Automated Clearing House στο Mastercard Gateway θα κλείσει. Οι επακόλουθες συναλλαγές Automated Clearing House θα προστεθούν σε ένα νέο εσωτερικό πακέτο Mastercard Gateway.
Συμφωνία
Η απόκριση Retrieve Transaction για επιτυχείς συναλλαγές Automated Clearing House περιέχει το αναγνωριστικό για τη συναλλαγή που χρησιμοποιεί η τράπεζα εμπόρου στο transaction.receipt
.
Αυτό το αναγνωριστικό θα χρησιμοποιηθεί στην αναφορά λεπτομερειών εξαιρέσεων που παρέχεται από την τράπεζα εμπόρου Automated Clearing House Paymentech Salem. Αυτό περιέχει όλες τις ανεπιτυχείς συναλλαγές Automated Clearing House και μπορεί να χρησιμοποιηθεί για την τακτοποίηση των πληρωμών σας.
Η κατάσταση συναλλαγής που δίνεται από την πύλη (response.gatewayCode
) δεν ενημερώνεται με την πραγματική απόκριση από το δίκτυο Automated Clearing House.
Δοκιμή των συναλλαγών Automated Clearing House
Μπορείτε να δοκιμάσετε την ενοποίησή σας χρησιμοποιώντας το δοκιμαστικό προφίλ εμπόρου.
Το Mastercard Gateway παρέχει έναν εξομοιωτή που θα επιστρέψει μια απόκριση με response.gatewayCode=APPROVED
για όλα τα έγκυρα αιτήματα για πληρωμές Automated Clearing House.