Use the Java SDK

Learn how to install and use the Java SDK to develop apps
View as MarkdownOpen in Claude
Applies to:Developers

Payabli offers an official Software Development Kit (SDK) for the Java programming language. The official Java SDK can be installed in your projects to support app development and provide type safety when calling Payabli’s APIs. Most development environments can use the SDK to generate code suggestions and inline documentation. See the sdk-java package for more information.

Dependencies

Before you begin, make sure you have the following installed on your machine:

Use the SDK

This section shows you how to install and use the Payabli SDK in a new Java project. The example code shows how to use the SDK to make a transaction with the moneyIn().getpaidv2 method. The moneyIn().getpaidv2 method calls the POST /v2/MoneyIn/getpaid endpoint. See the SDK reference for a full list of methods.

Method names in the SDK correspond to endpoint names in the API reference. For example: the notification().addNotification method calls the POST Notification endpoint.

1

Create a new directory

Open your terminal and run the following commands to create a new directory:

$mkdir my-payabli-app
$cd my-payabli-app
2

Create pom.xml and add the SDK dependency

Create a basic pom.xml file with the Payabli SDK dependency:

1<?xml version="1.0" encoding="UTF-8"?>
2<project xmlns="http://maven.apache.org/POM/4.0.0"
3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
5 http://maven.apache.org/xsd/maven-4.0.0.xsd">
6 <modelVersion>4.0.0</modelVersion>
7 <groupId>com.example</groupId>
8 <artifactId>my-payabli-app</artifactId>
9 <version>1.0.0</version>
10 <properties>
11 <maven.compiler.source>11</maven.compiler.source>
12 <maven.compiler.target>11</maven.compiler.target>
13 </properties>
14 <dependencies>
15 <dependency>
16 <groupId>io.github.payabli</groupId>
17 <artifactId>sdk-java</artifactId>
18 <version>[0.0.310,)</version>
19 </dependency>
20 <dependency>
21 <groupId>com.squareup.okhttp3</groupId>
22 <artifactId>okhttp</artifactId>
23 <version>4.12.0</version>
24 </dependency>
25 </dependencies>
26 <build>
27 <plugins>
28 <plugin>
29 <groupId>org.codehaus.mojo</groupId>
30 <artifactId>exec-maven-plugin</artifactId>
31 <version>3.1.0</version>
32 <configuration>
33 <mainClass>example.PayabliExample</mainClass>
34 <classpathScope>runtime</classpathScope>
35 </configuration>
36 </plugin>
37 </plugins>
38 </build>
39</project>
3

Create the source directory structure

Create the Maven directory structure:

$mkdir -p src/main/java/com/example
4

Create a new Java file

Create a new file called PayabliExample.java in src/main/java/com/example/:

$touch src/main/java/com/example/PayabliExample.java

Open the PayabliExample.java file in your code editor.

5

Make a transaction

The interactive walkthrough displays code examples alongside step-by-step explanations.

Follow the walkthrough to use the SDK in your Java code.

Loading walkthrough content

Loading walkthrough...

Loading walkthrough...

/// Import the SDK classes

Import the Payabli SDK to make it available in your code.

1// PayabliExample.java
2package example;
3
4import io.github.payabli.api.PayabliApiClient;
5import io.github.payabli.api.PayabliApiClientBuilder;
6import io.github.payabli.api.resources.moneyin.requests.RequestPaymentV2;
7import io.github.payabli.api.resources.moneyin.types.TransRequestBody;
8import io.github.payabli.api.resources.v2moneyintypes.types.V2TransactionResponseWrapper;
9import io.github.payabli.api.types.PaymentDetail;
10import io.github.payabli.api.types.PaymentMethod;
11import io.github.payabli.api.types.PayMethodCredit;
12import io.github.payabli.api.types.PayorDataRequest;
13import io.github.payabli.api.core.Environment;

/// Initialize the client

Create an authenticated client instance with your API key. This client has methods that call Payabli’s API endpoints. The environment method specifies which environment to use. Use Environment.SANDBOX for testing and Environment.PRODUCTION for production.

-22
1// PayabliExample.java
2package example;
3
4import io.github.payabli.api.PayabliApiClient;
5import io.github.payabli.api.PayabliApiClientBuilder;
6import io.github.payabli.api.resources.moneyin.requests.RequestPaymentV2;
7import io.github.payabli.api.resources.moneyin.types.TransRequestBody;
8import io.github.payabli.api.resources.v2moneyintypes.types.V2TransactionResponseWrapper;
9import io.github.payabli.api.types.PaymentDetail;
10import io.github.payabli.api.types.PaymentMethod;
11import io.github.payabli.api.types.PayMethodCredit;
12import io.github.payabli.api.types.PayorDataRequest;
13import io.github.payabli.api.core.Environment;
14
15public class PayabliExample {
16 public static void main(String[] args) {
17 PayabliApiClient client = new PayabliApiClientBuilder()
18 .apiKey("REPLACE_WITH_YOUR_API_KEY")
19 .environment(Environment.SANDBOX)
20 .build();
21 }
22}

/// Build the payment request

Construct a request object that contains all the necessary fields to process a transaction. Include payment details, a payment method, and customer data.

-50
1// PayabliExample.java
2package example;
3
4import io.github.payabli.api.PayabliApiClient;
5import io.github.payabli.api.PayabliApiClientBuilder;
6import io.github.payabli.api.resources.moneyin.requests.RequestPaymentV2;
7import io.github.payabli.api.resources.moneyin.types.TransRequestBody;
8import io.github.payabli.api.resources.v2moneyintypes.types.V2TransactionResponseWrapper;
9import io.github.payabli.api.types.PaymentDetail;
10import io.github.payabli.api.types.PaymentMethod;
11import io.github.payabli.api.types.PayMethodCredit;
12import io.github.payabli.api.types.PayorDataRequest;
13import io.github.payabli.api.core.Environment;
14
15public class PayabliExample {
16 public static void main(String[] args) {
17 PayabliApiClient client = new PayabliApiClientBuilder()
18 .apiKey("REPLACE_WITH_YOUR_API_KEY")
19 .environment(Environment.SANDBOX)
20 .build();
21
22 PaymentDetail paymentDetails = PaymentDetail.builder()
23 .totalAmount(100.0)
24 .serviceFee(0.0)
25 .build();
26
27 PayorDataRequest customerData = PayorDataRequest.builder()
28 .customerId(4440L)
29 .build();
30
31 PayMethodCredit paymentMethod = PayMethodCredit.builder()
32 .cardexp("02/27")
33 .cardnumber("4111111111111111")
34 .cardcvv("999")
35 .cardHolder("Kassiane Cassian")
36 .cardzip("12345")
37 .initiator("payor")
38 .build();
39
40 TransRequestBody requestBody = TransRequestBody.builder()
41 .paymentDetails(paymentDetails)
42 .paymentMethod(PaymentMethod.of(paymentMethod))
43 .customerData(customerData)
44 .entryPoint("REPLACE_WITH_YOUR_ENTRYPOINT")
45 .ipaddress("255.255.255.255")
46 .build();
47
48 RequestPaymentV2 request = RequestPaymentV2.builder()
49 .body(requestBody)
50 .build();
51 }
52}

/// Execute the transaction

Call moneyIn().getpaidv2() to process the transaction. The client calls Payabli’s POST /v2/MoneyIn/getpaid endpoint.

1// PayabliExample.java
2package example;
3
4import io.github.payabli.api.PayabliApiClient;
5import io.github.payabli.api.PayabliApiClientBuilder;
6import io.github.payabli.api.resources.moneyin.requests.RequestPaymentV2;
7import io.github.payabli.api.resources.moneyin.types.TransRequestBody;
8import io.github.payabli.api.resources.v2moneyintypes.types.V2TransactionResponseWrapper;
9import io.github.payabli.api.types.PaymentDetail;
10import io.github.payabli.api.types.PaymentMethod;
11import io.github.payabli.api.types.PayMethodCredit;
12import io.github.payabli.api.types.PayorDataRequest;
13import io.github.payabli.api.core.Environment;
14
15public class PayabliExample {
16 public static void main(String[] args) {
17 PayabliApiClient client = new PayabliApiClientBuilder()
18 .apiKey("REPLACE_WITH_YOUR_API_KEY")
19 .environment(Environment.SANDBOX)
20 .build();
21
22 PaymentDetail paymentDetails = PaymentDetail.builder()
23 .totalAmount(100.0)
24 .serviceFee(0.0)
25 .build();
26
27 PayorDataRequest customerData = PayorDataRequest.builder()
28 .customerId(4440L)
29 .build();
30
31 PayMethodCredit paymentMethod = PayMethodCredit.builder()
32 .cardexp("02/27")
33 .cardnumber("4111111111111111")
34 .cardcvv("999")
35 .cardHolder("Kassiane Cassian")
36 .cardzip("12345")
37 .initiator("payor")
38 .build();
39
40 TransRequestBody requestBody = TransRequestBody.builder()
41 .paymentDetails(paymentDetails)
42 .paymentMethod(PaymentMethod.of(paymentMethod))
43 .customerData(customerData)
44 .entryPoint("REPLACE_WITH_YOUR_ENTRYPOINT")
45 .ipaddress("255.255.255.255")
46 .build();
47
48 RequestPaymentV2 request = RequestPaymentV2.builder()
49 .body(requestBody)
50 .build();
51
52 V2TransactionResponseWrapper result = client.moneyIn().getpaidv2(request);
53 }
54}

/// Show the result

Log the transaction response. Check the output to see if the transaction was successful.

1// PayabliExample.java
2package example;
3
4import io.github.payabli.api.PayabliApiClient;
5import io.github.payabli.api.PayabliApiClientBuilder;
6import io.github.payabli.api.resources.moneyin.requests.RequestPaymentV2;
7import io.github.payabli.api.resources.moneyin.types.TransRequestBody;
8import io.github.payabli.api.resources.v2moneyintypes.types.V2TransactionResponseWrapper;
9import io.github.payabli.api.types.PaymentDetail;
10import io.github.payabli.api.types.PaymentMethod;
11import io.github.payabli.api.types.PayMethodCredit;
12import io.github.payabli.api.types.PayorDataRequest;
13import io.github.payabli.api.core.Environment;
14
15public class PayabliExample {
16 public static void main(String[] args) {
17 PayabliApiClient client = new PayabliApiClientBuilder()
18 .apiKey("REPLACE_WITH_YOUR_API_KEY")
19 .environment(Environment.SANDBOX)
20 .build();
21
22 PaymentDetail paymentDetails = PaymentDetail.builder()
23 .totalAmount(100.0)
24 .serviceFee(0.0)
25 .build();
26
27 PayorDataRequest customerData = PayorDataRequest.builder()
28 .customerId(4440L)
29 .build();
30
31 PayMethodCredit paymentMethod = PayMethodCredit.builder()
32 .cardexp("02/27")
33 .cardnumber("4111111111111111")
34 .cardcvv("999")
35 .cardHolder("Kassiane Cassian")
36 .cardzip("12345")
37 .initiator("payor")
38 .build();
39
40 TransRequestBody requestBody = TransRequestBody.builder()
41 .paymentDetails(paymentDetails)
42 .paymentMethod(PaymentMethod.of(paymentMethod))
43 .customerData(customerData)
44 .entryPoint("REPLACE_WITH_YOUR_ENTRYPOINT")
45 .ipaddress("255.255.255.255")
46 .build();
47
48 RequestPaymentV2 request = RequestPaymentV2.builder()
49 .body(requestBody)
50 .build();
51
52 V2TransactionResponseWrapper result = client.moneyIn().getpaidv2(request);
53
54 System.out.println(result);
55 }
56}
6

Compile and run the app

Compile and run the app with Maven:

$mvn clean compile exec:java
7

Check the result

Check the console output for the result of the transaction. A successful transaction returns output like this:

PayabliApiResponseGetPaid(
responseText=Success,
isSuccess=true,
pageIdentifier=null,
responseData=ResponseData(
authCode=TAS003,
referenceId=255-67bc92c141e24f474f60c1968fcba0cd,
resultCode=1,
resultText=Approved,
avsResponseText=No Match, No address or ZIP match,
cvvResponseText=CVV2/CVC2 match,
customerId=4440,
methodReferenceId=null
)
)
1

Create a new directory

Open your terminal and run the following commands to create a new directory:

$mkdir my-payabli-app
$cd my-payabli-app
2

Create build.gradle and add the SDK dependency

Create a build.gradle file with the Payabli SDK dependency:

1plugins {
2 id 'java'
3 id 'application'
4}
5
6repositories {
7 mavenCentral()
8}
9
10dependencies {
11 implementation 'io.github.payabli:sdk-java:[0.0.310,)'
12 implementation 'com.squareup.okhttp3:okhttp:4.12.0'
13}
14
15application {
16 mainClass = 'example.PayabliExample'
17}
3

Create the source directory structure

Create the Gradle directory structure:

$mkdir -p src/main/java/example
4

Create a new Java file

Create a new file called PayabliExample.java in src/main/java/example/:

$touch src/main/java/example/PayabliExample.java

Open the PayabliExample.java file in your code editor.

5

Make a transaction

The interactive walkthrough displays code examples alongside step-by-step explanations.

Follow the walkthrough to use the SDK in your Java code.

Loading walkthrough content

Loading walkthrough...

Loading walkthrough...

/// Import the SDK classes

Import the Payabli SDK to make it available in your code.

1// PayabliExample.java
2package example;
3
4import io.github.payabli.api.PayabliApiClient;
5import io.github.payabli.api.PayabliApiClientBuilder;
6import io.github.payabli.api.resources.moneyin.requests.RequestPaymentV2;
7import io.github.payabli.api.resources.moneyin.types.TransRequestBody;
8import io.github.payabli.api.resources.v2moneyintypes.types.V2TransactionResponseWrapper;
9import io.github.payabli.api.types.PaymentDetail;
10import io.github.payabli.api.types.PaymentMethod;
11import io.github.payabli.api.types.PayMethodCredit;
12import io.github.payabli.api.types.PayorDataRequest;
13import io.github.payabli.api.core.Environment;

/// Initialize the client

Create an authenticated client instance with your API key. This client has methods that call Payabli’s API endpoints. The environment method specifies which environment to use. Use Environment.SANDBOX for testing and Environment.PRODUCTION for production.

-22
1// PayabliExample.java
2package example;
3
4import io.github.payabli.api.PayabliApiClient;
5import io.github.payabli.api.PayabliApiClientBuilder;
6import io.github.payabli.api.resources.moneyin.requests.RequestPaymentV2;
7import io.github.payabli.api.resources.moneyin.types.TransRequestBody;
8import io.github.payabli.api.resources.v2moneyintypes.types.V2TransactionResponseWrapper;
9import io.github.payabli.api.types.PaymentDetail;
10import io.github.payabli.api.types.PaymentMethod;
11import io.github.payabli.api.types.PayMethodCredit;
12import io.github.payabli.api.types.PayorDataRequest;
13import io.github.payabli.api.core.Environment;
14
15public class PayabliExample {
16 public static void main(String[] args) {
17 PayabliApiClient client = new PayabliApiClientBuilder()
18 .apiKey("REPLACE_WITH_YOUR_API_KEY")
19 .environment(Environment.SANDBOX)
20 .build();
21 }
22}

/// Build the payment request

Construct a request object that contains all the necessary fields to process a transaction. Include payment details, a payment method, and customer data.

-50
1// PayabliExample.java
2package example;
3
4import io.github.payabli.api.PayabliApiClient;
5import io.github.payabli.api.PayabliApiClientBuilder;
6import io.github.payabli.api.resources.moneyin.requests.RequestPaymentV2;
7import io.github.payabli.api.resources.moneyin.types.TransRequestBody;
8import io.github.payabli.api.resources.v2moneyintypes.types.V2TransactionResponseWrapper;
9import io.github.payabli.api.types.PaymentDetail;
10import io.github.payabli.api.types.PaymentMethod;
11import io.github.payabli.api.types.PayMethodCredit;
12import io.github.payabli.api.types.PayorDataRequest;
13import io.github.payabli.api.core.Environment;
14
15public class PayabliExample {
16 public static void main(String[] args) {
17 PayabliApiClient client = new PayabliApiClientBuilder()
18 .apiKey("REPLACE_WITH_YOUR_API_KEY")
19 .environment(Environment.SANDBOX)
20 .build();
21
22 PaymentDetail paymentDetails = PaymentDetail.builder()
23 .totalAmount(100.0)
24 .serviceFee(0.0)
25 .build();
26
27 PayorDataRequest customerData = PayorDataRequest.builder()
28 .customerId(4440L)
29 .build();
30
31 PayMethodCredit paymentMethod = PayMethodCredit.builder()
32 .cardexp("02/27")
33 .cardnumber("4111111111111111")
34 .cardcvv("999")
35 .cardHolder("Kassiane Cassian")
36 .cardzip("12345")
37 .initiator("payor")
38 .build();
39
40 TransRequestBody requestBody = TransRequestBody.builder()
41 .paymentDetails(paymentDetails)
42 .paymentMethod(PaymentMethod.of(paymentMethod))
43 .customerData(customerData)
44 .entryPoint("REPLACE_WITH_YOUR_ENTRYPOINT")
45 .ipaddress("255.255.255.255")
46 .build();
47
48 RequestPaymentV2 request = RequestPaymentV2.builder()
49 .body(requestBody)
50 .build();
51 }
52}

/// Execute the transaction

Call moneyIn().getpaidv2() to process the transaction. The client calls Payabli’s POST /v2/MoneyIn/getpaid endpoint.

1// PayabliExample.java
2package example;
3
4import io.github.payabli.api.PayabliApiClient;
5import io.github.payabli.api.PayabliApiClientBuilder;
6import io.github.payabli.api.resources.moneyin.requests.RequestPaymentV2;
7import io.github.payabli.api.resources.moneyin.types.TransRequestBody;
8import io.github.payabli.api.resources.v2moneyintypes.types.V2TransactionResponseWrapper;
9import io.github.payabli.api.types.PaymentDetail;
10import io.github.payabli.api.types.PaymentMethod;
11import io.github.payabli.api.types.PayMethodCredit;
12import io.github.payabli.api.types.PayorDataRequest;
13import io.github.payabli.api.core.Environment;
14
15public class PayabliExample {
16 public static void main(String[] args) {
17 PayabliApiClient client = new PayabliApiClientBuilder()
18 .apiKey("REPLACE_WITH_YOUR_API_KEY")
19 .environment(Environment.SANDBOX)
20 .build();
21
22 PaymentDetail paymentDetails = PaymentDetail.builder()
23 .totalAmount(100.0)
24 .serviceFee(0.0)
25 .build();
26
27 PayorDataRequest customerData = PayorDataRequest.builder()
28 .customerId(4440L)
29 .build();
30
31 PayMethodCredit paymentMethod = PayMethodCredit.builder()
32 .cardexp("02/27")
33 .cardnumber("4111111111111111")
34 .cardcvv("999")
35 .cardHolder("Kassiane Cassian")
36 .cardzip("12345")
37 .initiator("payor")
38 .build();
39
40 TransRequestBody requestBody = TransRequestBody.builder()
41 .paymentDetails(paymentDetails)
42 .paymentMethod(PaymentMethod.of(paymentMethod))
43 .customerData(customerData)
44 .entryPoint("REPLACE_WITH_YOUR_ENTRYPOINT")
45 .ipaddress("255.255.255.255")
46 .build();
47
48 RequestPaymentV2 request = RequestPaymentV2.builder()
49 .body(requestBody)
50 .build();
51
52 V2TransactionResponseWrapper result = client.moneyIn().getpaidv2(request);
53 }
54}

/// Show the result

Log the transaction response. Check the output to see if the transaction was successful.

1// PayabliExample.java
2package example;
3
4import io.github.payabli.api.PayabliApiClient;
5import io.github.payabli.api.PayabliApiClientBuilder;
6import io.github.payabli.api.resources.moneyin.requests.RequestPaymentV2;
7import io.github.payabli.api.resources.moneyin.types.TransRequestBody;
8import io.github.payabli.api.resources.v2moneyintypes.types.V2TransactionResponseWrapper;
9import io.github.payabli.api.types.PaymentDetail;
10import io.github.payabli.api.types.PaymentMethod;
11import io.github.payabli.api.types.PayMethodCredit;
12import io.github.payabli.api.types.PayorDataRequest;
13import io.github.payabli.api.core.Environment;
14
15public class PayabliExample {
16 public static void main(String[] args) {
17 PayabliApiClient client = new PayabliApiClientBuilder()
18 .apiKey("REPLACE_WITH_YOUR_API_KEY")
19 .environment(Environment.SANDBOX)
20 .build();
21
22 PaymentDetail paymentDetails = PaymentDetail.builder()
23 .totalAmount(100.0)
24 .serviceFee(0.0)
25 .build();
26
27 PayorDataRequest customerData = PayorDataRequest.builder()
28 .customerId(4440L)
29 .build();
30
31 PayMethodCredit paymentMethod = PayMethodCredit.builder()
32 .cardexp("02/27")
33 .cardnumber("4111111111111111")
34 .cardcvv("999")
35 .cardHolder("Kassiane Cassian")
36 .cardzip("12345")
37 .initiator("payor")
38 .build();
39
40 TransRequestBody requestBody = TransRequestBody.builder()
41 .paymentDetails(paymentDetails)
42 .paymentMethod(PaymentMethod.of(paymentMethod))
43 .customerData(customerData)
44 .entryPoint("REPLACE_WITH_YOUR_ENTRYPOINT")
45 .ipaddress("255.255.255.255")
46 .build();
47
48 RequestPaymentV2 request = RequestPaymentV2.builder()
49 .body(requestBody)
50 .build();
51
52 V2TransactionResponseWrapper result = client.moneyIn().getpaidv2(request);
53
54 System.out.println(result);
55 }
56}
6

Generate the Gradle wrapper

Generate the Gradle wrapper so you don’t need a system-wide Gradle installation:

$gradle wrapper
7

Compile and run the app

Compile and run the app with the Gradle wrapper:

$./gradlew clean run
8

Check the result

Check the console output for the result of the transaction. A successful transaction returns output like this:

PayabliApiResponseGetPaid(
responseText=Success,
isSuccess=true,
pageIdentifier=null,
responseData=ResponseData(
authCode=TAS003,
referenceId=255-67bc92c141e24f474f60c1968fcba0cd,
resultCode=1,
resultText=Approved,
avsResponseText=No Match, No address or ZIP match,
cvvResponseText=CVV2/CVC2 match,
customerId=4440,
methodReferenceId=null
)
)

In production, we recommend that you pass a stored method ID to the paymentMethod object instead of card details. See more information in Tokenization Overview.

SDK example app

The SDK example app is a basic web app built with the Payabli Java SDK. It shows how to manage customers and use the temporary token flow with the SDK. The code is publicly available in the example repository.

customer creation page of SDK example app
Customer creation page

Set up the app

Follow these steps to set up the SDK example app on your local machine:

1

Clone the repository

Open your terminal and run the following command to clone the SDK example app repository:

$git clone https://github.com/payabli/examples
3

Install the dependencies

Install the SDK and dependencies:

$mvn clean install
4

Copy the environment template

Copy the.env.template file to a new file called .env:

$cp .env.template .env
5

Fill in your environment variables

Open the .env file in your code editor. Set PAYABLI_KEY to a private API token, PAYABLI_ENTRY to your Payabli entrypoint, and PAYABLI_PUBLIC_TOKEN to a public API token:

$ # your Payabli Private API token
$ PAYABLI_KEY="o.Oim...Mekgjw="
$ # your Payabli entrypoint
$ PAYABLI_ENTRY="41xxxxxa7e"
$ # your Payabli Public API token
$ PAYABLI_PUBLIC_TOKEN="o.Oim...Mekgjw="
6

Start the development server

Run this command to start the development server, and open the app in your browser:

$mvn exec:java

Use the app

The SDK example app has three pages:

  1. Create Customer - Create a new customer in the Payabli entrypoint.
  2. List Customers - View a list of all customers in the Payabli entrypoint.
  3. Make Transaction - Make a transaction using the temporary token flow.

Create customer

The Create Customer page has a form that allows you to create a new customer. Fill in the form with the customer’s information and click the “Create” button. If the customer is created successfully, a green success message appears below the button.

List customers

The List Customers page has a table of all customers in the entrypoint. You can view the customer’s information, including their name, email address, and ZIP Code. Click the “X” button on the right side of a customer’s row to delete the customer. If the customer is deleted successfully, the row is removed from the table.

Make transaction

The Make Transaction page contains an EmbeddedMethod UI component using the temporary token flow. Fill in the form with payment information and click the “Process” button when the payment information is valid. The app performs these steps:

  1. The embedded component saves the payment method as a temporary token and sends it to the server.
  2. The server converts the temporary token to a permanent token with the POST TokenStorage/add endpoint.
  3. The server uses the permanent token to make a transaction with the POST /v2/MoneyIn/getpaid endpoint.

If everything is successful, a green success message appears below the embedded component. See Extend embedded components with the temporary token flow for more information.