diff --git a/README.md b/README.md
index 89c52502..c26df352 100644
--- a/README.md
+++ b/README.md
@@ -23,14 +23,14 @@ And then add the artifact `incognia-api-client` **or** `incognia-api-client-shad
com.incognia
incognia-api-client
- 3.10.0
+ 3.11.0
```
```xml
com.incognia
incognia-api-client-shaded
- 3.10.0
+ 3.11.0
```
@@ -47,13 +47,13 @@ repositories {
And then add the dependency
```gradle
dependencies {
- implementation 'com.incognia:incognia-api-client:3.8.0'
+ implementation 'com.incognia:incognia-api-client:3.11.0'
}
```
OR
```gradle
dependencies {
- implementation 'com.incognia:incognia-api-client-shaded:3.8.0'
+ implementation 'com.incognia:incognia-api-client-shaded:3.11.0'
}
```
diff --git a/build.gradle b/build.gradle
index c1518dec..ffe2b71e 100644
--- a/build.gradle
+++ b/build.gradle
@@ -8,7 +8,7 @@ plugins {
}
group = "com.incognia"
-version = "3.10.0"
+version = "3.11.0"
task createProjectVersionFile {
def projectVersionDir = "$projectDir/src/main/java/com/incognia/api"
diff --git a/src/main/java/com/incognia/api/IncogniaAPI.java b/src/main/java/com/incognia/api/IncogniaAPI.java
index 593f96d6..5c7da46e 100644
--- a/src/main/java/com/incognia/api/IncogniaAPI.java
+++ b/src/main/java/com/incognia/api/IncogniaAPI.java
@@ -463,6 +463,8 @@ public TransactionAssessment registerPayment(RegisterPaymentRequest request)
.customProperties(request.getCustomProperties())
.coupon(request.getCoupon())
.personId(request.getPersonId())
+ .debtorAccount(request.getDebtorAccount())
+ .creditorAccount(request.getCreditorAccount())
.build();
Map queryParameters = new HashMap<>();
diff --git a/src/main/java/com/incognia/transaction/PostTransactionRequestBody.java b/src/main/java/com/incognia/transaction/PostTransactionRequestBody.java
index 57c42599..61c58cb8 100644
--- a/src/main/java/com/incognia/transaction/PostTransactionRequestBody.java
+++ b/src/main/java/com/incognia/transaction/PostTransactionRequestBody.java
@@ -3,6 +3,7 @@
import com.fasterxml.jackson.annotation.JsonInclude;
import com.incognia.common.Location;
import com.incognia.common.PersonID;
+import com.incognia.transaction.payment.BankAccountInfo;
import com.incognia.transaction.payment.Coupon;
import com.incognia.transaction.payment.PaymentMethod;
import com.incognia.transaction.payment.PaymentValue;
@@ -29,6 +30,8 @@ public class PostTransactionRequestBody {
Location location;
Coupon coupon;
PersonID personId;
+ BankAccountInfo debtorAccount;
+ BankAccountInfo creditorAccount;
@JsonInclude(JsonInclude.Include.NON_EMPTY)
@Builder.Default
diff --git a/src/main/java/com/incognia/transaction/payment/BankAccountInfo.java b/src/main/java/com/incognia/transaction/payment/BankAccountInfo.java
new file mode 100644
index 00000000..a83f923e
--- /dev/null
+++ b/src/main/java/com/incognia/transaction/payment/BankAccountInfo.java
@@ -0,0 +1,22 @@
+package com.incognia.transaction.payment;
+
+import com.incognia.common.PersonID;
+import java.util.Collections;
+import java.util.List;
+import lombok.Builder;
+import lombok.Value;
+
+@Value
+@Builder
+public class BankAccountInfo {
+ String accountType;
+ String accountPurpose;
+ String holderType;
+ PersonID holderTaxId;
+ String country;
+ String ispbCode;
+ String branchCode;
+ String accountNumber;
+ String accountCheckDigit;
+ @Builder.Default List pixKeys = Collections.emptyList();
+}
diff --git a/src/main/java/com/incognia/transaction/payment/PixKey.java b/src/main/java/com/incognia/transaction/payment/PixKey.java
new file mode 100644
index 00000000..fe7d3946
--- /dev/null
+++ b/src/main/java/com/incognia/transaction/payment/PixKey.java
@@ -0,0 +1,11 @@
+package com.incognia.transaction.payment;
+
+import lombok.Builder;
+import lombok.Value;
+
+@Value
+@Builder
+public class PixKey {
+ String type;
+ String value;
+}
diff --git a/src/main/java/com/incognia/transaction/payment/RegisterPaymentRequest.java b/src/main/java/com/incognia/transaction/payment/RegisterPaymentRequest.java
index 0e9a3168..36b83f3e 100644
--- a/src/main/java/com/incognia/transaction/payment/RegisterPaymentRequest.java
+++ b/src/main/java/com/incognia/transaction/payment/RegisterPaymentRequest.java
@@ -32,6 +32,8 @@ public class RegisterPaymentRequest {
Location location;
Coupon coupon;
PersonID personId;
+ BankAccountInfo debtorAccount;
+ BankAccountInfo creditorAccount;
@Getter(AccessLevel.NONE)
Boolean evaluateTransaction;
diff --git a/src/test/java/com/incognia/api/IncogniaAPITest.java b/src/test/java/com/incognia/api/IncogniaAPITest.java
index 9fcf0f16..b58dc79e 100644
--- a/src/test/java/com/incognia/api/IncogniaAPITest.java
+++ b/src/test/java/com/incognia/api/IncogniaAPITest.java
@@ -35,11 +35,13 @@
import com.incognia.transaction.TransactionAssessment;
import com.incognia.transaction.login.RegisterLoginRequest;
import com.incognia.transaction.login.RegisterWebLoginRequest;
+import com.incognia.transaction.payment.BankAccountInfo;
import com.incognia.transaction.payment.CardInfo;
import com.incognia.transaction.payment.Coupon;
import com.incognia.transaction.payment.PaymentMethod;
import com.incognia.transaction.payment.PaymentType;
import com.incognia.transaction.payment.PaymentValue;
+import com.incognia.transaction.payment.PixKey;
import com.incognia.transaction.payment.RegisterPaymentRequest;
import java.io.IOException;
import java.lang.reflect.Field;
@@ -664,6 +666,24 @@ void testRegisterPayment_whenDataIsValid(Boolean eval) {
Collections.singletonList(
new TransactionAddress(
"shipping", null, address.getStructuredAddress(), address.getCoordinates()));
+
+ List pixKeys = new ArrayList<>();
+ pixKeys.add(PixKey.builder().type("cpf").value("12345678901").build());
+
+ BankAccountInfo bankAccount =
+ BankAccountInfo.builder()
+ .accountType("checking")
+ .accountPurpose("general")
+ .holderType("individual")
+ .holderTaxId(PersonID.builder().type("cpf").value("12345678901").build())
+ .country("BR")
+ .ispbCode("12345678")
+ .branchCode("0000")
+ .accountNumber("123456")
+ .accountCheckDigit("0")
+ .pixKeys(pixKeys)
+ .build();
+
RegisterPaymentRequest paymentRequest =
RegisterPaymentRequest.builder()
.requestToken(requestToken)
@@ -681,6 +701,8 @@ void testRegisterPayment_whenDataIsValid(Boolean eval) {
.customProperties(customProperties)
.location(location)
.personId(personId)
+ .debtorAccount(bankAccount)
+ .creditorAccount(bankAccount)
.build();
dispatcher.setExpectedTransactionRequestBody(
PostTransactionRequestBody.builder()
@@ -699,6 +721,8 @@ void testRegisterPayment_whenDataIsValid(Boolean eval) {
.customProperties(customProperties)
.location(location)
.personId(personId)
+ .debtorAccount(bankAccount)
+ .creditorAccount(bankAccount)
.build());
mockServer.setDispatcher(dispatcher);
TransactionAssessment transactionAssessment = client.registerPayment(paymentRequest);