## A High Level Understanding
Below are some high level concepts involved in a Zip Instore API transaction
Though there is more detail provided in the coming section, it is key to understand the below before proceeding:
All Zip transactions require at least 2 API calls. A call to our `
/pos/order
` endpoint to initiate the customer checkout, then a call to our `/pos/order/{id}
` endpoint to retrieve the order statusFor orders that have been created with a `
paymentType
` of auth, then a call to our `/pos/order/{id}/commit
` endpoint must be made to 'capture' the fundsOnly if a customers checkout is approved, should the `
/pos/order/{id}/commit
` call be made, otherwise, alternative messaging and handling will come into play
## Payment Flow
Once a customer's checkout has been approved, Zip API integrations will utilise either the 'Payment' or 'Auth' methods when completing Zip transactions
## Payment
A single API call to the `/pos/order
` endpoint is required to finalise a transaction
Once this request is made, the `/v2.0/pos/order/{id}/status
` endpoint should be called to verify the order has been Approved and the funds for that transaction will be disbursed to the partner the following business day
## Authorise and Capture
First, an API call is made to the `/pos/order
` endpoint whereby the customer has an authorisation taken from their card at the time of approval, followed by a second call to `/pos/order/{id}/commit
` to 'Capture' and commit the transaction
An authorisation will hold the funds from the customer's card, until the goods are ready to be fulfilled, at which point the transaction can be manually captured
The funds for that transaction will NOT be disbursed to the partner until they have completed the `/pos/order/{id}/commit
` call for that transaction
_##Suggested Method_
The proposed Payment Method for a standard instore API integration is the `Payment
` method
## Key Order Information
For all transactions, there are some key pieces of information that will need to be passed to Zip. Over time, we have isolated some of these items that are often overlooked. These are highlighted below to ensure they are all taken into account when passing data to the Zip API
## Item Details
When the customer makes a Zip purchase, it is important that some details are conveyed to Zip in the `/pos/order
` API call as this information will be exposed to the customer in the Zip app/portal
The way this should be handled, is by simply passing through `name: string
`, `quantity: integer
`, `price: number
` when calling our API. For example:
There are other details such as `description
` and `SKU
` but these are not exposed to customers and are for manual reporting purposes only