using Gr4vy;
using Gr4vy.Models.Components;
var sdk = new Gr4vySDK(
id: "example",
server: SDKConfig.Server.Sandbox,
bearerAuthSource: Auth.WithToken(privateKey),
merchantAccountId: "default"
);
var res = await sdk.ThreeDsScenarios.CreateAsync(threeDSecureScenarioCreate: new ThreeDSecureScenarioCreate() {
Conditions = new ThreeDSecureScenarioConditions() {},
Outcome = new ThreeDSecureScenarioOutcome() {
Authentication = new ThreeDSecureScenarioOutcomeAuthentication() {
TransactionStatus = "Y",
},
},
});
// handle responsepackage main
import(
"context"
"os"
gr4vygo "github.com/gr4vy/gr4vy-go"
"github.com/gr4vy/gr4vy-go/models/components"
"log"
)
func main() {
ctx := context.Background()
s := gr4vy.New(
gr4vy.WithID("example"),
gr4vy.WithServer(gr4vy.ServerSandbox),
gr4vy.WithSecuritySource(withToken),
gr4vy.WithMerchantAccountID("default"),
)
res, err := s.ThreeDsScenarios.Create(ctx, components.ThreeDSecureScenarioCreate{
Conditions: components.ThreeDSecureScenarioConditions{},
Outcome: components.ThreeDSecureScenarioOutcome{
Authentication: components.ThreeDSecureScenarioOutcomeAuthentication{
TransactionStatus: components.ThreeDSecureScenarioOutcomeAuthenticationTransactionStatusY,
},
},
})
if err != nil {
log.Fatal(err)
}
if res != nil {
// handle response
}
}package hello.world;
import com.gr4vy.sdk.Gr4vy;
import com.gr4vy.sdk.models.components.*;
import com.gr4vy.sdk.models.errors.*;
import com.gr4vy.sdk.models.operations.CreateThreeDsScenarioResponse;
import java.lang.Exception;
public class Application {
public static void main(String[] args) throws Exception {
Gr4vy sdk = Gr4vy.builder()
.id("example")
.server(AvailableServers.SANDBOX)
.merchantAccountId("default")
.securitySource(new BearerSecuritySource.Builder(privateKey).build())
.build();
CreateThreeDsScenarioResponse res = sdk.threeDsScenarios().create()
.threeDSecureScenarioCreate(ThreeDSecureScenarioCreate.builder()
.conditions(ThreeDSecureScenarioConditions.builder()
.build())
.outcome(ThreeDSecureScenarioOutcome.builder()
.authentication(ThreeDSecureScenarioOutcomeAuthentication.builder()
.transactionStatus(ThreeDSecureScenarioOutcomeAuthenticationTransactionStatus.Y)
.build())
.build())
.build())
.call();
if (res.threeDSecureScenario().isPresent()) {
System.out.println(res.threeDSecureScenario().get());
}
}
}declare(strict_types=1);
require 'vendor/autoload.php';
use Gr4vy;
$sdk = Gr4vy\SDK::builder()
->setId('example')
->setServer('sandbox')
->setSecuritySource(Auth::withToken($privateKey))
->setMerchantAccountId('default')
->build();
$threeDSecureScenarioCreate = new Gr4vy\ThreeDSecureScenarioCreate(
conditions: new Gr4vy\ThreeDSecureScenarioConditions(),
outcome: new Gr4vy\ThreeDSecureScenarioOutcome(
authentication: new Gr4vy\ThreeDSecureScenarioOutcomeAuthentication(
transactionStatus: 'Y',
),
),
);
$response = $sdk->threeDsScenarios->create(
threeDSecureScenarioCreate: $threeDSecureScenarioCreate
);
if ($response->threeDSecureScenario !== null) {
// handle response
}from gr4vy import Gr4vy
import os
with Gr4vy(
id="example",
server="sandbox",
merchant_account_id="default",
bearer_auth=auth.with_token(open("./private_key.pem").read())
) as g_client:
res = g_client.three_ds_scenarios.create(conditions={}, outcome={
"authentication": {
"transaction_status": "Y",
},
})
# Handle response
print(res)import { Gr4vy, withToken } from "@gr4vy/sdk";
import fs from "fs";
const gr4vy = new Gr4vy({
id: "example",
server: "sandbox",
merchantAccountId: "default",
bearerAuth: withToken({
privateKey: fs.readFileSync("private_key.pem", "utf8"),
}),
});
async function run() {
const result = await gr4vy.threeDsScenarios.create({
conditions: {},
outcome: {
authentication: {
transactionStatus: "Y",
},
},
});
console.log(result);
}
run();curl --request POST \
--url https://api.sandbox.{id}.gr4vy.app/three-ds-scenarios \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"conditions": {
"first_name": "John",
"last_name": "Luhn",
"email_address": "john@example.com",
"amount": 100,
"external_identifier": "buyer-12345",
"card_number": "4242424242424242"
},
"outcome": {
"authentication": {},
"version": "2.2.0",
"result": {
"transaction_status": "Y"
}
}
}
'{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"merchant_account_id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"conditions": {
"first_name": "John",
"last_name": "Luhn",
"email_address": "john@example.com",
"amount": 100,
"external_identifier": "buyer-12345",
"card_number": "4242424242424242"
},
"outcome": {
"authentication": {},
"version": "2.2.0",
"result": {
"transaction_status": "Y"
}
},
"type": "three-d-secure-scenario"
}{
"type": "error",
"code": "bad_request",
"status": 400,
"message": "Generic error",
"details": []
}{
"type": "error",
"code": "unauthorized",
"status": 401,
"message": "No valid API authentication found",
"details": []
}{
"type": "error",
"code": "forbidden",
"status": 403,
"message": "Generic error",
"details": []
}{
"type": "error",
"code": "not_found",
"status": 404,
"message": "The resource could not be found",
"details": []
}{
"type": "error",
"code": "method_not_allowed",
"status": 405,
"message": "Method Not Allowed",
"details": []
}{
"type": "error",
"code": "duplicate_record",
"status": 409,
"message": "Generic error",
"details": [],
"resource_id": "cdc70639-cb9c-4222-a73f-b8ce39f7821b"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}{
"type": "error",
"code": "too_early",
"status": 425,
"message": "Generic error",
"details": []
}{
"type": "error",
"code": "too_many_requests",
"status": 429,
"message": "Generic error",
"details": []
}{
"type": "error",
"code": "server_error",
"status": 500,
"message": "Request could not be processed",
"details": []
}{
"type": "error",
"code": "bad_gateway",
"status": 502,
"message": "Request could not be processed",
"details": []
}{
"type": "error",
"code": "gateway_timeout",
"status": 504,
"message": "Request could not be processed",
"details": []
}Create a 3DS scenario
Create a new 3DS scenario for a merchant account. Only available in sandbox environments.
using Gr4vy;
using Gr4vy.Models.Components;
var sdk = new Gr4vySDK(
id: "example",
server: SDKConfig.Server.Sandbox,
bearerAuthSource: Auth.WithToken(privateKey),
merchantAccountId: "default"
);
var res = await sdk.ThreeDsScenarios.CreateAsync(threeDSecureScenarioCreate: new ThreeDSecureScenarioCreate() {
Conditions = new ThreeDSecureScenarioConditions() {},
Outcome = new ThreeDSecureScenarioOutcome() {
Authentication = new ThreeDSecureScenarioOutcomeAuthentication() {
TransactionStatus = "Y",
},
},
});
// handle responsepackage main
import(
"context"
"os"
gr4vygo "github.com/gr4vy/gr4vy-go"
"github.com/gr4vy/gr4vy-go/models/components"
"log"
)
func main() {
ctx := context.Background()
s := gr4vy.New(
gr4vy.WithID("example"),
gr4vy.WithServer(gr4vy.ServerSandbox),
gr4vy.WithSecuritySource(withToken),
gr4vy.WithMerchantAccountID("default"),
)
res, err := s.ThreeDsScenarios.Create(ctx, components.ThreeDSecureScenarioCreate{
Conditions: components.ThreeDSecureScenarioConditions{},
Outcome: components.ThreeDSecureScenarioOutcome{
Authentication: components.ThreeDSecureScenarioOutcomeAuthentication{
TransactionStatus: components.ThreeDSecureScenarioOutcomeAuthenticationTransactionStatusY,
},
},
})
if err != nil {
log.Fatal(err)
}
if res != nil {
// handle response
}
}package hello.world;
import com.gr4vy.sdk.Gr4vy;
import com.gr4vy.sdk.models.components.*;
import com.gr4vy.sdk.models.errors.*;
import com.gr4vy.sdk.models.operations.CreateThreeDsScenarioResponse;
import java.lang.Exception;
public class Application {
public static void main(String[] args) throws Exception {
Gr4vy sdk = Gr4vy.builder()
.id("example")
.server(AvailableServers.SANDBOX)
.merchantAccountId("default")
.securitySource(new BearerSecuritySource.Builder(privateKey).build())
.build();
CreateThreeDsScenarioResponse res = sdk.threeDsScenarios().create()
.threeDSecureScenarioCreate(ThreeDSecureScenarioCreate.builder()
.conditions(ThreeDSecureScenarioConditions.builder()
.build())
.outcome(ThreeDSecureScenarioOutcome.builder()
.authentication(ThreeDSecureScenarioOutcomeAuthentication.builder()
.transactionStatus(ThreeDSecureScenarioOutcomeAuthenticationTransactionStatus.Y)
.build())
.build())
.build())
.call();
if (res.threeDSecureScenario().isPresent()) {
System.out.println(res.threeDSecureScenario().get());
}
}
}declare(strict_types=1);
require 'vendor/autoload.php';
use Gr4vy;
$sdk = Gr4vy\SDK::builder()
->setId('example')
->setServer('sandbox')
->setSecuritySource(Auth::withToken($privateKey))
->setMerchantAccountId('default')
->build();
$threeDSecureScenarioCreate = new Gr4vy\ThreeDSecureScenarioCreate(
conditions: new Gr4vy\ThreeDSecureScenarioConditions(),
outcome: new Gr4vy\ThreeDSecureScenarioOutcome(
authentication: new Gr4vy\ThreeDSecureScenarioOutcomeAuthentication(
transactionStatus: 'Y',
),
),
);
$response = $sdk->threeDsScenarios->create(
threeDSecureScenarioCreate: $threeDSecureScenarioCreate
);
if ($response->threeDSecureScenario !== null) {
// handle response
}from gr4vy import Gr4vy
import os
with Gr4vy(
id="example",
server="sandbox",
merchant_account_id="default",
bearer_auth=auth.with_token(open("./private_key.pem").read())
) as g_client:
res = g_client.three_ds_scenarios.create(conditions={}, outcome={
"authentication": {
"transaction_status": "Y",
},
})
# Handle response
print(res)import { Gr4vy, withToken } from "@gr4vy/sdk";
import fs from "fs";
const gr4vy = new Gr4vy({
id: "example",
server: "sandbox",
merchantAccountId: "default",
bearerAuth: withToken({
privateKey: fs.readFileSync("private_key.pem", "utf8"),
}),
});
async function run() {
const result = await gr4vy.threeDsScenarios.create({
conditions: {},
outcome: {
authentication: {
transactionStatus: "Y",
},
},
});
console.log(result);
}
run();curl --request POST \
--url https://api.sandbox.{id}.gr4vy.app/three-ds-scenarios \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"conditions": {
"first_name": "John",
"last_name": "Luhn",
"email_address": "john@example.com",
"amount": 100,
"external_identifier": "buyer-12345",
"card_number": "4242424242424242"
},
"outcome": {
"authentication": {},
"version": "2.2.0",
"result": {
"transaction_status": "Y"
}
}
}
'{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"merchant_account_id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"conditions": {
"first_name": "John",
"last_name": "Luhn",
"email_address": "john@example.com",
"amount": 100,
"external_identifier": "buyer-12345",
"card_number": "4242424242424242"
},
"outcome": {
"authentication": {},
"version": "2.2.0",
"result": {
"transaction_status": "Y"
}
},
"type": "three-d-secure-scenario"
}{
"type": "error",
"code": "bad_request",
"status": 400,
"message": "Generic error",
"details": []
}{
"type": "error",
"code": "unauthorized",
"status": 401,
"message": "No valid API authentication found",
"details": []
}{
"type": "error",
"code": "forbidden",
"status": 403,
"message": "Generic error",
"details": []
}{
"type": "error",
"code": "not_found",
"status": 404,
"message": "The resource could not be found",
"details": []
}{
"type": "error",
"code": "method_not_allowed",
"status": 405,
"message": "Method Not Allowed",
"details": []
}{
"type": "error",
"code": "duplicate_record",
"status": 409,
"message": "Generic error",
"details": [],
"resource_id": "cdc70639-cb9c-4222-a73f-b8ce39f7821b"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}{
"type": "error",
"code": "too_early",
"status": 425,
"message": "Generic error",
"details": []
}{
"type": "error",
"code": "too_many_requests",
"status": 429,
"message": "Generic error",
"details": []
}{
"type": "error",
"code": "server_error",
"status": 500,
"message": "Request could not be processed",
"details": []
}{
"type": "error",
"code": "bad_gateway",
"status": 502,
"message": "Request could not be processed",
"details": []
}{
"type": "error",
"code": "gateway_timeout",
"status": 504,
"message": "Request could not be processed",
"details": []
}three-ds-scenarios.write scope.Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
The ID of the merchant account to use for this request.
"default"
Body
Conditions for the scenario.
Show child attributes
Show child attributes
{
"amount": 100,
"card_number": "4242424242424242",
"email_address": "john@example.com",
"external_identifier": "buyer-12345",
"first_name": "John",
"last_name": "Luhn"
}Outcome for the scenario.
Show child attributes
Show child attributes
{
"authentication": { "transaction_status": "C" },
"result": { "transaction_status": "Y" },
"version": "2.3.1"
}{
"authentication": { "transaction_status": "N" },
"version": "2.3.1"
}Response
Successful Response
Unique identifier for the 3DS scenario
"550e8400-e29b-41d4-a716-446655440000"
ID of the associated merchant account
"merchant-account-12345"
The date and time when this 3DS scenario was first created in our system.
"2013-07-16T19:23:00.000+00:00"
The date and time when this 3DS scenario was last updated in our system.
"2013-07-16T19:23:00.000+00:00"
Conditions for the scenario.
Show child attributes
Show child attributes
{
"amount": 100,
"card_number": "4242424242424242",
"email_address": "john@example.com",
"external_identifier": "buyer-12345",
"first_name": "John",
"last_name": "Luhn"
}Outcome for the scenario.
Show child attributes
Show child attributes
{
"authentication": { "transaction_status": "C" },
"result": { "transaction_status": "Y" },
"version": "2.3.1"
}{
"authentication": { "transaction_status": "N" },
"version": "2.3.1"
}Always three-d-secure-scenario.
"three-d-secure-scenario""three-d-secure-scenario"