- 
                Notifications
    You must be signed in to change notification settings 
- Fork 6
Secure Payments By BookingSync #231
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|  | ||
| ## Preface | ||
|  | ||
| If you have an integration with BookingSync and you create bookings on your side according to the instant booking flow (i.e. a booking gets confirmed only when the credit card payment is executed successfully) and you don't have PCI DSS compliant platform for collecting credit card payments, you can use our Secure Payments By BookingSync flow for this purpose. | 
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should still require at least PCI-DSS 3.1+ SAD-A when using a full client side process (JS SDK) and SAQ-D (server-to-server integration) otherwise.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good point.
|  | ||
| To handle integration with Secure Payments By BookingSync you need to have an application with `payments_write` or `payments_write_owned` scope. We recommend using `payments_write_owned` for this purpose to make sure the payment is not editable by anyone else, only by your application. | ||
|  | ||
| Also, the rental for which the booking will be created requires to be instantly bookable and the it needs to have a payment gateway assigned (which will be used for executing the credit card payment) which supports the currency that is set for the rental. | 
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
typo and the it
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍
|  | ||
| * Create a tentative booking | ||
| * Create a tentative instant booking payment | ||
| * Send credit card data and payment id to our PCI DSS platform for executing payment, which will confirm both booking and payment if the payment is successfully executed | 
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
for executing payment > for executing the payment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍
|  | ||
| ## Creating A Tentative Booking | ||
|  | ||
| Instant Booking flow requires payment to confirm the booking, so we recommend creating a tentative booking and leaving the confirmation to our PCI DSS platform. The confirmation process should take up to few minutes, so we recommend to set tentative expire date to 5 or 10 minutes from now. To create a tentative booking you need to provide 2 params (besides the requires one): | 
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
what about? confirmation to our PCI DSS platform > confirmation to our PCI DSS payment platform
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
hoo, right, looks odd without the payment
| * tentative_expires_at - to set the expiry date | ||
| * booked - set it to `false` | ||
|  | ||
| You can find more about the bookings' attributes and how to create them [here](/reference/endpoints/bookings/). | 
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not fan of here links, what about on the [bookings endpoint documentation](/reference/endpoints/bookings/).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fine for me
| Another step would be creating a tentative payment (i.e. not confirmed payment) of `instant-booking` kind for the given booking. This payment will get confirmed once the successful credit card payment is executed. Here the essential attributes you need to provide for such payment: | ||
|  | ||
| * amount_in_cents - amount in cents for the payment that will be charged | ||
| * currency - currency of the payment | 
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good to mention that it should be the same as the booking currency.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍
|  | ||
| We also recommend including more details like `fullname`, `email`, `zip` and other address related field. | ||
|  | ||
| You can find more about the payments' attributes and how to create them [here](/reference/endpoints/payments/). | 
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
same as above
| "card_number": 4111111111111111, | ||
| "cardholder_name": "John Doe", | ||
| "expires_at_month": "12", | ||
| "expires_at_year": "2020" | 
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
missing comma
| "address1": "some address 1 / 10", | ||
| "zip": "12312", | ||
| "city": "San Francisco", | ||
| "country_code": "US" | 
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good to provide state if using a US example.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍
|  | ||
| ## Executing Payment | ||
|  | ||
| Once you have created a payment, you need to take its id and collect the credit card data. | 
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Odd wording regarding credit card data collection. What about?
Once you have created a payment, you need to execute the payment using its id and the credit card data.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, looks sounds better.
| @ZenCocoon Done. | 
| We also recommend including more details like `fullname`, `email`, `zip` and other address related field. | ||
|  | ||
| You can find more about the payments' attributes and how to create them [here](/reference/endpoints/payments/). | ||
| You can find more about the payments' attributes and how to create themin the [payments endpoint documentation](/reference/endpoints/payments/). | 
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
typo
No description provided.