From 25f775ebd83f4df7069f882c1aa84b90258dc8b0 Mon Sep 17 00:00:00 2001
From: phillipgr4vy <92320120+phillipgr4vy@users.noreply.github.com>
Date: Wed, 4 Sep 2024 07:34:07 -0400
Subject: [PATCH] feat: adds ip address to client, latest open api spec (#56)
This PR adds ip address to be set for new transactions via the
X-Forwarded-For header and includes the latest open api spec models.
---
.openapi-generator/FILES | 6 +
pom.xml | 2 +-
.../model/CheckoutSessionCreateRequest.java | 34 +++-
.../gr4vy/api/model/ConnectionOptions.java | 62 +++++-
.../ConnectionOptionsCybersourceIdeal.java | 168 ++++++++++++++++
.../ConnectionOptionsCybersourceKcp.java | 168 ++++++++++++++++
.../com/gr4vy/api/model/PaymentMethod.java | 20 +-
.../api/model/PaymentMethodSnapshot.java | 8 +
.../api/model/PaymentMethodTokenized.java | 8 +
.../com/gr4vy/api/model/PaymentOption.java | 14 +-
.../com/gr4vy/api/model/PaymentService.java | 8 +
.../api/model/PaymentServiceDefinition.java | 14 +-
.../api/model/PaymentServiceSnapshot.java | 8 +
.../com/gr4vy/api/model/RedirectRequest.java | 6 +-
.../java/com/gr4vy/api/model/Transaction.java | 8 +-
.../api/model/TransactionBuyerRequest.java | 187 ++++++++++++++++++
.../TransactionPaymentMethodRequest.java | 8 +-
.../api/model/TransactionRedirectRequest.java | 6 +-
.../gr4vy/api/model/TransactionRequest.java | 32 ++-
.../gr4vy/api/model/TransactionSummary.java | 8 +
src/main/java/com/gr4vy/sdk/Gr4vyClient.java | 12 +-
.../java/com/gr4vy/sdk/Gr4vyClientTest.java | 20 ++
22 files changed, 786 insertions(+), 21 deletions(-)
create mode 100644 src/main/java/com/gr4vy/api/model/ConnectionOptionsCybersourceIdeal.java
create mode 100644 src/main/java/com/gr4vy/api/model/ConnectionOptionsCybersourceKcp.java
create mode 100644 src/main/java/com/gr4vy/api/model/TransactionBuyerRequest.java
diff --git a/.openapi-generator/FILES b/.openapi-generator/FILES
index 0e46af2..731d7c5 100644
--- a/.openapi-generator/FILES
+++ b/.openapi-generator/FILES
@@ -94,6 +94,8 @@ src/main/java/com/gr4vy/api/model/ConnectionOptions.java
src/main/java/com/gr4vy/api/model/ConnectionOptionsAdyenCard.java
src/main/java/com/gr4vy/api/model/ConnectionOptionsCybersourceAntiFraud.java
src/main/java/com/gr4vy/api/model/ConnectionOptionsCybersourceCard.java
+src/main/java/com/gr4vy/api/model/ConnectionOptionsCybersourceIdeal.java
+src/main/java/com/gr4vy/api/model/ConnectionOptionsCybersourceKcp.java
src/main/java/com/gr4vy/api/model/ConnectionOptionsForterAntiFraud.java
src/main/java/com/gr4vy/api/model/ConnectionOptionsForterAntiFraudAddress.java
src/main/java/com/gr4vy/api/model/ConnectionOptionsForterAntiFraudBasicItemData.java
@@ -284,6 +286,7 @@ src/main/java/com/gr4vy/api/model/ThreeDSecureSummary.java
src/main/java/com/gr4vy/api/model/ThreeDSecureV2.java
src/main/java/com/gr4vy/api/model/TokenizedRequest.java
src/main/java/com/gr4vy/api/model/Transaction.java
+src/main/java/com/gr4vy/api/model/TransactionBuyerRequest.java
src/main/java/com/gr4vy/api/model/TransactionCaptureRequest.java
src/main/java/com/gr4vy/api/model/TransactionCardRequest.java
src/main/java/com/gr4vy/api/model/TransactionCheckoutSessionRequest.java
@@ -395,6 +398,8 @@ src/test/java/com/gr4vy/api/model/ConnectionDefinitionsTest.java
src/test/java/com/gr4vy/api/model/ConnectionOptionsAdyenCardTest.java
src/test/java/com/gr4vy/api/model/ConnectionOptionsCybersourceAntiFraudTest.java
src/test/java/com/gr4vy/api/model/ConnectionOptionsCybersourceCardTest.java
+src/test/java/com/gr4vy/api/model/ConnectionOptionsCybersourceIdealTest.java
+src/test/java/com/gr4vy/api/model/ConnectionOptionsCybersourceKcpTest.java
src/test/java/com/gr4vy/api/model/ConnectionOptionsForterAntiFraudAddressTest.java
src/test/java/com/gr4vy/api/model/ConnectionOptionsForterAntiFraudBasicItemDataTest.java
src/test/java/com/gr4vy/api/model/ConnectionOptionsForterAntiFraudBeneficiariesTest.java
@@ -586,6 +591,7 @@ src/test/java/com/gr4vy/api/model/ThreeDSecureSuccessEventTest.java
src/test/java/com/gr4vy/api/model/ThreeDSecureSummaryTest.java
src/test/java/com/gr4vy/api/model/ThreeDSecureV2Test.java
src/test/java/com/gr4vy/api/model/TokenizedRequestTest.java
+src/test/java/com/gr4vy/api/model/TransactionBuyerRequestTest.java
src/test/java/com/gr4vy/api/model/TransactionCaptureRequestTest.java
src/test/java/com/gr4vy/api/model/TransactionCardRequestTest.java
src/test/java/com/gr4vy/api/model/TransactionCheckoutSessionRequestTest.java
diff --git a/pom.xml b/pom.xml
index 37f87e4..9d9d6d7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
gr4vy
jar
gr4vy
- 0.29.2
+ 0.30.0
https://gr4vy.com
Gr4vy Java SDK
diff --git a/src/main/java/com/gr4vy/api/model/CheckoutSessionCreateRequest.java b/src/main/java/com/gr4vy/api/model/CheckoutSessionCreateRequest.java
index 2763192..885ba7a 100644
--- a/src/main/java/com/gr4vy/api/model/CheckoutSessionCreateRequest.java
+++ b/src/main/java/com/gr4vy/api/model/CheckoutSessionCreateRequest.java
@@ -21,6 +21,7 @@
import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonWriter;
import com.gr4vy.api.model.CartItem;
+import com.gr4vy.api.model.TransactionBuyerRequest;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.IOException;
@@ -43,6 +44,10 @@ public class CheckoutSessionCreateRequest {
@SerializedName(SERIALIZED_NAME_METADATA)
private Map metadata = null;
+ public static final String SERIALIZED_NAME_BUYER = "buyer";
+ @SerializedName(SERIALIZED_NAME_BUYER)
+ private TransactionBuyerRequest buyer;
+
public CheckoutSessionCreateRequest cartItems(List cartItems) {
@@ -106,6 +111,29 @@ public void setMetadata(Map metadata) {
}
+ public CheckoutSessionCreateRequest buyer(TransactionBuyerRequest buyer) {
+
+ this.buyer = buyer;
+ return this;
+ }
+
+ /**
+ * Get buyer
+ * @return buyer
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "")
+
+ public TransactionBuyerRequest getBuyer() {
+ return buyer;
+ }
+
+
+ public void setBuyer(TransactionBuyerRequest buyer) {
+ this.buyer = buyer;
+ }
+
+
@Override
public boolean equals(Object o) {
if (this == o) {
@@ -116,12 +144,13 @@ public boolean equals(Object o) {
}
CheckoutSessionCreateRequest checkoutSessionCreateRequest = (CheckoutSessionCreateRequest) o;
return Objects.equals(this.cartItems, checkoutSessionCreateRequest.cartItems) &&
- Objects.equals(this.metadata, checkoutSessionCreateRequest.metadata);
+ Objects.equals(this.metadata, checkoutSessionCreateRequest.metadata) &&
+ Objects.equals(this.buyer, checkoutSessionCreateRequest.buyer);
}
@Override
public int hashCode() {
- return Objects.hash(cartItems, metadata);
+ return Objects.hash(cartItems, metadata, buyer);
}
@Override
@@ -130,6 +159,7 @@ public String toString() {
sb.append("class CheckoutSessionCreateRequest {\n");
sb.append(" cartItems: ").append(toIndentedString(cartItems)).append("\n");
sb.append(" metadata: ").append(toIndentedString(metadata)).append("\n");
+ sb.append(" buyer: ").append(toIndentedString(buyer)).append("\n");
sb.append("}");
return sb.toString();
}
diff --git a/src/main/java/com/gr4vy/api/model/ConnectionOptions.java b/src/main/java/com/gr4vy/api/model/ConnectionOptions.java
index fb7e44f..a3cfeeb 100644
--- a/src/main/java/com/gr4vy/api/model/ConnectionOptions.java
+++ b/src/main/java/com/gr4vy/api/model/ConnectionOptions.java
@@ -23,6 +23,8 @@
import com.gr4vy.api.model.ConnectionOptionsAdyenCard;
import com.gr4vy.api.model.ConnectionOptionsCybersourceAntiFraud;
import com.gr4vy.api.model.ConnectionOptionsCybersourceCard;
+import com.gr4vy.api.model.ConnectionOptionsCybersourceIdeal;
+import com.gr4vy.api.model.ConnectionOptionsCybersourceKcp;
import com.gr4vy.api.model.ConnectionOptionsForterAntiFraud;
import com.gr4vy.api.model.ConnectionOptionsGivingblockGivingblock;
import com.gr4vy.api.model.ConnectionOptionsPaypalPaypal;
@@ -40,6 +42,14 @@ public class ConnectionOptions {
@SerializedName(SERIALIZED_NAME_CYBERSOURCE_CARD)
private ConnectionOptionsCybersourceCard cybersourceCard;
+ public static final String SERIALIZED_NAME_CYBERSOURCE_KCP = "cybersource-kcp";
+ @SerializedName(SERIALIZED_NAME_CYBERSOURCE_KCP)
+ private ConnectionOptionsCybersourceKcp cybersourceKcp;
+
+ public static final String SERIALIZED_NAME_CYBERSOURCE_IDEAL = "cybersource-ideal";
+ @SerializedName(SERIALIZED_NAME_CYBERSOURCE_IDEAL)
+ private ConnectionOptionsCybersourceIdeal cybersourceIdeal;
+
public static final String SERIALIZED_NAME_CYBERSOURCE_ANTI_FRAUD = "cybersource-anti-fraud";
@SerializedName(SERIALIZED_NAME_CYBERSOURCE_ANTI_FRAUD)
private ConnectionOptionsCybersourceAntiFraud cybersourceAntiFraud;
@@ -92,6 +102,52 @@ public void setCybersourceCard(ConnectionOptionsCybersourceCard cybersourceCard)
}
+ public ConnectionOptions cybersourceKcp(ConnectionOptionsCybersourceKcp cybersourceKcp) {
+
+ this.cybersourceKcp = cybersourceKcp;
+ return this;
+ }
+
+ /**
+ * Get cybersourceKcp
+ * @return cybersourceKcp
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "")
+
+ public ConnectionOptionsCybersourceKcp getCybersourceKcp() {
+ return cybersourceKcp;
+ }
+
+
+ public void setCybersourceKcp(ConnectionOptionsCybersourceKcp cybersourceKcp) {
+ this.cybersourceKcp = cybersourceKcp;
+ }
+
+
+ public ConnectionOptions cybersourceIdeal(ConnectionOptionsCybersourceIdeal cybersourceIdeal) {
+
+ this.cybersourceIdeal = cybersourceIdeal;
+ return this;
+ }
+
+ /**
+ * Get cybersourceIdeal
+ * @return cybersourceIdeal
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "")
+
+ public ConnectionOptionsCybersourceIdeal getCybersourceIdeal() {
+ return cybersourceIdeal;
+ }
+
+
+ public void setCybersourceIdeal(ConnectionOptionsCybersourceIdeal cybersourceIdeal) {
+ this.cybersourceIdeal = cybersourceIdeal;
+ }
+
+
public ConnectionOptions cybersourceAntiFraud(ConnectionOptionsCybersourceAntiFraud cybersourceAntiFraud) {
this.cybersourceAntiFraud = cybersourceAntiFraud;
@@ -263,6 +319,8 @@ public boolean equals(Object o) {
}
ConnectionOptions connectionOptions = (ConnectionOptions) o;
return Objects.equals(this.cybersourceCard, connectionOptions.cybersourceCard) &&
+ Objects.equals(this.cybersourceKcp, connectionOptions.cybersourceKcp) &&
+ Objects.equals(this.cybersourceIdeal, connectionOptions.cybersourceIdeal) &&
Objects.equals(this.cybersourceAntiFraud, connectionOptions.cybersourceAntiFraud) &&
Objects.equals(this.givingblockGivingblock, connectionOptions.givingblockGivingblock) &&
Objects.equals(this.forterAntiFraud, connectionOptions.forterAntiFraud) &&
@@ -274,7 +332,7 @@ public boolean equals(Object o) {
@Override
public int hashCode() {
- return Objects.hash(cybersourceCard, cybersourceAntiFraud, givingblockGivingblock, forterAntiFraud, adyenCard, paypalPaypal, paypalPaypalpaylater, stripeCard);
+ return Objects.hash(cybersourceCard, cybersourceKcp, cybersourceIdeal, cybersourceAntiFraud, givingblockGivingblock, forterAntiFraud, adyenCard, paypalPaypal, paypalPaypalpaylater, stripeCard);
}
@Override
@@ -282,6 +340,8 @@ public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("class ConnectionOptions {\n");
sb.append(" cybersourceCard: ").append(toIndentedString(cybersourceCard)).append("\n");
+ sb.append(" cybersourceKcp: ").append(toIndentedString(cybersourceKcp)).append("\n");
+ sb.append(" cybersourceIdeal: ").append(toIndentedString(cybersourceIdeal)).append("\n");
sb.append(" cybersourceAntiFraud: ").append(toIndentedString(cybersourceAntiFraud)).append("\n");
sb.append(" givingblockGivingblock: ").append(toIndentedString(givingblockGivingblock)).append("\n");
sb.append(" forterAntiFraud: ").append(toIndentedString(forterAntiFraud)).append("\n");
diff --git a/src/main/java/com/gr4vy/api/model/ConnectionOptionsCybersourceIdeal.java b/src/main/java/com/gr4vy/api/model/ConnectionOptionsCybersourceIdeal.java
new file mode 100644
index 0000000..8077355
--- /dev/null
+++ b/src/main/java/com/gr4vy/api/model/ConnectionOptionsCybersourceIdeal.java
@@ -0,0 +1,168 @@
+/*
+ * Gr4vy API
+ * Welcome to the Gr4vy API reference documentation. Our API is still very much a work in product and subject to change.
+ *
+ * The version of the OpenAPI document: 1.1.0-beta
+ * Contact: code@gr4vy.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package com.gr4vy.api.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Additional options for Cybersource iDeal APM.
+ */
+@ApiModel(description = "Additional options for Cybersource iDeal APM.")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen")
+public class ConnectionOptionsCybersourceIdeal {
+ public static final String SERIALIZED_NAME_META_KEY_MERCHANT_ID = "meta_key_merchant_id";
+ @SerializedName(SERIALIZED_NAME_META_KEY_MERCHANT_ID)
+ private String metaKeyMerchantId;
+
+ public static final String SERIALIZED_NAME_MERCHANT_DEFINED_INFORMATION = "merchant_defined_information";
+ @SerializedName(SERIALIZED_NAME_MERCHANT_DEFINED_INFORMATION)
+ private Map merchantDefinedInformation = null;
+
+ public static final String SERIALIZED_NAME_SHIP_TO_METHOD = "ship_to_method";
+ @SerializedName(SERIALIZED_NAME_SHIP_TO_METHOD)
+ private String shipToMethod;
+
+
+ public ConnectionOptionsCybersourceIdeal metaKeyMerchantId(String metaKeyMerchantId) {
+
+ this.metaKeyMerchantId = metaKeyMerchantId;
+ return this;
+ }
+
+ /**
+ * An override for the merchant ID configured for the connector, used in combination with meta keys.
+ * @return metaKeyMerchantId
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "An override for the merchant ID configured for the connector, used in combination with meta keys.")
+
+ public String getMetaKeyMerchantId() {
+ return metaKeyMerchantId;
+ }
+
+
+ public void setMetaKeyMerchantId(String metaKeyMerchantId) {
+ this.metaKeyMerchantId = metaKeyMerchantId;
+ }
+
+
+ public ConnectionOptionsCybersourceIdeal merchantDefinedInformation(Map merchantDefinedInformation) {
+
+ this.merchantDefinedInformation = merchantDefinedInformation;
+ return this;
+ }
+
+ public ConnectionOptionsCybersourceIdeal putMerchantDefinedInformationItem(String key, String merchantDefinedInformationItem) {
+ if (this.merchantDefinedInformation == null) {
+ this.merchantDefinedInformation = new HashMap();
+ }
+ this.merchantDefinedInformation.put(key, merchantDefinedInformationItem);
+ return this;
+ }
+
+ /**
+ * This is a key-value object for merchant defined information. Each key needs to be a numeric string identifying the MDI field to set. For example, for field 1 set the key to \"1\".
+ * @return merchantDefinedInformation
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(example = "{\"1\":\"John Doe\",\"2\":\"trusted\",\"99\":\"recurring\"}", value = "This is a key-value object for merchant defined information. Each key needs to be a numeric string identifying the MDI field to set. For example, for field 1 set the key to \"1\".")
+
+ public Map getMerchantDefinedInformation() {
+ return merchantDefinedInformation;
+ }
+
+
+ public void setMerchantDefinedInformation(Map merchantDefinedInformation) {
+ this.merchantDefinedInformation = merchantDefinedInformation;
+ }
+
+
+ public ConnectionOptionsCybersourceIdeal shipToMethod(String shipToMethod) {
+
+ this.shipToMethod = shipToMethod;
+ return this;
+ }
+
+ /**
+ * Shipping method for the order.
+ * @return shipToMethod
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Shipping method for the order.")
+
+ public String getShipToMethod() {
+ return shipToMethod;
+ }
+
+
+ public void setShipToMethod(String shipToMethod) {
+ this.shipToMethod = shipToMethod;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ConnectionOptionsCybersourceIdeal connectionOptionsCybersourceIdeal = (ConnectionOptionsCybersourceIdeal) o;
+ return Objects.equals(this.metaKeyMerchantId, connectionOptionsCybersourceIdeal.metaKeyMerchantId) &&
+ Objects.equals(this.merchantDefinedInformation, connectionOptionsCybersourceIdeal.merchantDefinedInformation) &&
+ Objects.equals(this.shipToMethod, connectionOptionsCybersourceIdeal.shipToMethod);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(metaKeyMerchantId, merchantDefinedInformation, shipToMethod);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ConnectionOptionsCybersourceIdeal {\n");
+ sb.append(" metaKeyMerchantId: ").append(toIndentedString(metaKeyMerchantId)).append("\n");
+ sb.append(" merchantDefinedInformation: ").append(toIndentedString(merchantDefinedInformation)).append("\n");
+ sb.append(" shipToMethod: ").append(toIndentedString(shipToMethod)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+}
+
diff --git a/src/main/java/com/gr4vy/api/model/ConnectionOptionsCybersourceKcp.java b/src/main/java/com/gr4vy/api/model/ConnectionOptionsCybersourceKcp.java
new file mode 100644
index 0000000..fd768dd
--- /dev/null
+++ b/src/main/java/com/gr4vy/api/model/ConnectionOptionsCybersourceKcp.java
@@ -0,0 +1,168 @@
+/*
+ * Gr4vy API
+ * Welcome to the Gr4vy API reference documentation. Our API is still very much a work in product and subject to change.
+ *
+ * The version of the OpenAPI document: 1.1.0-beta
+ * Contact: code@gr4vy.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package com.gr4vy.api.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Additional options for Cybersource KCP APM.
+ */
+@ApiModel(description = "Additional options for Cybersource KCP APM.")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen")
+public class ConnectionOptionsCybersourceKcp {
+ public static final String SERIALIZED_NAME_META_KEY_MERCHANT_ID = "meta_key_merchant_id";
+ @SerializedName(SERIALIZED_NAME_META_KEY_MERCHANT_ID)
+ private String metaKeyMerchantId;
+
+ public static final String SERIALIZED_NAME_MERCHANT_DEFINED_INFORMATION = "merchant_defined_information";
+ @SerializedName(SERIALIZED_NAME_MERCHANT_DEFINED_INFORMATION)
+ private Map merchantDefinedInformation = null;
+
+ public static final String SERIALIZED_NAME_SHIP_TO_METHOD = "ship_to_method";
+ @SerializedName(SERIALIZED_NAME_SHIP_TO_METHOD)
+ private String shipToMethod;
+
+
+ public ConnectionOptionsCybersourceKcp metaKeyMerchantId(String metaKeyMerchantId) {
+
+ this.metaKeyMerchantId = metaKeyMerchantId;
+ return this;
+ }
+
+ /**
+ * An override for the merchant ID configured for the connector, used in combination with meta keys.
+ * @return metaKeyMerchantId
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "An override for the merchant ID configured for the connector, used in combination with meta keys.")
+
+ public String getMetaKeyMerchantId() {
+ return metaKeyMerchantId;
+ }
+
+
+ public void setMetaKeyMerchantId(String metaKeyMerchantId) {
+ this.metaKeyMerchantId = metaKeyMerchantId;
+ }
+
+
+ public ConnectionOptionsCybersourceKcp merchantDefinedInformation(Map merchantDefinedInformation) {
+
+ this.merchantDefinedInformation = merchantDefinedInformation;
+ return this;
+ }
+
+ public ConnectionOptionsCybersourceKcp putMerchantDefinedInformationItem(String key, String merchantDefinedInformationItem) {
+ if (this.merchantDefinedInformation == null) {
+ this.merchantDefinedInformation = new HashMap();
+ }
+ this.merchantDefinedInformation.put(key, merchantDefinedInformationItem);
+ return this;
+ }
+
+ /**
+ * This is a key-value object for merchant defined information. Each key needs to be a numeric string identifying the MDI field to set. For example, for field 1 set the key to \"1\".
+ * @return merchantDefinedInformation
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(example = "{\"1\":\"John Doe\",\"2\":\"trusted\",\"99\":\"recurring\"}", value = "This is a key-value object for merchant defined information. Each key needs to be a numeric string identifying the MDI field to set. For example, for field 1 set the key to \"1\".")
+
+ public Map getMerchantDefinedInformation() {
+ return merchantDefinedInformation;
+ }
+
+
+ public void setMerchantDefinedInformation(Map merchantDefinedInformation) {
+ this.merchantDefinedInformation = merchantDefinedInformation;
+ }
+
+
+ public ConnectionOptionsCybersourceKcp shipToMethod(String shipToMethod) {
+
+ this.shipToMethod = shipToMethod;
+ return this;
+ }
+
+ /**
+ * Shipping method for the order.
+ * @return shipToMethod
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Shipping method for the order.")
+
+ public String getShipToMethod() {
+ return shipToMethod;
+ }
+
+
+ public void setShipToMethod(String shipToMethod) {
+ this.shipToMethod = shipToMethod;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ConnectionOptionsCybersourceKcp connectionOptionsCybersourceKcp = (ConnectionOptionsCybersourceKcp) o;
+ return Objects.equals(this.metaKeyMerchantId, connectionOptionsCybersourceKcp.metaKeyMerchantId) &&
+ Objects.equals(this.merchantDefinedInformation, connectionOptionsCybersourceKcp.merchantDefinedInformation) &&
+ Objects.equals(this.shipToMethod, connectionOptionsCybersourceKcp.shipToMethod);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(metaKeyMerchantId, merchantDefinedInformation, shipToMethod);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ConnectionOptionsCybersourceKcp {\n");
+ sb.append(" metaKeyMerchantId: ").append(toIndentedString(metaKeyMerchantId)).append("\n");
+ sb.append(" merchantDefinedInformation: ").append(toIndentedString(merchantDefinedInformation)).append("\n");
+ sb.append(" shipToMethod: ").append(toIndentedString(shipToMethod)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+}
+
diff --git a/src/main/java/com/gr4vy/api/model/PaymentMethod.java b/src/main/java/com/gr4vy/api/model/PaymentMethod.java
index feabd15..c5ce165 100644
--- a/src/main/java/com/gr4vy/api/model/PaymentMethod.java
+++ b/src/main/java/com/gr4vy/api/model/PaymentMethod.java
@@ -346,14 +346,20 @@ public enum MethodEnum {
GOOGLEPAY("googlepay"),
+ GOOGLEPAY_PAN_ONLY("googlepay_pan_only"),
+
GOPAY("gopay"),
GRABPAY("grabpay"),
+ ID("id"),
+
IDEAL("ideal"),
KAKAOPAY("kakaopay"),
+ KCP("kcp"),
+
KLARNA("klarna"),
LAYBUY("laybuy"),
@@ -414,6 +420,8 @@ public enum MethodEnum {
SOFORT("sofort"),
+ SPEI("spei"),
+
STRIPEDD("stripedd"),
THAIQR("thaiqr"),
@@ -487,7 +495,11 @@ public enum ModeEnum {
APPLEPAY("applepay"),
- GOOGLEPAY("googlepay");
+ GOOGLEPAY("googlepay"),
+
+ CLICK_TO_PAY("click-to-pay"),
+
+ CHECKOUT_SESSION("checkout-session");
private String value;
@@ -629,7 +641,7 @@ public SchemeEnum read(final JsonReader jsonReader) throws IOException {
private SchemeEnum scheme;
/**
- * The state of the payment method. - `processing` - The payment method is stored but has not been used yet. - `buyer_approval_required` - Storing the payment method requires the buyer to provide approval. Follow the `approval_url` for next steps. - `succeeded` - The payment method is stored and has been used. - `failed` - The payment method could not be stored, or failed first use.
+ * The state of the payment method. - `processing` - The payment method is stored but is not ready to be used yet, as we may be waiting for a notification from a connector to complete the setup. - `buyer_approval_required` - Storing the payment method requires the buyer to provide approval. Follow the `approval_url` for next steps. - `succeeded` - The payment method is stored and can be used. - `failed` - The payment method could not be stored, or failed verification.
*/
@JsonAdapter(StatusEnum.Adapter.class)
public enum StatusEnum {
@@ -1144,11 +1156,11 @@ public PaymentMethod status(StatusEnum status) {
}
/**
- * The state of the payment method. - `processing` - The payment method is stored but has not been used yet. - `buyer_approval_required` - Storing the payment method requires the buyer to provide approval. Follow the `approval_url` for next steps. - `succeeded` - The payment method is stored and has been used. - `failed` - The payment method could not be stored, or failed first use.
+ * The state of the payment method. - `processing` - The payment method is stored but is not ready to be used yet, as we may be waiting for a notification from a connector to complete the setup. - `buyer_approval_required` - Storing the payment method requires the buyer to provide approval. Follow the `approval_url` for next steps. - `succeeded` - The payment method is stored and can be used. - `failed` - The payment method could not be stored, or failed verification.
* @return status
**/
@javax.annotation.Nullable
- @ApiModelProperty(example = "succeeded", value = "The state of the payment method. - `processing` - The payment method is stored but has not been used yet. - `buyer_approval_required` - Storing the payment method requires the buyer to provide approval. Follow the `approval_url` for next steps. - `succeeded` - The payment method is stored and has been used. - `failed` - The payment method could not be stored, or failed first use.")
+ @ApiModelProperty(example = "succeeded", value = "The state of the payment method. - `processing` - The payment method is stored but is not ready to be used yet, as we may be waiting for a notification from a connector to complete the setup. - `buyer_approval_required` - Storing the payment method requires the buyer to provide approval. Follow the `approval_url` for next steps. - `succeeded` - The payment method is stored and can be used. - `failed` - The payment method could not be stored, or failed verification.")
public StatusEnum getStatus() {
return status;
diff --git a/src/main/java/com/gr4vy/api/model/PaymentMethodSnapshot.java b/src/main/java/com/gr4vy/api/model/PaymentMethodSnapshot.java
index c474a68..28cd958 100644
--- a/src/main/java/com/gr4vy/api/model/PaymentMethodSnapshot.java
+++ b/src/main/java/com/gr4vy/api/model/PaymentMethodSnapshot.java
@@ -230,14 +230,20 @@ public enum MethodEnum {
GOOGLEPAY("googlepay"),
+ GOOGLEPAY_PAN_ONLY("googlepay_pan_only"),
+
GOPAY("gopay"),
GRABPAY("grabpay"),
+ ID("id"),
+
IDEAL("ideal"),
KAKAOPAY("kakaopay"),
+ KCP("kcp"),
+
KLARNA("klarna"),
LAYBUY("laybuy"),
@@ -298,6 +304,8 @@ public enum MethodEnum {
SOFORT("sofort"),
+ SPEI("spei"),
+
STRIPEDD("stripedd"),
THAIQR("thaiqr"),
diff --git a/src/main/java/com/gr4vy/api/model/PaymentMethodTokenized.java b/src/main/java/com/gr4vy/api/model/PaymentMethodTokenized.java
index cd2c66a..99e1c6b 100644
--- a/src/main/java/com/gr4vy/api/model/PaymentMethodTokenized.java
+++ b/src/main/java/com/gr4vy/api/model/PaymentMethodTokenized.java
@@ -152,14 +152,20 @@ public enum MethodEnum {
GOOGLEPAY("googlepay"),
+ GOOGLEPAY_PAN_ONLY("googlepay_pan_only"),
+
GOPAY("gopay"),
GRABPAY("grabpay"),
+ ID("id"),
+
IDEAL("ideal"),
KAKAOPAY("kakaopay"),
+ KCP("kcp"),
+
KLARNA("klarna"),
LAYBUY("laybuy"),
@@ -220,6 +226,8 @@ public enum MethodEnum {
SOFORT("sofort"),
+ SPEI("spei"),
+
STRIPEDD("stripedd"),
THAIQR("thaiqr"),
diff --git a/src/main/java/com/gr4vy/api/model/PaymentOption.java b/src/main/java/com/gr4vy/api/model/PaymentOption.java
index 809a2c3..776e7ae 100644
--- a/src/main/java/com/gr4vy/api/model/PaymentOption.java
+++ b/src/main/java/com/gr4vy/api/model/PaymentOption.java
@@ -141,14 +141,20 @@ public enum MethodEnum {
GOOGLEPAY("googlepay"),
+ GOOGLEPAY_PAN_ONLY("googlepay_pan_only"),
+
GOPAY("gopay"),
GRABPAY("grabpay"),
+ ID("id"),
+
IDEAL("ideal"),
KAKAOPAY("kakaopay"),
+ KCP("kcp"),
+
KLARNA("klarna"),
LAYBUY("laybuy"),
@@ -208,7 +214,7 @@ public enum MethodEnum {
SMARTPAY("smartpay"),
SOFORT("sofort"),
-
+
SPEI("spei"),
STRIPEDD("stripedd"),
@@ -288,7 +294,11 @@ public enum ModeEnum {
APPLEPAY("applepay"),
- GOOGLEPAY("googlepay");
+ GOOGLEPAY("googlepay"),
+
+ CLICK_TO_PAY("click-to-pay"),
+
+ CHECKOUT_SESSION("checkout-session");
private String value;
diff --git a/src/main/java/com/gr4vy/api/model/PaymentService.java b/src/main/java/com/gr4vy/api/model/PaymentService.java
index 19b2131..f389eca 100644
--- a/src/main/java/com/gr4vy/api/model/PaymentService.java
+++ b/src/main/java/com/gr4vy/api/model/PaymentService.java
@@ -182,14 +182,20 @@ public enum MethodEnum {
GOOGLEPAY("googlepay"),
+ GOOGLEPAY_PAN_ONLY("googlepay_pan_only"),
+
GOPAY("gopay"),
GRABPAY("grabpay"),
+ ID("id"),
+
IDEAL("ideal"),
KAKAOPAY("kakaopay"),
+ KCP("kcp"),
+
KLARNA("klarna"),
LAYBUY("laybuy"),
@@ -250,6 +256,8 @@ public enum MethodEnum {
SOFORT("sofort"),
+ SPEI("spei"),
+
STRIPEDD("stripedd"),
THAIQR("thaiqr"),
diff --git a/src/main/java/com/gr4vy/api/model/PaymentServiceDefinition.java b/src/main/java/com/gr4vy/api/model/PaymentServiceDefinition.java
index 816f392..1c79541 100644
--- a/src/main/java/com/gr4vy/api/model/PaymentServiceDefinition.java
+++ b/src/main/java/com/gr4vy/api/model/PaymentServiceDefinition.java
@@ -153,14 +153,20 @@ public enum MethodEnum {
GOOGLEPAY("googlepay"),
+ GOOGLEPAY_PAN_ONLY("googlepay_pan_only"),
+
GOPAY("gopay"),
GRABPAY("grabpay"),
+ ID("id"),
+
IDEAL("ideal"),
KAKAOPAY("kakaopay"),
+ KCP("kcp"),
+
KLARNA("klarna"),
LAYBUY("laybuy"),
@@ -221,6 +227,8 @@ public enum MethodEnum {
SOFORT("sofort"),
+ SPEI("spei"),
+
STRIPEDD("stripedd"),
THAIQR("thaiqr"),
@@ -306,7 +314,11 @@ public enum ModeEnum {
APPLEPAY("applepay"),
- GOOGLEPAY("googlepay");
+ GOOGLEPAY("googlepay"),
+
+ CLICK_TO_PAY("click-to-pay"),
+
+ CHECKOUT_SESSION("checkout-session");
private String value;
diff --git a/src/main/java/com/gr4vy/api/model/PaymentServiceSnapshot.java b/src/main/java/com/gr4vy/api/model/PaymentServiceSnapshot.java
index 281366a..0af4abd 100644
--- a/src/main/java/com/gr4vy/api/model/PaymentServiceSnapshot.java
+++ b/src/main/java/com/gr4vy/api/model/PaymentServiceSnapshot.java
@@ -148,14 +148,20 @@ public enum MethodEnum {
GOOGLEPAY("googlepay"),
+ GOOGLEPAY_PAN_ONLY("googlepay_pan_only"),
+
GOPAY("gopay"),
GRABPAY("grabpay"),
+ ID("id"),
+
IDEAL("ideal"),
KAKAOPAY("kakaopay"),
+ KCP("kcp"),
+
KLARNA("klarna"),
LAYBUY("laybuy"),
@@ -216,6 +222,8 @@ public enum MethodEnum {
SOFORT("sofort"),
+ SPEI("spei"),
+
STRIPEDD("stripedd"),
THAIQR("thaiqr"),
diff --git a/src/main/java/com/gr4vy/api/model/RedirectRequest.java b/src/main/java/com/gr4vy/api/model/RedirectRequest.java
index 1708a1c..90ed7fb 100644
--- a/src/main/java/com/gr4vy/api/model/RedirectRequest.java
+++ b/src/main/java/com/gr4vy/api/model/RedirectRequest.java
@@ -32,7 +32,7 @@
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen")
public class RedirectRequest {
/**
- * The method to use, this can be any of the methods that support redirect requests. When storing a new payment method, only `gocardless` and `stripedd` are currently supported.
+ * The method to use, this can be any of the methods that support redirect requests.
*/
@JsonAdapter(MethodEnum.Adapter.class)
public enum MethodEnum {
@@ -120,10 +120,10 @@ public RedirectRequest method(MethodEnum method) {
}
/**
- * The method to use, this can be any of the methods that support redirect requests. When storing a new payment method, only `gocardless` and `stripedd` are currently supported.
+ * The method to use, this can be any of the methods that support redirect requests.
* @return method
**/
- @ApiModelProperty(example = "paypal", required = true, value = "The method to use, this can be any of the methods that support redirect requests. When storing a new payment method, only `gocardless` and `stripedd` are currently supported.")
+ @ApiModelProperty(example = "paypal", required = true, value = "The method to use, this can be any of the methods that support redirect requests.")
public MethodEnum getMethod() {
return method;
diff --git a/src/main/java/com/gr4vy/api/model/Transaction.java b/src/main/java/com/gr4vy/api/model/Transaction.java
index d282e3c..b6094db 100644
--- a/src/main/java/com/gr4vy/api/model/Transaction.java
+++ b/src/main/java/com/gr4vy/api/model/Transaction.java
@@ -520,16 +520,20 @@ public enum MethodEnum {
GOOGLEPAY("googlepay"),
+ GOOGLEPAY_PAN_ONLY("googlepay_pan_only"),
+
GOPAY("gopay"),
GRABPAY("grabpay"),
-
+
ID("id"),
IDEAL("ideal"),
KAKAOPAY("kakaopay"),
+ KCP("kcp"),
+
KLARNA("klarna"),
LAYBUY("laybuy"),
@@ -590,6 +594,8 @@ public enum MethodEnum {
SOFORT("sofort"),
+ SPEI("spei"),
+
STRIPEDD("stripedd"),
THAIQR("thaiqr"),
diff --git a/src/main/java/com/gr4vy/api/model/TransactionBuyerRequest.java b/src/main/java/com/gr4vy/api/model/TransactionBuyerRequest.java
new file mode 100644
index 0000000..04a0c25
--- /dev/null
+++ b/src/main/java/com/gr4vy/api/model/TransactionBuyerRequest.java
@@ -0,0 +1,187 @@
+/*
+ * Gr4vy API
+ * Welcome to the Gr4vy API reference documentation. Our API is still very much a work in product and subject to change.
+ *
+ * The version of the OpenAPI document: 1.1.0-beta
+ * Contact: code@gr4vy.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package com.gr4vy.api.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+import com.gr4vy.api.model.BillingDetailsRequest;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.IOException;
+
+/**
+ * Guest buyer details.
+ */
+@ApiModel(description = "Guest buyer details.")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen")
+public class TransactionBuyerRequest {
+ public static final String SERIALIZED_NAME_EXTERNAL_IDENTIFIER = "external_identifier";
+ @SerializedName(SERIALIZED_NAME_EXTERNAL_IDENTIFIER)
+ private String externalIdentifier;
+
+ public static final String SERIALIZED_NAME_DISPLAY_NAME = "display_name";
+ @SerializedName(SERIALIZED_NAME_DISPLAY_NAME)
+ private String displayName;
+
+ public static final String SERIALIZED_NAME_BILLING_DETAILS = "billing_details";
+ @SerializedName(SERIALIZED_NAME_BILLING_DETAILS)
+ private BillingDetailsRequest billingDetails;
+
+ public static final String SERIALIZED_NAME_SHIPPING_DETAILS = "shipping_details";
+ @SerializedName(SERIALIZED_NAME_SHIPPING_DETAILS)
+ private BillingDetailsRequest shippingDetails;
+
+
+ public TransactionBuyerRequest externalIdentifier(String externalIdentifier) {
+
+ this.externalIdentifier = externalIdentifier;
+ return this;
+ }
+
+ /**
+ * An external identifier that can be used to match the buyer against your own records. This value needs to be unique for all buyers.
+ * @return externalIdentifier
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(example = "user-789123", value = "An external identifier that can be used to match the buyer against your own records. This value needs to be unique for all buyers.")
+
+ public String getExternalIdentifier() {
+ return externalIdentifier;
+ }
+
+
+ public void setExternalIdentifier(String externalIdentifier) {
+ this.externalIdentifier = externalIdentifier;
+ }
+
+
+ public TransactionBuyerRequest displayName(String displayName) {
+
+ this.displayName = displayName;
+ return this;
+ }
+
+ /**
+ * A unique name for this buyer which is used in the Gr4vy admin panel to give a buyer a human readable name.
+ * @return displayName
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(example = "John L.", value = "A unique name for this buyer which is used in the Gr4vy admin panel to give a buyer a human readable name.")
+
+ public String getDisplayName() {
+ return displayName;
+ }
+
+
+ public void setDisplayName(String displayName) {
+ this.displayName = displayName;
+ }
+
+
+ public TransactionBuyerRequest billingDetails(BillingDetailsRequest billingDetails) {
+
+ this.billingDetails = billingDetails;
+ return this;
+ }
+
+ /**
+ * The optional billing details for the a buyer.
+ * @return billingDetails
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "The optional billing details for the a buyer.")
+
+ public BillingDetailsRequest getBillingDetails() {
+ return billingDetails;
+ }
+
+
+ public void setBillingDetails(BillingDetailsRequest billingDetails) {
+ this.billingDetails = billingDetails;
+ }
+
+
+ public TransactionBuyerRequest shippingDetails(BillingDetailsRequest shippingDetails) {
+
+ this.shippingDetails = shippingDetails;
+ return this;
+ }
+
+ /**
+ * The optional shipping details for the buyer.
+ * @return shippingDetails
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "The optional shipping details for the buyer.")
+
+ public BillingDetailsRequest getShippingDetails() {
+ return shippingDetails;
+ }
+
+
+ public void setShippingDetails(BillingDetailsRequest shippingDetails) {
+ this.shippingDetails = shippingDetails;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ TransactionBuyerRequest transactionBuyerRequest = (TransactionBuyerRequest) o;
+ return Objects.equals(this.externalIdentifier, transactionBuyerRequest.externalIdentifier) &&
+ Objects.equals(this.displayName, transactionBuyerRequest.displayName) &&
+ Objects.equals(this.billingDetails, transactionBuyerRequest.billingDetails) &&
+ Objects.equals(this.shippingDetails, transactionBuyerRequest.shippingDetails);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(externalIdentifier, displayName, billingDetails, shippingDetails);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class TransactionBuyerRequest {\n");
+ sb.append(" externalIdentifier: ").append(toIndentedString(externalIdentifier)).append("\n");
+ sb.append(" displayName: ").append(toIndentedString(displayName)).append("\n");
+ sb.append(" billingDetails: ").append(toIndentedString(billingDetails)).append("\n");
+ sb.append(" shippingDetails: ").append(toIndentedString(shippingDetails)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+}
+
diff --git a/src/main/java/com/gr4vy/api/model/TransactionPaymentMethodRequest.java b/src/main/java/com/gr4vy/api/model/TransactionPaymentMethodRequest.java
index 38a9c90..327fbc4 100644
--- a/src/main/java/com/gr4vy/api/model/TransactionPaymentMethodRequest.java
+++ b/src/main/java/com/gr4vy/api/model/TransactionPaymentMethodRequest.java
@@ -92,16 +92,20 @@ public enum MethodEnum {
GOOGLEPAY("googlepay"),
+ GOOGLEPAY_PAN_ONLY("googlepay_pan_only"),
+
GOPAY("gopay"),
GRABPAY("grabpay"),
-
+
ID("id"),
IDEAL("ideal"),
KAKAOPAY("kakaopay"),
+ KCP("kcp"),
+
KLARNA("klarna"),
LAYBUY("laybuy"),
@@ -162,6 +166,8 @@ public enum MethodEnum {
SOFORT("sofort"),
+ SPEI("spei"),
+
STRIPEDD("stripedd"),
THAIQR("thaiqr"),
diff --git a/src/main/java/com/gr4vy/api/model/TransactionRedirectRequest.java b/src/main/java/com/gr4vy/api/model/TransactionRedirectRequest.java
index 1ecf525..97b14ca 100644
--- a/src/main/java/com/gr4vy/api/model/TransactionRedirectRequest.java
+++ b/src/main/java/com/gr4vy/api/model/TransactionRedirectRequest.java
@@ -31,7 +31,7 @@
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen")
public class TransactionRedirectRequest {
/**
- * The method to use, this can be any of the methods that support redirect requests. When storing a new payment method, only `gocardless` and `stripedd` are currently supported.
+ * The method to use, this can be any of the methods that support redirect requests.
*/
@JsonAdapter(MethodEnum.Adapter.class)
public enum MethodEnum {
@@ -111,10 +111,10 @@ public TransactionRedirectRequest method(MethodEnum method) {
}
/**
- * The method to use, this can be any of the methods that support redirect requests. When storing a new payment method, only `gocardless` and `stripedd` are currently supported.
+ * The method to use, this can be any of the methods that support redirect requests.
* @return method
**/
- @ApiModelProperty(example = "paypal", required = true, value = "The method to use, this can be any of the methods that support redirect requests. When storing a new payment method, only `gocardless` and `stripedd` are currently supported.")
+ @ApiModelProperty(example = "paypal", required = true, value = "The method to use, this can be any of the methods that support redirect requests.")
public MethodEnum getMethod() {
return method;
diff --git a/src/main/java/com/gr4vy/api/model/TransactionRequest.java b/src/main/java/com/gr4vy/api/model/TransactionRequest.java
index b04b5c0..a852609 100644
--- a/src/main/java/com/gr4vy/api/model/TransactionRequest.java
+++ b/src/main/java/com/gr4vy/api/model/TransactionRequest.java
@@ -25,6 +25,7 @@
import com.gr4vy.api.model.ConnectionOptions;
import com.gr4vy.api.model.StatementDescriptor;
import com.gr4vy.api.model.ThreeDSecureDataV1V2;
+import com.gr4vy.api.model.TransactionBuyerRequest;
import com.gr4vy.api.model.TransactionGiftCardRequest;
import com.gr4vy.api.model.TransactionPaymentMethodRequest;
import io.swagger.annotations.ApiModel;
@@ -74,6 +75,10 @@ public class TransactionRequest {
@SerializedName(SERIALIZED_NAME_BUYER_ID)
private UUID buyerId;
+ public static final String SERIALIZED_NAME_BUYER = "buyer";
+ @SerializedName(SERIALIZED_NAME_BUYER)
+ private TransactionBuyerRequest buyer;
+
public static final String SERIALIZED_NAME_CART_ITEMS = "cart_items";
@SerializedName(SERIALIZED_NAME_CART_ITEMS)
private List cartItems = null;
@@ -423,6 +428,29 @@ public void setBuyerId(UUID buyerId) {
}
+ public TransactionRequest buyer(TransactionBuyerRequest buyer) {
+
+ this.buyer = buyer;
+ return this;
+ }
+
+ /**
+ * Get buyer
+ * @return buyer
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "")
+
+ public TransactionBuyerRequest getBuyer() {
+ return buyer;
+ }
+
+
+ public void setBuyer(TransactionBuyerRequest buyer) {
+ this.buyer = buyer;
+ }
+
+
public TransactionRequest cartItems(List cartItems) {
this.cartItems = cartItems;
@@ -832,6 +860,7 @@ public boolean equals(Object o) {
Objects.equals(this.browserInfo, transactionRequest.browserInfo) &&
Objects.equals(this.buyerExternalIdentifier, transactionRequest.buyerExternalIdentifier) &&
Objects.equals(this.buyerId, transactionRequest.buyerId) &&
+ Objects.equals(this.buyer, transactionRequest.buyer) &&
Objects.equals(this.cartItems, transactionRequest.cartItems) &&
Objects.equals(this.connectionOptions, transactionRequest.connectionOptions) &&
Objects.equals(this.country, transactionRequest.country) &&
@@ -852,7 +881,7 @@ public boolean equals(Object o) {
@Override
public int hashCode() {
- return Objects.hash(amount, currency, paymentMethod, antiFraudFingerprint, asyncCapture, browserInfo, buyerExternalIdentifier, buyerId, cartItems, connectionOptions, country, externalIdentifier, giftCards, intent, isSubsequentPayment, merchantInitiated, metadata, paymentSource, previousSchemeTransactionId, shippingDetailsId, statementDescriptor, store, threeDSecureData, paymentServiceId);
+ return Objects.hash(amount, currency, paymentMethod, antiFraudFingerprint, asyncCapture, browserInfo, buyerExternalIdentifier, buyerId, buyer, cartItems, connectionOptions, country, externalIdentifier, giftCards, intent, isSubsequentPayment, merchantInitiated, metadata, paymentSource, previousSchemeTransactionId, shippingDetailsId, statementDescriptor, store, threeDSecureData, paymentServiceId);
}
@Override
@@ -867,6 +896,7 @@ public String toString() {
sb.append(" browserInfo: ").append(toIndentedString(browserInfo)).append("\n");
sb.append(" buyerExternalIdentifier: ").append(toIndentedString(buyerExternalIdentifier)).append("\n");
sb.append(" buyerId: ").append(toIndentedString(buyerId)).append("\n");
+ sb.append(" buyer: ").append(toIndentedString(buyer)).append("\n");
sb.append(" cartItems: ").append(toIndentedString(cartItems)).append("\n");
sb.append(" connectionOptions: ").append(toIndentedString(connectionOptions)).append("\n");
sb.append(" country: ").append(toIndentedString(country)).append("\n");
diff --git a/src/main/java/com/gr4vy/api/model/TransactionSummary.java b/src/main/java/com/gr4vy/api/model/TransactionSummary.java
index b8be8ff..62a15fe 100644
--- a/src/main/java/com/gr4vy/api/model/TransactionSummary.java
+++ b/src/main/java/com/gr4vy/api/model/TransactionSummary.java
@@ -308,14 +308,20 @@ public enum MethodEnum {
GOOGLEPAY("googlepay"),
+ GOOGLEPAY_PAN_ONLY("googlepay_pan_only"),
+
GOPAY("gopay"),
GRABPAY("grabpay"),
+ ID("id"),
+
IDEAL("ideal"),
KAKAOPAY("kakaopay"),
+ KCP("kcp"),
+
KLARNA("klarna"),
LAYBUY("laybuy"),
@@ -376,6 +382,8 @@ public enum MethodEnum {
SOFORT("sofort"),
+ SPEI("spei"),
+
STRIPEDD("stripedd"),
THAIQR("thaiqr"),
diff --git a/src/main/java/com/gr4vy/sdk/Gr4vyClient.java b/src/main/java/com/gr4vy/sdk/Gr4vyClient.java
index 027a764..b4407ee 100644
--- a/src/main/java/com/gr4vy/sdk/Gr4vyClient.java
+++ b/src/main/java/com/gr4vy/sdk/Gr4vyClient.java
@@ -313,10 +313,13 @@ public String get(String endpoint) throws Gr4vyException {
}
public String post(String endpoint, String jsonBody) throws Gr4vyException {
- return this.post(endpoint, jsonBody, null);
+ return this.post(endpoint, jsonBody, null, null);
}
public String post(String endpoint, String jsonBody, String idempotencyKey) throws Gr4vyException {
+ return this.post(endpoint, jsonBody, idempotencyKey, null);
+ }
+ public String post(String endpoint, String jsonBody, String idempotencyKey, String ipAddress) throws Gr4vyException {
String[] scopes = {"*.read", "*.write"};
String accessToken = null;
try {
@@ -335,6 +338,9 @@ public String post(String endpoint, String jsonBody, String idempotencyKey) thro
if (idempotencyKey != null) {
requestBuilder.addHeader("Idempotency-Key", idempotencyKey);
+ }
+ if (ipAddress != null) {
+ requestBuilder.addHeader("X-Forwarded-For", ipAddress);
}
if (jsonBody != null) {
RequestBody body = RequestBody.create(jsonBody, JSON);
@@ -535,6 +541,10 @@ public Transaction newTransaction(TransactionRequest request, String idempotency
String response = this.post("/transactions", this.gson.toJson(request), idempotencyKey);
return this.gson.fromJson(response,Transaction.class);
}
+ public Transaction newTransaction(TransactionRequest request, String idempotencyKey, String ipAddress) {
+ String response = this.post("/transactions", this.gson.toJson(request), idempotencyKey, ipAddress);
+ return this.gson.fromJson(response,Transaction.class);
+ }
public Transaction getTransaction(String transactionId) {
String response = this.get("/transactions/" + transactionId);
return this.gson.fromJson(response,Transaction.class);
diff --git a/src/test/java/com/gr4vy/sdk/Gr4vyClientTest.java b/src/test/java/com/gr4vy/sdk/Gr4vyClientTest.java
index e9633e8..cd8f23f 100644
--- a/src/test/java/com/gr4vy/sdk/Gr4vyClientTest.java
+++ b/src/test/java/com/gr4vy/sdk/Gr4vyClientTest.java
@@ -262,6 +262,26 @@ public void newTransactionWithIdempotencyTest() throws Gr4vyException {
assert response != null;
}
+ @Test
+ public void newTransactionWithIdempotencyAndIpAddressTest() throws Gr4vyException {
+ TransactionPaymentMethodRequest pm = new TransactionPaymentMethodRequest()
+ .method(MethodEnum.CARD)
+ .number("4111111111111111")
+ .securityCode("123")
+ .expirationDate("12/26");
+
+ TransactionRequest request = new TransactionRequest()
+ .amount(200)
+ .currency("USD")
+ .paymentMethod(pm);
+
+ UUID idempotencyKey = UUID.randomUUID();
+ Transaction response = shared.newTransaction(request, idempotencyKey.toString(), "64.233.160.0");
+ assert response != null;
+ }
+
+
+
@Test
public void newTransactionWithStoredPaymentMethodTest() throws Gr4vyException {