EMV chip reader/payment processor solution with REST API capabilities - rest

I am looking to implement an EMV chip reader/payment processor solution with REST API capabilities and Card Verification Modes (CVMs): Chip-and-Signature for Credit Cards and Chip-and-PIN for Debit Cards.
Here is the process flow that I need:
Web Based POS sends transaction to the server.
Transaction information is saved (order number, product numbers, total, etc.). The server sends an API request to the EMV to start credit / debit card payment process. HTTP local network connection.
EMV receives API Request from the server via HTTP and start capturing payment process.
Connects to the payment gateway to process payment. NOTE: EMV must have REST API capabilities.
The payment gateway processes the payment and sends the answer back to the EMV, which sends the answer back to the server to update the transaction record.
The server sends the answer to the host to finalize the transaction, depending on the answer received.
Has anyone implemented this type of solution before? If so, which solution (Square, Clover, etc.) was used?

Your question doesn't really belong to stackoverflow - it's not programming, you have not shown any code nor described what you are doing and what have you done so far.
What you describe is pretty generic description of the Retail ECR protocol. There are numerous variants and implementations, some may expose REST. Some may work with central server exposing REST API to POS, others will have a listening port on the EFT terminal side (there should normally be some firewall limitations on how many connections and what is the connection source, etc.). Almost any acquirer or PSP will have some implementation (however not necessarily with REST over HTTP), so you might want to start with your local service providers as they will probably best reflect your needs where it comes to acceptance methods, card schemes supported, etc.

You could have added a simple illustration to make the interactions clearer. EMV is a specification or a standard FYI.
In Step 2. Did you mean you have an EMV certified terminal which exposes an API, which the server can call to initiate a transaction with card ? In that case HTTP connection is between the server and terminal, and the chip and terminal connection is direct. Correct ? This is do able.
Step 3. Now that the terminal has already communicated with card in APDUs and has at hand a cryptogram( ARQC, which require you to send the request to issuer for verification - Onilne ), you need to communicate with the acquirer. This communication is up to your implementation. You may do it via SOAP or REST or whatever.
Step 4. If an ARPC exists, this should be forwarded to card, which the card will validate and ensure the response is from right issuer. Otherwise it may send the acquirer a reversal( if the response was approved ). If ARPC is validated call host to update on the payment.
In any case if you are looking for a solution where the server will communicate with the card directly it most likely will not work as it will not be able to meet the acceptable timelines between the APDUs.
You have not told your problem yet. Are you trying to ascertain the feasibility of your proposed architecture ?

Related

Finalize Stripe payment on server with 3D secure/sca (card authentication)

I'm trying to implement Stripe payment in my Flutter mobile app, but I need to finalize the payment on server side.
Does anyone know how I can do this with also 3D secure/sca? I am able to show 3D secure/sca page only finalising payments on client side. Checking online documentation, I have found this: https://stripe.com/docs/payments/accept-a-payment-synchronously, but stripe packages (I have tried with stripe sdk and stripe_flutter) don't provide stripe.handlecar action.
To answer your headline question: You cannot. If you could, the whole security feature would be pointless. You need client side authentication.
PSD2/3D Secure/2-factor-authentication or any other mechanism relies on the bank to tell the client what to do to authenticate. They might reroute you to a different site, owned by the bank, they might ask you for a PIN or one-time-code, or anything else they deem suitable. They will interact with the user, that is the only point of all this.
The method that will handle it is called confirmPaymentIntent (might vary a little depending on which package you use). It will need to be called client side with a payment intent for the payment. It will then show a testing screen for the test card numbers stripe provides.

How does one integrate PayPal with a MERN stack

Hey I would love to learn an know how payment gateways are implemented I have been google searching for code examples to implementing PayPal to a MERN Ecom project but I really could not find any examples on this
Can you please refer me to link where I check that up and if possible please you can make just a basic snippet on how this can be implemented I would really appreciate it
This is the kind of implementation I would love to have
Take in the customers Personal info i.e Name, Email and all necessary info etc
I would love to collect a shipping address
I am not sure what about approaches to implementing a server and client side confuses, but below is some documentation to review. The samples are in standard node.js and JavaScript, so no express or react details are considered. Make your own adjustments to use with express and react.
On the server, two new routes, one for "Set Up Transaction" and one for "Capture Transaction", documented here: https://developer.paypal.com/docs/checkout/reference/server-integration/
A client-side approval flow to connect to the above, documented here: https://developer.paypal.com/demo/checkout/#/pattern/server
By default PayPal collects and returns a shipping address, so it will be available to you inside onApprove on the client side, or via an additional API call you could implement to get the details before going ahead with a capture, or simply in the final response of your order capture API call
When you capture an order, there will be a payment object with an ID. That is the PayPal transaction, and what you should persist in a database, and also what would be referenced for any refund. (The order ID used during approval and any debug_id of the response can be kept around for logging purposes, but have no accounting or reporting value)

