The final step is to use the card data stored using Secure Fields to either
create a transaction or store a card on file for later use.
Create a transaction
Card data stored in a checkout session can be used to create a transaction.
C#
Go
Java
PHP
Python
TypeScript
var transaction = await client . Transactions . CreateAsync (
transactionCreate : new TransactionCreate ()
{
Amount = 1299 ,
Currency = "USD" ,
Country = "US" ,
PaymentMethod =
TransactionCreatePaymentMethod . CreateCheckoutSessionWithUrlPaymentMethodCreate (
new CheckoutSessionWithUrlPaymentMethodCreate ()
{
Id = checkoutSession . Id ,
}
),
}
);
amount := int64 ( 1299 )
currency := "USD"
checkoutSessionWithURLPaymentMethodCreate := components . CheckoutSessionWithURLPaymentMethodCreate {
ID : checkoutSession . ID ,
}
paymentMethod := components . CreateTransactionCreatePaymentMethodCheckoutSessionWithURLPaymentMethodCreate ( checkoutSessionWithURLPaymentMethodCreate )
transactionCreate := components . TransactionCreate {
Amount : amount ,
Currency : currency ,
PaymentMethod : & paymentMethod ,
}
transaction , err := client . Transactions . Create ( ctx , transactionCreate , nil , nil )
// handle response
CreateTransactionResponse transactionResponse = gr4vyClient . transactions (). create ()
. transactionCreate ( TransactionCreate . builder ()
. amount ( 1299L )
. currency ( "USD" )
. paymentMethod ( TransactionCreatePaymentMethod . of ( CheckoutSessionWithUrlPaymentMethodCreate . builder ()
. id ( checkoutSession . id ())
. build ()))
. build ())
. call ();
Transaction transaction = transactionResponse . transaction (). orElse ( null );
// handle response
$transactionCreate = new TransactionCreate ( amount : 1299 , currency : 'USD' , paymentMethod : new CheckoutSessionWithUrlPaymentMethodCreate ( id : $checkoutSession -> id ));
$response = self :: $sdk -> transactions -> create ( $transactionCreate );
$transaction = $response -> transaction ;
transaction: models.Transaction = client.transactions.create(
amount = 1299 ,
currency = "USD" ,
payment_method = {
"method" : "checkout-session" ,
"id" : checkout_session.id,
}
)
const transaction = await gr4vy . transactions . create ({
amount: 1299 ,
currency: "USD" ,
paymentMethod: {
method: "checkout-session" ,
id: checkoutSession . id
}
})
The returned transaction includes details about the payment method used, and the
status of the transaction.
{
"type" : "transaction" ,
"id" : "fe26475d-ec3e-4884-9553-f7356683f7f9" ,
"status" : "authentication_succeeded" ,
"amount" : 1299 ,
"currency" : "AUD" ,
"payment_method" : {
"type" : "payment-method" ,
"id" : "77a76f7e-d2de-4bbc-ada9-d6a0015e6bd5" ,
"method" : "card" ,
"scheme" : "visa" ,
"expiration_date" : "07/24" ,
...
},
...
}
Store a card for later use
Card data in a checkout session can also be used to create a stored payment
method that can be used again later. This can be done either at the time of creating a transaction by
setting the store property to true ,
or when creating a new payment method
directly from the checkout session.
This deletes the security_code from the
vault and any transaction created later requires the code to be
requested again.
3-D Secure
3-D Secure can be used in conjunction with Secure Fields using the hosted 3DS solution . To enable hosted 3DS, add a redirect_url to the API call to create a transaction, and then redirect the buyer to the approval_url in the response.
Summary
In this step you:
Used the checkout session to create a transaction or store a payment method
Next
That’s it for the quick start guide. It’s recommended to look into some of the additional options, theming , adding logos ,
and how to work with stored cards .