Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
/*
* NextGenPSD2 XS2A Framework
* # Summary The **NextGenPSD2** *Framework Version 1.3.4* offers a modern, open, harmonised and interoperable set of Application Programming Interfaces (APIs) as the safest and most efficient way to provide data securely. The NextGenPSD2 Framework reduces XS2A complexity and costs, addresses the problem of multiple competing standards in Europe and, aligned with the goals of the Euro Retail Payments Board, enables European banking customers to benefit from innovative products and services ('Banking as a Service') by granting TPPs safe and secure (authenticated and authorised) access to their bank accounts and financial data. The possible Approaches are: * Redirect SCA Approach * OAuth SCA Approach * Decoupled SCA Approach * Embedded SCA Approach without SCA method * Embedded SCA Approach with only one SCA method available * Embedded SCA Approach with Selection of a SCA method Not every message defined in this API definition is necessary for all approaches. Furthermore this API definition does not differ between methods which are mandatory, conditional, or optional Therefore for a particular implementation of a Berlin Group PSD2 compliant API it is only necessary to support a certain subset of the methods defined in this API definition. **Please have a look at the implementation guidelines if you are not sure which message has to be used for the approach you are going to use.** ## Some General Remarks Related to this version of the OpenAPI Specification: * **This API definition is based on the Implementation Guidelines of the Berlin Group PSD2 API.** It is not an replacement in any sense. The main specification is (at the moment) always the Implementation Guidelines of the Berlin Group PSD2 API. * **This API definition contains the REST-API for requests from the PISP to the ASPSP.** * **This API definition contains the messages for all different approaches defined in the Implementation Guidelines.** * According to the OpenAPI-Specification [https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.1.md] \"If in is \"header\" and the name field is \"Accept\", \"Content-Type\" or \"Authorization\", the parameter definition SHALL be ignored.\" The element \"Accept\" will not be defined in this file at any place. The elements \"Content-Type\" and \"Authorization\" are implicitly defined by the OpenApi tags \"content\" and \"security\". * There are several predefined types which might occur in payment initiation messages, but are not used in the standard JSON messages in the Implementation Guidelines. Therefore they are not used in the corresponding messages in this file either. We added them for the convenience of the user. If there is a payment product, which need these field, one can easily use the predefined types. But the ASPSP need not to accept them in general. * **We omit the definition of all standard HTTP header elements (mandatory/optional/conditional) except they are mention in the Implementation Guidelines.** Therefore the implementer might add the in his own realisation of a PSD2 comlient API in addition to the elements define in this file. ## General Remarks on Data Types The Berlin Group definition of UTF-8 strings in context of the PSD2 API have to support at least the following characters a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 / - ? : ( ) . , ' + Space
*
* OpenAPI spec version: 1.3.4_2019-07-17v1
* Contact: [email protected]
*
* NOTE: This class is auto generated by the swagger code generator program.
* https://github.com/swagger-api/swagger-codegen.git
* Do not edit the class manually.
*/
package de.adorsys.multibanking.xs2a_adapter.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 de.adorsys.multibanking.xs2a_adapter.model.AccountReference;
import de.adorsys.multibanking.xs2a_adapter.model.Address;
import de.adorsys.multibanking.xs2a_adapter.model.Amount;
import io.swagger.v3.oas.annotations.media.Schema;
import java.io.IOException;
/**
* Generic Body for a payment initation via JSON. This generic JSON body can be used to represent valid payment initiations for the following JSON based payment product, which where defined in the Implementation Guidelines: * sepa-credit-transfers * instant-sepa-credit-transfers * target-2-payments * cross-border-credit-transfers For the convenience of the implementer additional which are already predefinded in the Implementation Guidelines are included (but commented in source code), such that an ASPSP may add them easily. Take care: Since the format is intended to fit for all payment products there are additional conditions which are NOT covered by this specification. Please check the Implementation Guidelines for detailes. The following data element are depending on the actual payment product available (in source code): <table style=\"width:100%\"> <tr><th>Data Element</th><th>SCT EU Core</th><th>SCT INST EU Core</th><th>Target2 Paym. Core</th><th>Cross Border CT Core</th></tr> <tr><td>endToEndIdentification</td><td> optional</td> <td>optional</td> <td>optional</td> <td>n.a.</td> </tr> <tr><td>debtorAccount</td> <td>mandatory</td> <td>mandatory</td> <td>mandatory</td> <td>mandatory</td> </tr> <tr><td>debtorId</td> <td>n.a.</td> <td>n.a.</td> <td>n.a.</td> <td>n.a.</td> </tr> <tr><td>ultimateDebtor</td> <td>n.a.</td> <td>n.a.</td> <td>n.a.</td> <td>n.a.</td> </tr> <tr><td>instructedAmount</td> <td>mandatory</td> <td>mandatory</td> <td>mandatory</td> <td>mandatory</td> </tr> <tr><td>transactionCurrency</td> <td>n.a.</td> <td>n.a.</td> <td>n.a.</td> <td>n.a.</td> </tr> <tr><td>exchangeRateInformation</td> <td>n.a.</td> <td>n.a.</td><td>n.a.</td> <td>n.a.</td> </tr> <tr><td>creditorAccount</td> <td>mandatory</td> <td>mandatory</td> <td>mandatory</td> <td>mandatory</td> </tr> <tr><td>creditorAgent</td> <td>optional</td> <td>optional</td> <td>optional</td> <td>conditional </td> </tr> <tr><td>creditorAgentName</td> <td>n.a.</td> <td>n.a.</td> <td>n.a.</td> <td>n.a.</td> </tr> <tr><td>creditorName</td> <td>mandatory</td> <td>mandatory</td> <td>mandatory</td> <td>mandatory</td> </tr> <tr><td>creditorId</td> <td>n.a.</td> <td>n.a.</td> <td>n.a.</td> <td>n.a.</td> </tr> <tr><td>creditorAddress</td>optional</td> <td>optional</td> <td>optional</td> <td>conditional </td> </tr> <tr><td>creditorNameAndAddress</td> <td>n.a.</td> <td>n.a.</td> <td>n.a.</td> <td>n.a.</td> </tr> <tr><td>ultimateCreditor</td> <td>n.a.</td> <td>n.a.</td> <td>n.a.</td> <td>n.a.</td> </tr> <tr><td>purposeCode</td> <td>n.a.</td> <td>n.a.</td> <td>n.a.</td> <td>n.a.</td> </tr> <tr><td>chargeBearer</td> <td>n.a.</td> <td>n.a.</td> <td>optional</td> <td>conditional </td> </tr> <tr><td>remittanceInformationUnstructured</td> <td>optional</td> <td>optional</td> <td> optional</td> <td>optional</td> </tr> <tr><td>remittanceInformationUnstructuredArray</td> <td>n.a.</td> <td>n.a.</td> <td>n.a.</td> <td>n.a.</td> </tr> <tr><td>remittanceInformationStructured</td> <td>n.a.</td> <td>n.a.</td> <td>n.a.</td> <td>n.a.</td> </tr> <tr><td>requestedExecutionDate</td> <td>n.a.</td> <td>n.a.</td> <td>n.a.</td> <td>n.a.</td> </tr> <tr><td>requestedExecutionTime</td> <td>n.a.</td> <td>n.a.</td> <td>n.a.</td> <td>n.a.</td> </tr> </td></tr> </table> IMPORTANT: In this API definition the following holds: * All data elements mentioned above are defined, but some of them are commented, i.e. they are only visible in the source code and can be used by uncommenting them. * Data elements which are mandatory in the table above for all payment products are set to be mandatory in this specification. * Data elements which are indicated in the table above as n.a. for all payment products are commented in the source code. * Data elements which are indicated to be option, conditional or mandatory for at least one payment product in the table above are set to be optional in the s specification except the case where all are definde to be mandatory. * Data element which are inticated to be n.a. can be used by the ASPS if needed. In this case uncomment tthe the relatetd lines in the source code. * If one uses this data types for some payment products he has to ensure that the used data type is valid according to the underlying payment product, e.g. by some appropriate validations.
*/
@Schema(description = "Generic Body for a payment initation via JSON. This generic JSON body can be used to represent valid payment initiations for the following JSON based payment product, which where defined in the Implementation Guidelines: * sepa-credit-transfers * instant-sepa-credit-transfers * target-2-payments * cross-border-credit-transfers For the convenience of the implementer additional which are already predefinded in the Implementation Guidelines are included (but commented in source code), such that an ASPSP may add them easily. Take care: Since the format is intended to fit for all payment products there are additional conditions which are NOT covered by this specification. Please check the Implementation Guidelines for detailes. The following data element are depending on the actual payment product available (in source code):
Data Element
SCT EU Core
SCT INST EU Core
Target2 Paym. Core
Cross Border CT Core
endToEndIdentification
optional
optional
optional
n.a.
debtorAccount
mandatory
mandatory
mandatory
mandatory
debtorId
n.a.
n.a.
n.a.
n.a.
ultimateDebtor
n.a.
n.a.
n.a.
n.a.
instructedAmount
mandatory
mandatory
mandatory
mandatory
transactionCurrency
n.a.
n.a.
n.a.
n.a.
exchangeRateInformation
n.a.
n.a.
n.a.
n.a.
creditorAccount
mandatory
mandatory
mandatory
mandatory
creditorAgent
optional
optional
optional
conditional
creditorAgentName
n.a.
n.a.
n.a.
n.a.
creditorName
mandatory
mandatory
mandatory
mandatory
creditorId
n.a.
n.a.
n.a.
n.a.
creditorAddress
optional
optional
optional
conditional
creditorNameAndAddress
n.a.
n.a.
n.a.
n.a.
ultimateCreditor
n.a.
n.a.
n.a.
n.a.
purposeCode
n.a.
n.a.
n.a.
n.a.
chargeBearer
n.a.
n.a.
optional
conditional
remittanceInformationUnstructured
optional
optional
optional
optional
remittanceInformationUnstructuredArray
n.a.
n.a.
n.a.
n.a.
remittanceInformationStructured
n.a.
n.a.
n.a.
n.a.
requestedExecutionDate
n.a.
n.a.
n.a.
n.a.
requestedExecutionTime
n.a.
n.a.
n.a.
n.a.
IMPORTANT: In this API definition the following holds: * All data elements mentioned above are defined, but some of them are commented, i.e. they are only visible in the source code and can be used by uncommenting them. * Data elements which are mandatory in the table above for all payment products are set to be mandatory in this specification. * Data elements which are indicated in the table above as n.a. for all payment products are commented in the source code. * Data elements which are indicated to be option, conditional or mandatory for at least one payment product in the table above are set to be optional in the s specification except the case where all are definde to be mandatory. * Data element which are inticated to be n.a. can be used by the ASPS if needed. In this case uncomment tthe the relatetd lines in the source code. * If one uses this data types for some payment products he has to ensure that the used data type is valid according to the underlying payment product, e.g. by some appropriate validations. ")
@javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.JavaClientCodegen", date = "2020-07-01T12:18:07.183Z[UTC]")
public class PaymentInitiationJson {
@SerializedName("endToEndIdentification")
private String endToEndIdentification = null;
@SerializedName("debtorAccount")
private AccountReference debtorAccount = null;
@SerializedName("instructedAmount")
private Amount instructedAmount = null;
@SerializedName("creditorAccount")
private AccountReference creditorAccount = null;
@SerializedName("creditorAgent")
private String creditorAgent = null;
@SerializedName("creditorAgentName")
private String creditorAgentName = null;
@SerializedName("creditorName")
private String creditorName = null;
@SerializedName("creditorAddress")
private Address creditorAddress = null;
@SerializedName("remittanceInformationUnstructured")
private String remittanceInformationUnstructured = null;
public PaymentInitiationJson endToEndIdentification(String endToEndIdentification) {
this.endToEndIdentification = endToEndIdentification;
return this;
}
/**
* Get endToEndIdentification
* @return endToEndIdentification
**/
@Schema(description = "")
public String getEndToEndIdentification() {
return endToEndIdentification;
}
public void setEndToEndIdentification(String endToEndIdentification) {
this.endToEndIdentification = endToEndIdentification;
}
public PaymentInitiationJson debtorAccount(AccountReference debtorAccount) {
this.debtorAccount = debtorAccount;
return this;
}
/**
* Get debtorAccount
* @return debtorAccount
**/
@Schema(required = true, description = "")
public AccountReference getDebtorAccount() {
return debtorAccount;
}
public void setDebtorAccount(AccountReference debtorAccount) {
this.debtorAccount = debtorAccount;
}
public PaymentInitiationJson instructedAmount(Amount instructedAmount) {
this.instructedAmount = instructedAmount;
return this;
}
/**
* Get instructedAmount
* @return instructedAmount
**/
@Schema(required = true, description = "")
public Amount getInstructedAmount() {
return instructedAmount;
}
public void setInstructedAmount(Amount instructedAmount) {
this.instructedAmount = instructedAmount;
}
public PaymentInitiationJson creditorAccount(AccountReference creditorAccount) {
this.creditorAccount = creditorAccount;
return this;
}
/**
* Get creditorAccount
* @return creditorAccount
**/
@Schema(required = true, description = "")
public AccountReference getCreditorAccount() {
return creditorAccount;
}
public void setCreditorAccount(AccountReference creditorAccount) {
this.creditorAccount = creditorAccount;
}
public PaymentInitiationJson creditorAgent(String creditorAgent) {
this.creditorAgent = creditorAgent;
return this;
}
/**
* Get creditorAgent
* @return creditorAgent
**/
@Schema(description = "")
public String getCreditorAgent() {
return creditorAgent;
}
public void setCreditorAgent(String creditorAgent) {
this.creditorAgent = creditorAgent;
}
public PaymentInitiationJson creditorAgentName(String creditorAgentName) {
this.creditorAgentName = creditorAgentName;
return this;
}
/**
* Get creditorAgentName
* @return creditorAgentName
**/
@Schema(description = "")
public String getCreditorAgentName() {
return creditorAgentName;
}
public void setCreditorAgentName(String creditorAgentName) {
this.creditorAgentName = creditorAgentName;
}
public PaymentInitiationJson creditorName(String creditorName) {
this.creditorName = creditorName;
return this;
}
/**
* Get creditorName
* @return creditorName
**/
@Schema(required = true, description = "")
public String getCreditorName() {
return creditorName;
}
public void setCreditorName(String creditorName) {
this.creditorName = creditorName;
}
public PaymentInitiationJson creditorAddress(Address creditorAddress) {
this.creditorAddress = creditorAddress;
return this;
}
/**
* Get creditorAddress
* @return creditorAddress
**/
@Schema(description = "")
public Address getCreditorAddress() {
return creditorAddress;
}
public void setCreditorAddress(Address creditorAddress) {
this.creditorAddress = creditorAddress;
}
public PaymentInitiationJson remittanceInformationUnstructured(String remittanceInformationUnstructured) {
this.remittanceInformationUnstructured = remittanceInformationUnstructured;
return this;
}
/**
* Get remittanceInformationUnstructured
* @return remittanceInformationUnstructured
**/
@Schema(description = "")
public String getRemittanceInformationUnstructured() {
return remittanceInformationUnstructured;
}
public void setRemittanceInformationUnstructured(String remittanceInformationUnstructured) {
this.remittanceInformationUnstructured = remittanceInformationUnstructured;
}
@Override
public boolean equals(java.lang.Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
PaymentInitiationJson paymentInitiationJson = (PaymentInitiationJson) o;
return Objects.equals(this.endToEndIdentification, paymentInitiationJson.endToEndIdentification) &&
Objects.equals(this.debtorAccount, paymentInitiationJson.debtorAccount) &&
Objects.equals(this.instructedAmount, paymentInitiationJson.instructedAmount) &&
Objects.equals(this.creditorAccount, paymentInitiationJson.creditorAccount) &&
Objects.equals(this.creditorAgent, paymentInitiationJson.creditorAgent) &&
Objects.equals(this.creditorAgentName, paymentInitiationJson.creditorAgentName) &&
Objects.equals(this.creditorName, paymentInitiationJson.creditorName) &&
Objects.equals(this.creditorAddress, paymentInitiationJson.creditorAddress) &&
Objects.equals(this.remittanceInformationUnstructured, paymentInitiationJson.remittanceInformationUnstructured);
}
@Override
public int hashCode() {
return Objects.hash(endToEndIdentification, debtorAccount, instructedAmount, creditorAccount, creditorAgent, creditorAgentName, creditorName, creditorAddress, remittanceInformationUnstructured);
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("class PaymentInitiationJson {\n");
sb.append(" endToEndIdentification: ").append(toIndentedString(endToEndIdentification)).append("\n");
sb.append(" debtorAccount: ").append(toIndentedString(debtorAccount)).append("\n");
sb.append(" instructedAmount: ").append(toIndentedString(instructedAmount)).append("\n");
sb.append(" creditorAccount: ").append(toIndentedString(creditorAccount)).append("\n");
sb.append(" creditorAgent: ").append(toIndentedString(creditorAgent)).append("\n");
sb.append(" creditorAgentName: ").append(toIndentedString(creditorAgentName)).append("\n");
sb.append(" creditorName: ").append(toIndentedString(creditorName)).append("\n");
sb.append(" creditorAddress: ").append(toIndentedString(creditorAddress)).append("\n");
sb.append(" remittanceInformationUnstructured: ").append(toIndentedString(remittanceInformationUnstructured)).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(java.lang.Object o) {
if (o == null) {
return "null";
}
return o.toString().replace("\n", "\n ");
}
}