How to create a custom webhook URL per address via API

We are creating a custom payment service that uses Coinbase as a Bitcoin backbone. I managed to set up Bitcoin address creation (wallets) and the checkout process is actually finished (Bitcoin address is being created).
However, I did not find a way to attach a custom callback URL to an address I've created. The address should "listen" to incoming transactions and trigger the webhook URL.
We cannot use any of the predigested merchant solutions from Coinbase (button / page / iframe) because the payment flow should be deeply integrated into our existing processes, look and feel. Instead the system is just creating a new Bitcoin address and should be notified on incoming transaction events, but without using a merchant solution.
When creating an address using the Coinbase API v2, you get an object that includes the callback_url property. However, it is empty and in the documentation there is no hint on how to specify that.
I thought about polling the addresses, but that could easily exceed the 10,000 requests per hour rate limit. Any clues how to specify the callback_url on address creation (https://api.coinbase.com/v2/accounts/:account_id/addresses)?
I’d recommend a third-party for this - I’ve personally used https://blockchainwebhooks.com and https://www.blockcypher.com - both have been reliable and offer free plans. Blockchain WebHooks is significantly more affordable, that’s what we still used today.

PayPal REST API - Redirect Error Handling

My question is simple yet I can't find any SO posts or PayPal documentation to answer it.
In the event of a PayPal user having some error being redirected after completing their checkout (internet goes out, browser crashes, they close their browser before the redirect goes through, random networking issues, etc.) How are we suppose to handle that?
I thought using the following REST API
GET /v1/payments/payment/<Payment-Id>
Would solve my problem but since the state returned from this request does not change from created to approved until the funds have been executed it is useless. In the case of having some redirect error you will not have been able to execute the funds and thus it will simply be in the created state still which does not help you.
Additionally I thought maybe PayPals IPN system used for CLASSIC API would be the answer to my problem but again it fails. The IPN system does not contain relevant information such as transaction ID which is needed to link the two systems together.
Is there no way to do automated error handling using the REST API?

How should I post credit card info from my iPhone app to a Windows server?

What is the most secure way to post credit card information from my iPhone application to a Windows server?
My iOS app sells some goods, like dresses.
(IANA Credit card merchant, I only play one here after reading other SO questions)
If you are dealing with explicit credit card data then you should be PCI compliant across your whole system. See things like:
pci security standards
and
pci compliance guide
If you are automating this (IE buy a dress from your iPhone) the CC Merchant that you are dealing with should have well defined protocols for handling credit cards. You should be asking them how they want the data sent. My general understanding is that you do not retain anything and just pass it through to the company who does all the financial stuff for you and the just passes back a validation for the transaction.
Look Michael. There are following ways through which you can post your credit card information from your iPhone application to a windows server. First you can use a "https//" when you are posting your credit card information because all of your information go through a secured channel.
The second option to post your credit card information from you iPhone app to windows server is to connect yourself with a VPN connection. I usually use VPN connection when I want to secure my sensitive data. Currently I am using PureVPN connection, that encrypt all of my sensitive information and all the information passes through secured encrypted tunnel and no unauthorized person can access to my sensitive information.
I completely agreed with Shivam and Simons. Mostly we have all e-commerce sites hosted on "https" which allow users to freely put their CC details and shop wherever they want to. a part from this if you are willing to surf around and shop through an application on your IOS phone then i think you should considerably google for VPN. It is one of the best and most reliable tool these days which enable users not only to make e-commerce transaction through secure channel but also protects users data through all aspects. I think going for Certificates won't be a good option as it involves certain procedures and guidelines.
If it is a webservice that you connect to on your Windows server, you can make the server ssl enabled have the client (iphone app) POST your data using the https link.
If this is some proprietary service using some proprietary protocol, you can consider using public key cryptography. Encrypt data with a one time AES key. Send the encrypted data. Encrypt the AES key with your public key and send it along. The server decrypts the symmetric AES key with your private key and thereafter decrypts the data !
I'd personally prefer the first option (SSL) over the second anytime !