
io.electrum.cardaccount.api.CardAccountApiResource Maven / Gradle / Ivy
The newest version!
package io.electrum.cardaccount.api;
import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.container.AsyncResponse;
import javax.ws.rs.container.Suspended;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.HttpHeaders;
import javax.ws.rs.core.Request;
import javax.ws.rs.core.SecurityContext;
import javax.ws.rs.core.UriInfo;
import io.electrum.cardaccount.model.AccountBalanceResponse;
import io.electrum.cardaccount.model.AccountCreditRequest;
import io.electrum.cardaccount.model.AccountCreditResponse;
import io.electrum.cardaccount.model.AccountDebitRequest;
import io.electrum.cardaccount.model.AccountDebitResponse;
import io.electrum.cardaccount.model.AccountStatementResponse;
import io.electrum.cardaccount.model.ApplyAccountFeesRequest;
import io.electrum.cardaccount.model.ApplyAccountFeesResponse;
import io.electrum.cardaccount.model.ApplyCardFeesRequest;
import io.electrum.cardaccount.model.ApplyCardFeesResponse;
import io.electrum.cardaccount.model.CancelStopCardRequest;
import io.electrum.cardaccount.model.CancelStopCardResponse;
import io.electrum.cardaccount.model.CardAccountLinkRequest;
import io.electrum.cardaccount.model.CardAccountLinkResponse;
import io.electrum.cardaccount.model.CardBalanceResponse;
import io.electrum.cardaccount.model.MultipleCardsIssuerLinkRequest;
import io.electrum.cardaccount.model.MultipleCardsIssuerLinkResponse;
import io.electrum.cardaccount.model.ErrorDetail;
import io.electrum.cardaccount.model.FundsTransferRequest;
import io.electrum.cardaccount.model.FundsTransferResponse;
import io.electrum.cardaccount.model.PinResetRequest;
import io.electrum.cardaccount.model.PinResetResponse;
import io.electrum.cardaccount.model.SingleCardIssuerLinkRequest;
import io.electrum.cardaccount.model.StopCardRequest;
import io.electrum.cardaccount.model.StopCardResponse;
import io.electrum.cardaccount.model.UpdateCustomerRequest;
import io.electrum.cardaccount.model.UpdateCustomerResponse;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import io.swagger.annotations.Authorization;
@Path("/cardAccount/v1")
@Api(description = "The Gateway Card-Account API", authorizations = { @Authorization("httpBasic") })
public abstract class CardAccountApiResource {
public abstract ICardAccountApiResource getResourceImplementation();
@POST
@Path("/issuers/{issuer-id}/accounts/{account-id}/fees/{transaction-id}")
@Consumes({ "application/json" })
@Produces({ "application/json" })
@ApiOperation(value = "", notes = "Apply fees to an account.")
@ApiResponses(value = {
@ApiResponse(code = 200, message = "Fees applied successfully.", response = ApplyAccountFeesResponse.class),
@ApiResponse(code = 400, message = "Bad Request.", response = ErrorDetail.class),
@ApiResponse(code = 401, message = "Incorrect user name or password.", response = ErrorDetail.class),
@ApiResponse(code = 404, message = "Issuer or account not found.", response = ErrorDetail.class),
@ApiResponse(code = 500, message = "Server error.", response = ErrorDetail.class),
@ApiResponse(code = 504, message = "Gateway timeout.", response = ErrorDetail.class) })
public final void applyAccountFees(
@ApiParam(value = "The issuer ID to which the account belongs.", required = true) @PathParam("issuer-id") String issuerId,
@ApiParam(value = "The account ID to which the fees apply.", required = true) @PathParam("account-id") String accountId,
@ApiParam(value = "The randomly generated UUID identifying this transaction, as defined for a version 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)", required = true) @PathParam("transaction-id") String transactionId,
@ApiParam(value = "Details regarding the fees to be applied.", required = true) ApplyAccountFeesRequest body,
@Context SecurityContext securityContext,
@Context Request request,
@Suspended AsyncResponse asyncResponse,
@Context HttpHeaders httpHeaders,
@Context UriInfo uriInfo,
@Context HttpServletRequest httpServletRequest) {
getResourceImplementation().applyAccountFees(
issuerId,
accountId,
transactionId,
body,
securityContext,
request,
httpHeaders,
asyncResponse,
uriInfo,
httpServletRequest);
}
@POST
@Path("/issuers/{issuer-id}/cards/{card-id}/fees/{transaction-id}")
@Consumes({ "application/json" })
@Produces({ "application/json" })
@ApiOperation(value = "", notes = "Apply fees to a card.")
@ApiResponses(value = {
@ApiResponse(code = 200, message = "Fees applied successfully.", response = ApplyCardFeesResponse.class),
@ApiResponse(code = 400, message = "Bad Request.", response = ErrorDetail.class),
@ApiResponse(code = 401, message = "Incorrect user name or password.", response = ErrorDetail.class),
@ApiResponse(code = 404, message = "Issuer or account not found.", response = ErrorDetail.class),
@ApiResponse(code = 500, message = "Server error.", response = ErrorDetail.class),
@ApiResponse(code = 504, message = "Gateway timeout.", response = ErrorDetail.class) })
public final void applyCardFees(
@ApiParam(value = "The issuer ID to which the account belongs.", required = true) @PathParam("issuer-id") String issuerId,
@ApiParam(value = "The card ID to which the fees apply.", required = true) @PathParam("card-id") String cardId,
@ApiParam(value = "The randomly generated UUID identifying this transaction, as defined for a version 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)", required = true) @PathParam("transaction-id") String transactionId,
@ApiParam(value = "Details regarding the fees to be applied.", required = true) ApplyCardFeesRequest body,
@Context SecurityContext securityContext,
@Context Request request,
@Suspended AsyncResponse asyncResponse,
@Context HttpHeaders httpHeaders,
@Context UriInfo uriInfo,
@Context HttpServletRequest httpServletRequest) {
getResourceImplementation().applyCardFees(
issuerId,
cardId,
transactionId,
body,
securityContext,
request,
httpHeaders,
asyncResponse,
uriInfo,
httpServletRequest);
}
@PUT
@Path("/issuers/{issuer-id}/cards/{card-id}/cancelstop/{transaction-id}")
@Consumes({ "application/json" })
@Produces({ "application/json" })
@ApiOperation(value = "", notes = "Remove a cards hold status.")
@ApiResponses(value = {
@ApiResponse(code = 200, message = "Card hold status removed.", response = CancelStopCardResponse.class),
@ApiResponse(code = 400, message = "Bad Request.", response = ErrorDetail.class),
@ApiResponse(code = 401, message = "Incorrect user name or password.", response = ErrorDetail.class),
@ApiResponse(code = 404, message = "Issuer or card not found.", response = ErrorDetail.class),
@ApiResponse(code = 500, message = "Server error.", response = ErrorDetail.class),
@ApiResponse(code = 504, message = "Gateway timeout", response = ErrorDetail.class) })
public final void cancelStopCard(
@ApiParam(value = "The issuer ID to which the card belongs.", required = true) @PathParam("issuer-id") String issuerId,
@ApiParam(value = "The card ID.", required = true) @PathParam("card-id") String cardId,
@ApiParam(value = "The randomly generated UUID identifying this transaction, as defined for a version 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)", required = true) @PathParam("transaction-id") String transactionId,
@ApiParam(value = "Details for removing the hold status.", required = true) CancelStopCardRequest body,
@Context SecurityContext securityContext,
@Context Request request,
@Suspended AsyncResponse asyncResponse,
@Context HttpHeaders httpHeaders,
@Context UriInfo uriInfo,
@Context HttpServletRequest httpServletRequest) {
getResourceImplementation().cancelStopCard(
issuerId,
cardId,
transactionId,
body,
securityContext,
request,
httpHeaders,
asyncResponse,
uriInfo,
httpServletRequest);
}
@POST
@Path("/issuers/{issuer-id}/accounts/{account-id}/credit/{transaction-id}")
@Consumes({ "application/json" })
@Produces({ "application/json" })
@ApiOperation(value = "", notes = "Credit an account with funds.")
@ApiResponses(value = {
@ApiResponse(code = 200, message = "Account credit successful.", response = AccountCreditResponse.class),
@ApiResponse(code = 400, message = "Bad Request.", response = ErrorDetail.class),
@ApiResponse(code = 401, message = "Incorrect user name or password.", response = ErrorDetail.class),
@ApiResponse(code = 404, message = "Issuer or account not found.", response = ErrorDetail.class),
@ApiResponse(code = 500, message = "Server error.", response = ErrorDetail.class),
@ApiResponse(code = 504, message = "Gateway timeout", response = ErrorDetail.class) })
public final void creditAccount(
@ApiParam(value = "The issuer ID to which the account belongs.", required = true) @PathParam("issuer-id") String issuerId,
@ApiParam(value = "The account ID of the account to credit.", required = true) @PathParam("account-id") String accountId,
@ApiParam(value = "The randomly generated UUID identifying this transaction, as defined for a version 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)", required = true) @PathParam("transaction-id") String transactionId,
@ApiParam(value = "Details regarding the funds to be credited.", required = true) AccountCreditRequest body,
@Context SecurityContext securityContext,
@Context Request request,
@Suspended AsyncResponse asyncResponse,
@Context HttpHeaders httpHeaders,
@Context UriInfo uriInfo,
@Context HttpServletRequest httpServletRequest) {
getResourceImplementation().creditAccount(
issuerId,
accountId,
transactionId,
body,
securityContext,
request,
httpHeaders,
asyncResponse,
uriInfo,
httpServletRequest);
}
@POST
@Path("/issuers/{issuer-id}/accounts/{account-id}/debit/{transaction-id}")
@Consumes({ "application/json" })
@Produces({ "application/json" })
@ApiOperation(value = "", notes = "Debit funds from an account.")
@ApiResponses(value = {
@ApiResponse(code = 200, message = "Account debit successful", response = AccountDebitResponse.class),
@ApiResponse(code = 400, message = "Bad Request.", response = ErrorDetail.class),
@ApiResponse(code = 401, message = "Incorrect user name or password.", response = ErrorDetail.class),
@ApiResponse(code = 404, message = "Issuer or account not found.", response = ErrorDetail.class),
@ApiResponse(code = 500, message = "Server error.", response = ErrorDetail.class),
@ApiResponse(code = 504, message = "Gateway timeout", response = ErrorDetail.class) })
public final void debitAccount(
@ApiParam(value = "The issuer ID to which the account belongs.", required = true) @PathParam("issuer-id") String issuerId,
@ApiParam(value = "The account ID of the account to debit.", required = true) @PathParam("account-id") String accountId,
@ApiParam(value = "The randomly generated UUID identifying this transaction, as defined for a version 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)", required = true) @PathParam("transaction-id") String transactionId,
@ApiParam(value = "Details regarding the funds to be debited.", required = true) AccountDebitRequest body,
@Context SecurityContext securityContext,
@Context Request request,
@Suspended AsyncResponse asyncResponse,
@Context HttpHeaders httpHeaders,
@Context UriInfo uriInfo,
@Context HttpServletRequest httpServletRequest) {
getResourceImplementation().debitAccount(
issuerId,
accountId,
transactionId,
body,
securityContext,
request,
httpHeaders,
asyncResponse,
uriInfo,
httpServletRequest);
}
@GET
@Path("/issuers/{issuer-id}/accounts/{account-id}/balance")
@Consumes({ "application/json" })
@Produces({ "application/json" })
@ApiOperation(value = "", notes = "Retrieve the available and or ledger balance of an account.")
@ApiResponses(value = {
@ApiResponse(code = 200, message = "Account balance retrieived successfully.", response = AccountBalanceResponse.class),
@ApiResponse(code = 400, message = "Bad Request.", response = ErrorDetail.class),
@ApiResponse(code = 401, message = "Incorrect user name or password.", response = ErrorDetail.class),
@ApiResponse(code = 404, message = "Issuer or account not found.", response = ErrorDetail.class),
@ApiResponse(code = 500, message = "Server error.", response = ErrorDetail.class),
@ApiResponse(code = 504, message = "Gateway timeout", response = ErrorDetail.class) })
public final void getAccountBalance(
@ApiParam(value = "The issuer ID to which the account belongs.", required = true) @PathParam("issuer-id") String issuerId,
@ApiParam(value = "The account ID.", required = true) @PathParam("account-id") String accountId,
@Context SecurityContext securityContext,
@Context Request request,
@Suspended AsyncResponse asyncResponse,
@Context HttpHeaders httpHeaders,
@Context UriInfo uriInfo,
@Context HttpServletRequest httpServletRequest) {
getResourceImplementation().getAccountBalance(
issuerId,
accountId,
securityContext,
request,
httpHeaders,
asyncResponse,
uriInfo,
httpServletRequest);
}
@GET
@Path("/issuers/{issuer-id}/accounts/{account-id}/statement")
@Consumes({ "application/json" })
@Produces({ "application/json" })
@ApiOperation(value = "", notes = "Retrieve an account statement for a specified period.")
@ApiResponses(value = {
@ApiResponse(code = 200, message = "Statement retrieved successfully.", response = AccountStatementResponse.class),
@ApiResponse(code = 400, message = "Bad Request.", response = ErrorDetail.class),
@ApiResponse(code = 401, message = "Incorrect user name or password.", response = ErrorDetail.class),
@ApiResponse(code = 404, message = "Issuer or account not found.", response = ErrorDetail.class),
@ApiResponse(code = 500, message = "Server error.", response = ErrorDetail.class),
@ApiResponse(code = 504, message = "Gateway timeout", response = ErrorDetail.class) })
public final void getAccountStatementByDate(
@ApiParam(value = "The issuer ID to which the account belongs.", required = true) @PathParam("issuer-id") String issuerId,
@ApiParam(value = "The account ID for which to get the statement.", required = true) @PathParam("account-id") String accountId,
@ApiParam(value = "The start date of the statement.") @QueryParam("begin-date") String beginDate,
@ApiParam(value = "The end date of the statement.") @QueryParam("end-date") String endDate,
@Context SecurityContext securityContext,
@Context Request request,
@Suspended AsyncResponse asyncResponse,
@Context HttpHeaders httpHeaders,
@Context UriInfo uriInfo,
@Context HttpServletRequest httpServletRequest) {
getResourceImplementation().getAccountStatementByDate(
issuerId,
accountId,
beginDate,
endDate,
securityContext,
request,
httpHeaders,
asyncResponse,
uriInfo,
httpServletRequest);
}
@GET
@Path("/issuers/{issuer-id}/cards/{card-id}/statement")
@Consumes({ "application/json" })
@Produces({ "application/json" })
@ApiOperation(value = "", notes = "Retrieve a card statement for a specified period.")
@ApiResponses(value = {
@ApiResponse(code = 200, message = "Statement retrieved successfully.", response = AccountStatementResponse.class),
@ApiResponse(code = 400, message = "Bad Request.", response = ErrorDetail.class),
@ApiResponse(code = 401, message = "Incorrect user name or password.", response = ErrorDetail.class),
@ApiResponse(code = 404, message = "Issuer or card not found.", response = ErrorDetail.class),
@ApiResponse(code = 500, message = "Server error.", response = ErrorDetail.class),
@ApiResponse(code = 504, message = "Gateway timeout", response = ErrorDetail.class) })
public final void getCardStatementByDate(
@ApiParam(value = "The issuer ID to which the card belongs.", required = true) @PathParam("issuer-id") String issuerId,
@ApiParam(value = "The card ID for which to get the statement.", required = true) @PathParam("card-id") String accountId,
@ApiParam(value = "The start date of the statement.") @QueryParam("begin-date") String beginDate,
@ApiParam(value = "The end date of the statement.") @QueryParam("end-date") String endDate,
@Context SecurityContext securityContext,
@Context Request request,
@Suspended AsyncResponse asyncResponse,
@Context HttpHeaders httpHeaders,
@Context UriInfo uriInfo,
@Context HttpServletRequest httpServletRequest) {
getResourceImplementation().getCardStatementByDate(
issuerId,
accountId,
beginDate,
endDate,
securityContext,
request,
httpHeaders,
asyncResponse,
uriInfo,
httpServletRequest);
}
@POST
@Path("/issuers/{issuer-id}/cardaccountlink/{transaction-id}")
@Consumes({ "application/json" })
@Produces({ "application/json" })
@ApiOperation(value = "", notes = "Link a card to an account.")
@ApiResponses(value = {
@ApiResponse(code = 200, message = "Card and account linked successfully.", response = CardAccountLinkResponse.class),
@ApiResponse(code = 400, message = "Bad Request.", response = ErrorDetail.class),
@ApiResponse(code = 401, message = "Incorrect user name or password.", response = ErrorDetail.class),
@ApiResponse(code = 404, message = "Issuer or card not found.", response = ErrorDetail.class),
@ApiResponse(code = 500, message = "Server error.", response = ErrorDetail.class),
@ApiResponse(code = 504, message = "Gateway timeout", response = ErrorDetail.class) })
public final void linkCardAndAccount(
@ApiParam(value = "The issuer ID of the issuer that issued the card.", required = true) @PathParam("issuer-id") String issuerId,
@ApiParam(value = "The randomly generated UUID identifying this transaction, as defined for a version 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)", required = true) @PathParam("transaction-id") String transactionId,
@ApiParam(value = "The card and account details. The card and account must already exist.", required = true) CardAccountLinkRequest body,
@Context SecurityContext securityContext,
@Context Request request,
@Suspended AsyncResponse asyncResponse,
@Context HttpHeaders httpHeaders,
@Context UriInfo uriInfo,
@Context HttpServletRequest httpServletRequest) {
getResourceImplementation().linkCardAndAccount(
issuerId,
transactionId,
body,
securityContext,
request,
httpHeaders,
asyncResponse,
uriInfo,
httpServletRequest);
}
@POST
@Path("/issuers/{issuer-id}/cards/link/{transaction-id}")
@Consumes({ "application/json" })
@Produces({ "application/json" })
@ApiOperation(value = "", notes = "Link a range of cards to an issuer. The range of cards must be sequential.")
@ApiResponses(value = {
@ApiResponse(code = 200, message = "Successfully linked cards to issuer.", response = MultipleCardsIssuerLinkResponse.class),
@ApiResponse(code = 400, message = "Bad Request.", response = ErrorDetail.class),
@ApiResponse(code = 401, message = "Incorrect user name or password.", response = ErrorDetail.class),
@ApiResponse(code = 404, message = "Issuer or card(s) not found.", response = ErrorDetail.class),
@ApiResponse(code = 500, message = "Server error.", response = ErrorDetail.class),
@ApiResponse(code = 504, message = "Gateway timeout", response = ErrorDetail.class) })
public final void linkCardsToIssuer(
@ApiParam(value = "The issuer ID to which the cards should be linked.", required = true) @PathParam("issuer-id") String issuerId,
@ApiParam(value = "The randomly generated UUID identifying this transaction, as defined for a version 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)", required = true) @PathParam("transaction-id") String transactionId,
@ApiParam(value = "Details for linking cards by sequence range.", required = true) MultipleCardsIssuerLinkRequest body,
@Context SecurityContext securityContext,
@Context Request request,
@Suspended AsyncResponse asyncResponse,
@Context HttpHeaders httpHeaders,
@Context UriInfo uriInfo,
@Context HttpServletRequest httpServletRequest) {
getResourceImplementation().linkCardsToIssuer(
issuerId,
transactionId,
body,
securityContext,
request,
httpHeaders,
asyncResponse,
uriInfo,
httpServletRequest);
}
@POST
@Path("/issuers/{issuer-id}/cards/link/{card-id}/{transaction-id}")
@Consumes({ "application/json" })
@Produces({ "application/json" })
@ApiOperation(value = "", notes = "Link a single card to an issuer.")
@ApiResponses(value = {
@ApiResponse(code = 200, message = "Successfully linked card to issuer.", response = MultipleCardsIssuerLinkResponse.class),
@ApiResponse(code = 400, message = "Bad Request.", response = ErrorDetail.class),
@ApiResponse(code = 401, message = "Incorrect user name or password.", response = ErrorDetail.class),
@ApiResponse(code = 404, message = "Issuer or card not found.", response = ErrorDetail.class),
@ApiResponse(code = 500, message = "Server error.", response = ErrorDetail.class),
@ApiResponse(code = 504, message = "Gateway timeout", response = ErrorDetail.class) })
public final void linkCardToIssuer(
@ApiParam(value = "The issuer ID to which the card should be linked.", required = true) @PathParam("issuer-id") String issuerId,
@ApiParam(value = "The card id which should be linked.", required = true) @PathParam("card-id") String cardId,
@ApiParam(value = "The randomly generated UUID identifying this transaction, as defined for a version 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)", required = true) @PathParam("transaction-id") String transactionId,
@ApiParam(value = "Details for linking the card.", required = true) SingleCardIssuerLinkRequest body,
@Context SecurityContext securityContext,
@Context Request request,
@Suspended AsyncResponse asyncResponse,
@Context HttpHeaders httpHeaders,
@Context UriInfo uriInfo,
@Context HttpServletRequest httpServletRequest) {
getResourceImplementation().linkCardToIssuer(
issuerId,
cardId,
transactionId,
body,
securityContext,
request,
httpHeaders,
asyncResponse,
uriInfo,
httpServletRequest);
}
@PUT
@Path("/issuers/{issuer-id}/cards/{card-id}/resetpin/{transaction-id}")
@Consumes({ "application/json" })
@Produces({ "application/json" })
@ApiOperation(value = "", notes = "Reset the PIN of a card when the old PIN is unknown.")
@ApiResponses(value = {
@ApiResponse(code = 200, message = "Card PIN reset successful.", response = PinResetResponse.class),
@ApiResponse(code = 400, message = "Bad Request.", response = ErrorDetail.class),
@ApiResponse(code = 401, message = "Incorrect user name or password.", response = ErrorDetail.class),
@ApiResponse(code = 404, message = "Issuer or card not found.", response = ErrorDetail.class),
@ApiResponse(code = 500, message = "Server error.", response = ErrorDetail.class),
@ApiResponse(code = 504, message = "Gateway timeout", response = ErrorDetail.class) })
public final void resetPin(
@ApiParam(value = "The issuer ID to which the card belongs.", required = true) @PathParam("issuer-id") String issuerId,
@ApiParam(value = "The card ID.", required = true) @PathParam("card-id") String cardId,
@ApiParam(value = "The randomly generated UUID identifying this transaction, as defined for a version 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)", required = true) @PathParam("transaction-id") String transactionId,
@ApiParam(value = "Details of the PIN reset.", required = true) PinResetRequest body,
@Context SecurityContext securityContext,
@Context Request request,
@Suspended AsyncResponse asyncResponse,
@Context HttpHeaders httpHeaders,
@Context UriInfo uriInfo,
@Context HttpServletRequest httpServletRequest) {
getResourceImplementation().resetPin(
issuerId,
cardId,
transactionId,
body,
securityContext,
request,
httpHeaders,
asyncResponse,
uriInfo,
httpServletRequest);
}
@GET
@Path("/issuers/{issuer-id}/cards/{card-id}/balance")
@Consumes({ "application/json" })
@Produces({ "application/json" })
@ApiOperation(value = "", notes = "Retrieve the available balance of a card.")
@ApiResponses(value = {
@ApiResponse(code = 200, message = "Card balance retrieived successfully.", response = CardBalanceResponse.class),
@ApiResponse(code = 400, message = "Bad Request.", response = ErrorDetail.class),
@ApiResponse(code = 401, message = "Incorrect user name or password.", response = ErrorDetail.class),
@ApiResponse(code = 404, message = "Issuer or account not found.", response = ErrorDetail.class),
@ApiResponse(code = 500, message = "Server error.", response = ErrorDetail.class),
@ApiResponse(code = 504, message = "Gateway timeout", response = ErrorDetail.class) })
public final void getCardBalance(
@ApiParam(value = "The issuer ID to which the card belongs.", required = true) @PathParam("issuer-id") String issuerId,
@ApiParam(value = "The card ID.", required = true) @PathParam("card-id") String cardId,
@Context SecurityContext securityContext,
@Context Request request,
@Suspended AsyncResponse asyncResponse,
@Context HttpHeaders httpHeaders,
@Context UriInfo uriInfo,
@Context HttpServletRequest httpServletRequest) {
getResourceImplementation().getCardBalance(
issuerId,
cardId,
securityContext,
request,
httpHeaders,
asyncResponse,
uriInfo,
httpServletRequest);
}
@PUT
@Path("/issuers/{issuer-id}/cards/{card-id}/stop/{transaction-id}")
@Consumes({ "application/json" })
@Produces({ "application/json" })
@ApiOperation(value = "", notes = "Place a card on hold.")
@ApiResponses(value = {
@ApiResponse(code = 200, message = "Card stopped successfully.", response = StopCardResponse.class),
@ApiResponse(code = 400, message = "Bad Request.", response = ErrorDetail.class),
@ApiResponse(code = 401, message = "Incorrect user name or password.", response = ErrorDetail.class),
@ApiResponse(code = 404, message = "Issuer or card not found.", response = ErrorDetail.class),
@ApiResponse(code = 500, message = "Server error.", response = ErrorDetail.class),
@ApiResponse(code = 504, message = "Gateway timeout", response = ErrorDetail.class) })
public final void stopCard(
@ApiParam(value = "The issuer ID to which the card belongs.", required = true) @PathParam("issuer-id") String issuerId,
@ApiParam(value = "The card ID.", required = true) @PathParam("card-id") String cardId,
@ApiParam(value = "The randomly generated UUID identifying this transaction, as defined for a version 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)", required = true) @PathParam("transaction-id") String transactionId,
@ApiParam(value = "Details of the stop reason.", required = true) StopCardRequest body,
@Context SecurityContext securityContext,
@Context Request request,
@Suspended AsyncResponse asyncResponse,
@Context HttpHeaders httpHeaders,
@Context UriInfo uriInfo,
@Context HttpServletRequest httpServletRequest) {
getResourceImplementation().stopCard(
issuerId,
cardId,
transactionId,
body,
securityContext,
request,
httpHeaders,
asyncResponse,
uriInfo,
httpServletRequest);
}
@POST
@Path("/issuers/{issuer-id}/transferFunds/{transaction-id}")
@Consumes({ "application/json" })
@Produces({ "application/json" })
@ApiOperation(value = "", notes = "Transfer funds between cards and/or accounts.")
@ApiResponses(value = {
@ApiResponse(code = 200, message = "Successful response", response = FundsTransferResponse.class),
@ApiResponse(code = 400, message = "Bad Request.", response = ErrorDetail.class),
@ApiResponse(code = 401, message = "Incorrect user name or password.", response = ErrorDetail.class),
@ApiResponse(code = 404, message = "Issuer or card or account not found.", response = ErrorDetail.class),
@ApiResponse(code = 500, message = "Server error.", response = ErrorDetail.class),
@ApiResponse(code = 504, message = "Gateway timeout.", response = ErrorDetail.class) })
public final void transferFunds(
@ApiParam(value = "The issuer ID.", required = true) @PathParam("issuer-id") String issuerId,
@ApiParam(value = "The randomly generated UUID identifying this transaction, as defined for a version 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)", required = true) @PathParam("transaction-id") String transactionId,
@ApiParam(value = "Details regarding the funds to be transferred.", required = true) FundsTransferRequest body,
@Context SecurityContext securityContext,
@Context Request request,
@Suspended AsyncResponse asyncResponse,
@Context HttpHeaders httpHeaders,
@Context UriInfo uriInfo,
@Context HttpServletRequest httpServletRequest) {
getResourceImplementation().transferFunds(
issuerId,
transactionId,
body,
securityContext,
request,
httpHeaders,
asyncResponse,
uriInfo,
httpServletRequest);
}
@PUT
@Path("/issuers/{issuer-id}/customers/{customer-id}/update/{transaction-id}")
@Consumes({ "application/json" })
@Produces({ "application/json" })
@ApiOperation(value = "", notes = "Update the details for an existing customer")
@ApiResponses(value = {
@ApiResponse(code = 200, message = "Customer update successful.", response = UpdateCustomerResponse.class),
@ApiResponse(code = 400, message = "Bad Request.", response = ErrorDetail.class),
@ApiResponse(code = 401, message = "Incorrect user name or password.", response = ErrorDetail.class),
@ApiResponse(code = 404, message = "Issuer or customer not found.", response = ErrorDetail.class),
@ApiResponse(code = 500, message = "Server error.", response = ErrorDetail.class),
@ApiResponse(code = 504, message = "Gateway timeout", response = ErrorDetail.class) })
public final void updateCustomer(
@ApiParam(value = "The issuer ID to which the customer belongs.", required = true) @PathParam("issuer-id") String issuerId,
@ApiParam(value = "The ID of the customer to be updated.", required = true) @PathParam("customer-id") String customerId,
@ApiParam(value = "The randomly generated UUID identifying this transaction, as defined for a version 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)", required = true) @PathParam("transaction-id") String transactionId,
@ApiParam(value = "Extra details regarding the request message.", required = true) UpdateCustomerRequest body,
@Context SecurityContext securityContext,
@Context Request request,
@Suspended AsyncResponse asyncResponse,
@Context HttpHeaders httpHeaders,
@Context UriInfo uriInfo,
@Context HttpServletRequest httpServletRequest) {
getResourceImplementation().updateCustomer(
issuerId,
customerId,
transactionId,
body,
securityContext,
request,
httpHeaders,
asyncResponse,
uriInfo,
httpServletRequest);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy