Skip to content

Instantly share code, notes, and snippets.

@wehub
Last active June 29, 2021 20:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save wehub/99217a374226b360b66f7f10abee5026 to your computer and use it in GitHub Desktop.
Save wehub/99217a374226b360b66f7f10abee5026 to your computer and use it in GitHub Desktop.
Java_SDK
package com.wepay;
import com.wepay.endpoints.AccountsApi;
import com.wepay.endpoints.LegalEntitiesApi;
import com.wepay.endpoints.PayoutMethodsApi;
import com.wepay.exception.WePayException;
import com.wepay.model.additional_params.AccountsIdUpdateAdditionalParams;
import com.wepay.model.additional_params.LegalEntitiesCreateAdditionalParams;
import com.wepay.model.additional_params.PayoutMethodsCreateAdditionalParams;
import com.wepay.model.data.*;
import com.wepay.model.enums.AccountTypeEnum2;
import com.wepay.model.enums.CountryEnum;
import com.wepay.model.enums.PeriodEnum3;
import com.wepay.model.enums.TypeEnum4;
import com.wepay.model.resource.Account;
import com.wepay.model.resource.LegalEntity;
import com.wepay.model.resource.PayoutMethod;
import com.wepay.network.Configuration;
import com.wepay.network.Configuration.Environment;
import com.wepay.network.WePayRequest;
import org.json.JSONException;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
public class WePay {
private final static Logger LOGGER =
Logger.getLogger(Logger.GLOBAL_LOGGER_NAME);
public WePay() {
}
public static void main(String[] args) throws JSONException, IOException {
Configuration configuration = new Configuration();
configuration.setAppId(<APP ID>);
configuration.setAppToken(<APP Token>);
configuration.setEnvironment(Environment.STAGE);
WePayRequest.initializeRequest();
try {
//create a Legal Entity
LegalEntitiesCreateData createData = new LegalEntitiesCreateData();
LegalEntitiesCreateAdditionalParams legalEntitiesCreateAdditionalParams = new LegalEntitiesCreateAdditionalParams();
legalEntitiesCreateAdditionalParams.setUniqueKey("7833888");
legalEntitiesCreateAdditionalParams.setClientIp("100.166.99.123");
legalEntitiesCreateAdditionalParams.setWepayRiskToken("123e4567-e89b-12d3-a456-426655440000");
createData.setCountryCode(CountryEnum.US);
ControllerReq controllerReq = new ControllerReq();
controllerReq.setEmailNullable("test@test.com");
createData.setControllerReq(controllerReq);
SignificantBeneficiaries significantBeneficiaries = new SignificantBeneficiaries();
Entities entities = new Entities();
entities.setIndividual(true);
significantBeneficiaries.setEntities(entities);
createData.setSignificantBeneficiaries(significantBeneficiaries);
LegalEntity createResultLE = LegalEntitiesApi.create(createData,legalEntitiesCreateAdditionalParams);
// Attach LE id to Payout Method
PayoutMethodsCreateAdditionalParams payoutMethodData = new PayoutMethodsCreateAdditionalParams();
PayoutMethodRequestPayoutBankUs payoutBankUS = new PayoutMethodRequestPayoutBankUs();
payoutBankUS.setUsBankAccountNumber("4556778889995");
payoutBankUS.setAccountType(AccountTypeEnum2.CHECKING);
payoutBankUS.setUsBankRoutingNumber("021000021");
PayoutMethodReq payoutMethodCreateData = new PayoutMethodReq(TypeEnum4.PAYOUT_BANK_US, payoutBankUS);
payoutMethodCreateData.setId(createResultLE.getId());
payoutMethodCreateData.setNickname("BofA");
payoutMethodCreateData.setPayoutBankUs(payoutBankUS);
PayoutMethod payoutMethod = PayoutMethodsApi.create(payoutMethodCreateData, payoutMethodData);
// Create Account
AccountsCreateData accountsCreateData = new AccountsCreateData();
accountsCreateData.setLegalEntityId(createResultLE.getId());
Account createResult = AccountsApi.create(accountsCreateData);
AccountsIdUpdateAdditionalParams accountsIdUpdateAdditionalParams = new AccountsIdUpdateAdditionalParams();
AccountsUpdateData accountsUpdateData = new AccountsUpdateData();
PayoutReq payoutReq = new PayoutReq();
AccountsRequestPayoutCurrencies currencies = new AccountsRequestPayoutCurrencies();
AccountsRequestPayoutCurrenciesProperties USD = new AccountsRequestPayoutCurrenciesProperties();
String payoutMethodId = payoutMethod.getId();
USD.setPayoutMethodId(payoutMethodId);
USD.setPeriod(PeriodEnum3.WEEKLY);
currencies.setUSD(USD);
payoutReq.setCurrencies(currencies);
accountsUpdateData.setPayoutReq(payoutReq);
String id = createResult.getId();
//Update Account with Payout Method
Account update = AccountsApi.update(id,accountsUpdateData,accountsIdUpdateAdditionalParams);
LOGGER.log(Level.INFO, String.format("Successfully created attached a Payout Method to an account."));
}catch (WePayException e) {
LOGGER.warning(e.getMessage());
for (WePayException.Detail detail : e.getDetails()) {
LOGGER.warning(String.join(".", detail.getTarget()));
LOGGER.warning(detail.getMessage());
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment