Set up payment extensions

Ask about this Page
Copy for LLM
View as Markdown

Learn how to integrate with additional payment providers.

Payment extensions allow you to support additional payment providers that aren't integrated with InStore by default. Custom implementations can be integrated for credit cards, stored-value cards, digital wallet, and pay on account. Each custom payment extension needs to implement predefined InStore endpoints for that tender type. The InStore payment extension proxy sends requests to the URL that you preregister in the InStore Center with the results of the process executed in your in-store application.

Set up a custom payment extension

The specific details of setting up a custom extension and verifying the signature may vary depending on the programming language, framework, and server setup you are using.

To set up a custom payment extension, do the following:

  1. Set up endpoints on your server to receive the custom payment extension data. You need to create a script or program that listens for incoming requests at a specific URL and supports all endpoints defined for the payment type of the particular extension. You can do this using a variety of programming languages and frameworks, depending on your server setup. InStore sends HTTP POST and GET requests to the URL you specify.

  2. Make sure your endpoints can handle the request format used by each action. POST actions receive JSON-formatted request and response bodies. GET actions use route or query parameters, as documented for that action.

  3. Configure all endpoints to verify the HMAC-SHA256 signature that InStore sends with each request. This signature is a security measure that ensures the data being sent to your endpoint is actually coming from InStore and has not been tampered with in transit.

  4. To verify the signature, you'll need to perform the following steps:

    1. Extract the signature from the incoming proxy request headers. The header key for the signature is X-Signature.
    2. Compute an HMAC-SHA256 hash over the JSON-stringified request payload, using the shared verification key you configured for the extension in the InStore Center.
    3. Compare the generated hash to the signature included in the incoming request headers. If they match, the data has not been tampered with and can be safely processed by your endpoint.
    4. Once you've verified the signature, you can process the incoming data as needed. This may involve storing it in a database, triggering other actions in your system, or sending a response back to acknowledge receipt of the request.

The shared verification key is a symmetric secret, not an asymmetric private key. Both InStore and your extension must hold the same key.

Credit card extension

Supported actionsTypeDescription
initialize_credit_processorPOSTPerforms initialization steps on the payment provider.
connect_card_readerPOSTConnects to the credit reader.
payment_transaction/:transaction_idGETReturns payment intent. Only applies if the provider supports payment capture before collecting payment.
credit_available_refund/:processor_idGETReturns the available refund for the specified transaction.
capture_paymentPOSTReturns a payment intent.
collect_credit_paymentPOSTCollects the payment using a pin entry device (PED).
create_credit_refundPOSTApplies a credit refund.
cancel_credit_paymentPOSTCancels a credit payment request.

initialize_credit_processor

Request
FieldTypeDescriptionExample
processorStringThe credit processor to initialize."Custom"
X-SignatureStringVerification signature for authorization."asdibasdy7128e71"
tenant_idStringIdentifier of the tenant."b312-c121-3f45-ab34"
Response
FieldAttributesTypeDescriptionExample
resultStringResult of the request."Success" or "Failure"
errorStringError message if the request failed."Error message"
dataObjectData returned on the request.{"captureEnabled": true, "simulated": false}
captureEnabledBooleanIndicates if the payment provider requires capture prior to payment collection.true
simulatedBooleanIndicates if the payment provider is using simulated test cards from InStore.false

connect_card_reader

Request
FieldAttributesTypeDescriptionExample
pedObjectDetails of the payment device to connect to.{...}
statusStringStatus of the device."Active"
nameStringName of the device."Verifone P400"
typeStringType of device."PED"
descriptionStringDescription of the device."Frontdesk PED"
locationStringIdentifier of the store."001"
brandStringBrand of the device."Verifone"
modelStringModel of the device."P400"
sharedBooleanSet to true if the device is shared.true
registration_codeStringDevice registration code."32423424224"
managing_agentStringDevice managing agent."Custom"
X-SignatureStringVerification signature for authorization."asdibasdy7128e71"
tenant_idStringIdentifier of the tenant."b312-c121-3f45-ab34"
Response
FieldTypeDescriptionExample
resultStringResult of the request."Success" or "Failure"
errorStringError message if the request failed."Device Offline"

capture_payment

Request
FieldTypeDescriptionExample
X-SignatureStringVerification signature for authorization."asdibasdy7128e71"
tenant_idStringIdentifier of the tenant."b312-c121-3f45-ab34"
cartKeyStringIdentifier of the Cart."3819232132"
Response
FieldAttributesTypeDescriptionExample
resultStringResult of the request."Success" or "Failure"
errorStringError message if the request failed."Error message"
cartKeyStringIdentifier of the Cart."010014175777"
dataObjectContains the returned data about the request.{...}
processorStringPayment provider, which is one of the following: Adyen, Stripe, Custom, or Simulator."Simulator"
processor_idStringIdentifier of the transaction that the payment provider returns."213121111"
last4StringLast four digits of the credit card number."4242"
brandStringBrand of the credit card."visa"
account_typeStringType of card account, such as credit or debit."credit"
application_preferred_nameStringCardholder's name as displayed on their credit or debit card.null
dedicated_file_nameStringIdentifier used by the card issuer.null
authorization_response_codeStringCode that indicates the status of the transaction request sent to the card issuer."3030"
application_cryptogramStringDigital signature generated by the card’s embedded chip.null
terminal_verification_resultsStringA series of bits set by the PED for deciding how to respond to the request for payment.null
transaction_status_informationStringStatus of the transaction, which is returned by the card issuer.null
statusStringStatus of the payment, which is returned from the card issuer."requires_capture"

collect_credit_payment

Request
FieldAttributesTypeDescriptionExample
saleIdStringIdentifier of the session.
testCardStringTest card used in simulator mode, which is obtained from InStore.
referenceStringInStore identifier of the transaction.
amountObjectIndicates the amount to collect for the payment.
pedObjectContains details of the payment device to connect to.{...}
statusStringStatus of the device."Active"
nameStringName of the device."Verifone P400"
typeStringType of device."PED"
descriptionStringDescription of the device."Frontdesk PED"
locationStringIdentifier of the store."001"
brandStringBrand of the device."Verifone"
modelStringModel of the device."P400"
sharedBooleanSet to true if the device is shared.true
registration_codeStringDevice registration code."32423424224"
managing_agentStringDevice managing agent."Custom"
X-SignatureStringVerification signature for authorization."asdibasdy7128e71"
tenant_idStringIdentifier of the tenant."b312-c121-3f45-ab34"
cartKeyStringIdentifier of the Cart."010014175777"
Response
FieldAttributesTypeDescriptionExample
resultStringResult of the request."Success" or "Failure"
errorStringError message if the request failed."Error message"
cartKeyStringIdentifier of the Cart."010014175777"
dataObjectContains the data returned about the request.{...}
processorStringPayment provider, which is one of the following: Adyen, Stripe, Custom, or Simulator."Simulator"
processor_idStringIdentifier of the transaction that the payment provider returns."213121111"
last4StringLast four digits of the credit card number."4242"
brandStringBrand of the credit card."visa"
account_typeStringType of card account, such as credit or debit."credit"
methodStringThe value that populates the Payment Method field in the Merchant Center."Adyen Credit Card"
verifySignatureBooleanSet as true if the customer must provide a signature. A true value triggers the capture_payment process.false
application_preferred_nameStringCardholder's name as displayed on their credit or debit card.null
dedicated_file_nameStringIdentifier used by the card issuer.null
authorization_response_codeStringCode that indicates the status of the transaction request sent to the card issuer."3030"
application_cryptogramStringDigital signature generated by the card’s embedded chip.null
terminal_verification_resultsStringA series of bits set by the PED for deciding how to respond to the request for payment.null
transaction_status_informationStringStatus of the transaction, which is returned by the card issuer.null
statusStringStatus of the payment, which is returned by the card issuer."requires_capture"

create_credit_refund

Request
FieldAttributesTypeDescriptionExample
saleIdStringIdentifier of the session."34234324234"
last4StringLast four digits of the card number."4242"
referenceStringInStore identifier of the transaction."3434534453453"
amountStringRefund amount.
currencyStringISO currency code."USD"
X-SignatureStringVerification signature for authorization."asdibasdy7128e71"
tenant_idStringIdentifier of the tenant."b312-c121-3f45-ab34"
Response
FieldAttributesTypeDescriptionExample
resultStringResult of the request."Success" or "Failure"
errorStringError message if the request failed."Error message"
dataObjectData returned on the request. As below:{...}
processorStringPayment provider, which is one of the following: Adyen, Stripe, Custom, or Simulator."Simulator"
processor_idStringIdentifier of the transaction that the payment provider returns."213121111"
last4StringLast four digits of the credit card number."4242"
brandStringBrand of the credit card."visa"
account_typeStringType of card account, such as credit or debit."credit"
application_preferred_nameStringCardholder's name as displayed on their credit or debit card.null
dedicated_file_nameStringIdentifier used by the card issuer.null
authorization_response_codeStringCode that indicates the status of the transaction request sent to the card issuer."3030"
application_cryptogramStringDigital signature generated by the card’s embedded chip.null
terminal_verification_resultsStringA series of bits set by the PED for deciding how to respond to the request for payment.null
transaction_status_informationStringStatus of the transaction, which is returned by the card issuer.null
statusStringStatus of the action."approved"

cancel_credit_payment

Request
FieldTypeDescriptionExample
processor_idStringIdentifier of the transaction, which the payment provider returns."213121111"
last4StringLast four digits of the credit card number."4242"
brandStringBrand of the credit card."visa"
account_typeStringType of card account, such as credit or debit."credit"
X-SignatureStringVerification signature for authorization."asdibasdy7128e71"
tenant_idStringIdentifier of the tenant."b312-c121-3f45-ab34"
Response
FieldAttributesTypeDescriptionExample
resultStringResult of the request."Success" or "Failure"
errorStringError message if the request failed."Error message"
dataObjectData returned on the request. As below:{...}
processorStringPayment provider, which is one of the following: Adyen, Stripe, Custom, or Simulator.Simulator
processor_idStringIdentifier of the transaction that the payment provider returns.213121111
last4StringLast four digits of the credit card number.4242
brandStringBrand of the credit card.visa
account_typeStringType of card account, such as credit or debit.credit
application_preferred_nameStringCardholder's name as displayed on their credit or debit card.null
dedicated_file_nameStringIdentifier used by the card issuer.null
authorization_response_codeStringCode that indicates the status of the transaction request sent to the card issuer.3030
application_cryptogramStringDigital signature generated by the card’s embedded chip.null
terminal_verification_resultsStringA series of bits set by the PED for deciding how to respond to the request for payment.null
transaction_status_informationStringStatus of the transaction, which is returned by the card issuer.null
statusStringStatus of action.approved

Stored-value card extension

Supported actionsTypeDescription
storedvaluecardPOSTCreates a new stored-value card.
storedvaluecard/:numberPOSTReturns stored-value card information given the card number.
storedvaluecard_processPOSTProcesses stored-value card operations, such as redeeming, loading, and canceling, and updates the balance.
storedvaluelog/:numberGETReturns the transaction log for a stored-value card.
The stored-value card actions use two request patterns. InStore sends storedvaluecard, storedvaluecard/:number, and storedvaluecard_process through an asynchronous webhook envelope by POSTing the wrapped payload to the URL configured for your extension. Your extension must respond synchronously with an acknowledgment and then deliver the final result asynchronously by calling the callbackUrl included in the envelope. storedvaluelog/:number is a GET request and is documented separately below.

Webhook envelope and authentication

Each POST request that InStore sends to your stored-value card extension uses the following envelope. The fields your extension should parse for business logic live inside payload; everything else is delivery metadata.
FieldTypeDescription
payload_urlStringThe full URL that InStore resolved for this request, including the action path (for example storedvaluecard_process).
payloadObjectThe business payload for the action. The field tables for each action below describe this object.
verification_signatureStringHMAC-SHA256 of JSON.stringify(payload), computed with your shared verification key. Duplicated in the X-Signature header.
tenant_idStringIdentifier of the InStore tenant that sent the request.
requestIdStringUnique identifier for this request. Echo it back when you call callbackUrl.
callbackUrlStringURL your extension must POST the final result to once the operation has completed.
statusUrlStringURL your extension can POST progress updates to while the operation is running.

Each request also includes the following headers:

HeaderDescription
X-SignatureHMAC-SHA256 of JSON.stringify(payload) using the shared verification key you configured for this extension. Compare against your own computed hash to verify authenticity.
X-API-KeyOptional. Present when the tenant has a webhook API key configured. Use it as an additional authentication check.
x-correlation-idCorrelation identifier for distributed tracing. Log it and propagate it on any downstream calls.
The signature algorithm is HMAC-SHA256 with a shared secret, not a digital signature with an asymmetric private key. Both sides must hold the same verification key.

storedvaluecard

Use the storedvaluecard action to create a new stored-value card.
Request payload
FieldAttributesTypeRequiredDescriptionExample
requestIdStringYesUnique identifier for this request."req-9a8b..."
locationIdStringYesUser-defined location identifier (for example "01" or "LondonStore")."LondonStore"
workstationIdStringNoIdentifier of the workstation that originated the request."POS-03"
typeStringYesType of card. One of GiftCard, ReturnCard, or Promotional."ReturnCard"
statusStringYesStatus of the stored-value card. One of Active or Inactive."Active"
balanceObjectYesBalance of the stored-value card.{"amount":1220,"precision":2,"currency":"USD"}
amountNumberYesMonetary value in minor units, such as cents or pence.1220
precisionNumberYesNumber of digits after the decimal point.2
currencyStringYesISO-4217 currency code."USD"
issuerStringNoIssuer of the stored-value card."My Store"
cvcStringNoCard verification code, if the processor uses one."123"
customer_idStringNoIdentifier of the customer the card is being issued to."cust-44"
Synchronous response
Your extension should respond with an acknowledgment containing the requestId. The final operation result is delivered asynchronously to the callbackUrl from the envelope.
FieldTypeDescriptionExample
requestIdStringEcho of the incoming requestId."req-9a8b..."

storedvaluecard/:number

Use the storedvaluecard/:number action to return stored-value card information for the given card number.
Request payload
FieldTypeRequiredDescriptionExample
requestIdStringYesUnique identifier for this request."req-9a8b..."
locationIdStringYesUser-defined location identifier."LondonStore"
workstationIdStringNoIdentifier of the workstation that originated the request."POS-03"
numberStringYesNumber of the stored-value card to look up."4332423424242"
cartKeyStringYesIdentifier of the Cart the lookup is associated with."3819232132"
pinStringNoCard PIN, if the processor uses one."1234"
accountsArray of InjectedStoredValueAccountNoPre-resolved account data for batch lookups. See Pre-loaded accounts.[{"number":"4332...","pin":"1234"}]
Synchronous response
FieldTypeDescriptionExample
requestIdStringEcho of the incoming requestId."req-9a8b..."

storedvaluecard_process

Use the storedvaluecard_process action to process stored-value card operations. Three actions are supported: Load, Redeem, and Cancel. Load and Redeem share the same request shape; Cancel uses a different shape because it references a prior transaction instead of an amount.

Load and Redeem

Request payload
FieldAttributesTypeRequiredDescriptionExample
requestIdStringYesUnique identifier for this request."req-9a8b..."
locationIdStringYesUser-defined location identifier."LondonStore"
workstationIdStringNoIdentifier of the workstation that originated the request."POS-03"
actionStringYesOperation to perform. One of Load or Redeem."Redeem"
numberStringYesNumber of the stored-value card to operate on."4332423424242"
amountObjectYesAmount to load or redeem.{"amount":1220,"precision":2,"currency":"USD"}
amountNumberYesMonetary value in minor units, such as cents or pence.1220
precisionNumberYesNumber of digits after the decimal point.2
currencyStringYesISO-4217 currency code."USD"
session_idStringYesIdentifier of the checkout session the operation belongs to."session-7c..."
referenceStringYesReference that ties this operation back to the originating transaction or Cart."order-2025-0001"
cvcStringNoCard verification code, if the processor uses one."123"
accountsArrayNoPre-resolved account data for batch operations. See Pre-loaded accounts.[{"number":"4332...","paymentProcessorId":"..."}]

Cancel

Use action: "Cancel" to reverse a previously completed stored-value card operation. The request references the external identifiers returned by the processor on the original operation; no new amount is supplied.
Request payload
FieldTypeRequiredDescriptionExample
requestIdStringYesUnique identifier for this request."req-9a8b..."
locationIdStringYesUser-defined location identifier."LondonStore"
workstationIdStringNoIdentifier of the workstation that originated the request."POS-03"
actionStringYesMust be "Cancel"."Cancel"
numberStringYesNumber of the stored-value card being cancelled."4332423424242"
external_transaction_idStringYesExternal transaction identifier returned by the processor on the original Load or Redeem."tx-8827..."
external_payment_idStringYesExternal payment identifier returned by the processor on the original operation."pay-2210..."
Synchronous response
Applies to Load, Redeem, and Cancel:
FieldTypeDescriptionExample
requestIdStringEcho of the incoming requestId."req-9a8b..."

storedvaluelog/:number

Use the storedvaluelog/:number action to return the transaction log for a stored-value card. Unlike the other stored-value card actions this one is a GET. The parameters are sent as query string values rather than in a JSON body, and the envelope headers (X-Signature, X-API-Key, x-correlation-id) still apply.
Request query parameters
FieldTypeRequiredDescriptionExample
requestIdStringYesUnique identifier for this request."req-9a8b..."
locationIdStringYesUser-defined location identifier."LondonStore"
workstationIdStringNoIdentifier of the workstation that originated the request."POS-03"
Synchronous response
FieldTypeDescriptionExample
requestIdStringEcho of the incoming requestId."req-9a8b..."

Pre-loaded accounts mode

For multi-card checkouts or when the POS already holds resolved card data, InStore can send pre-loaded accounts on storedvaluecard_process requests. InStore can also send pre-loaded accounts on storedvaluecard/:number requests. When the accounts array is present, InStore groups accounts by paymentProcessorId and sends one request per group, so a single processor only ever receives the accounts routed to it.
InjectedStoredValueAccount
FieldTypeRequiredDescriptionExample
numberStringYesStored-value card number."4332423424242"
pinStringNoCard PIN, if the processor uses one."1234"
balanceObjectNoPre-resolved balance, using the same { amount, precision, currency } shape.{"amount":1220,"precision":2,"currency":"USD"}
typeStringNoCard type. One of GiftCard, ReturnCard, or Promotional."GiftCard"
paymentProcessorIdStringNoInStore identifier used to route this account to a specific processor in multi-processor tenants. Stripped from the payload before it is forwarded to your extension.
When accounts is supplied on storedvaluecard_process, the synchronous response uses a results array so the POS can correlate each processor's requestId:
{
  "results": [
    { "requestId": "req-9a8b...", "paymentProcessorId": "664f..." },
    { "requestId": "req-9a8c..." }
  ]
}

Processor configuration

The behavior of your stored-value card extension is shaped by the configuration fields set on the PaymentProcessor in the InStore Center. These fields tell the POS which stored-value flows to run against your extension. Keep them in mind when deciding which endpoints your implementation must support.
FieldValuesDescription
cardNumberMethodManual, Injected, RequestedHow card numbers are obtained. Requested means the POS will call the storedvaluecard/:number action to fetch card data from your extension; Injected means the POS sends pre-loaded account data inline using accounts.
cardBalanceMethodInjected, RequestedWhether balances are requested from the extension or sent inline by the POS.
accountMethodInjected, RequestedWhether the full account record is requested from the extension or sent inline.
enableFieldsAny subset of CardNumber, Pin, Balance, CardTypeThe fields the POS will prompt for and include on requests to your extension.
urlStringThe base URL of your extension. Every action path is appended to this URL.
apiKeyStringThe shared verification key used to compute and verify the HMAC-SHA256 X-Signature.
timeoutNumber (ms)Maximum time InStore will wait for your extension to acknowledge a request.

Digital wallet extension

Supported actionsTypeDescription
initialize_walletPOSTPerforms initialization steps for the payment provider.
pay_walletPOSTSends a wallet payment request.
available_wallet_refundPOSTReturns the available wallet refund amount.
cancel_wallet_paymentPOSTSends a request to cancel the wallet.
log_cancel_walletPOSTLogs a wallet request to cancel the wallet.
refund_wallet_paymentPOSTSends a refund wallet request.

initialize_wallet

Use the initialize_wallet extension to perform initialization steps for the payment provider.
Request
FieldTypeDescriptionExample
location_idStringIdentifier of the store location."001"
Response
FieldTypeDescriptionExample
resultStringResult of the request."Success" or "Failure"
errorStringError message if the request failed.Error message
codeStringCode that represents an error.00

pay_wallet

Use the pay_wallet extension to send a wallet payment request.
Request
FieldTypeDescriptionExample
barcodeStringBarcode from the wallet provider customer."123456789012345678901000"
currencyStringISO currency code."USD"
totalIntegerTotal payment amount. Assumes a precision level of 2.16960
pos_local_timeStringLocal time on the POS terminal."2024-01-24 12:37:54"
tipIntegerTip amount. Assumes a precision level of 2.300
noteStringNote that describes the transaction."payment"
Response
FieldTypeDescriptionExample
transaction_idStringIdentifier of the transaction, which the wallet provider returns."242342342424"
totalStringTotal amount of the request."1050"
tipStringTip amount."1"
subtotalStringSubtotal of the transaction."1150"
merchant_idStringIdentifier of the merchant."634100700040000"
terminal_idStringIdentifier of the terminal."00000011"
methodStringMethod for delivering the stored-value card's value."A private messaging platform"
pos_local_timeStringLocal time on the POS terminal."2024-01-23 12:35:05"
resultStringResult of the request."Success" or "Failure"
codeStringResult code."00"
error_messageStringError message if the request failed."Error message"

available_wallet_refund

Use the available_wallet_refund extension to return the available wallet refund amount.
Request
FieldTypeDescriptionExample
transaction_idStringIdentifier of the transaction from the wallet provider."242342342424"
pos_local_timeStringLocal time on the POS terminal."2024-01-23 12:35:05"
Response
FieldTypeDescriptionExample
resultStringResult of the request."Success" or "Failure"
errorStringError message if the request failed."Error message"
codeStringResult code."00"

cancel_wallet_payment

Use the cancel_wallet_payment extension to send a request to cancel the wallet.
Request
FieldTypeDescriptionExample
X-SignatureStringVerification signature for authorization."asdibasdy7128e71"
tenant_idStringIdentifier of the tenant."b312-c121-3f45-ab34"
Response
FieldTypeDescriptionExample
resultStringResult of the request."Success" or "Failure"
errorStringError message if the request failed."Error message"
codeStringResult code."00"

log_cancel_wallet

Use the log_cancel_wallet extension to log a wallet cancelation request.
Request
FieldTypeDescriptionExample
barcodeStringWallet barcode used for the transaction."barcode-123"
totalStringTotal amount of the transaction."465500"
tipIntegerTip amount.1
currencyStringISO currency code."USD"
referenceStringReference to the sales transaction."123456"
response_codeStringResult code."00"
transaction_idStringIdentifier of the transaction from the wallet provider."242342342424"
pos_local_timeStringLocal time in the POS terminal."2024-01-23 12:35:05"
error_messageStringError message if the request failed."Error message"
Response
FieldTypeDescriptionExample
resultStringThe result of the request."Success" or "Failure"
errorStringError message if the request failed."Error message"
codeStringResult code.

refund_wallet_payment

Use the refund_wallet_payment extension to send a refund wallet request.
Request
FieldTypeDescriptionExample
transaction_idStringIdentifier of the transaction from the wallet provider."242342342424"
pos_local_timeStringLocal time of the POS terminal."2024-01-23 12:35:05"
noteStringNote to describe transaction."refund"
Response
FieldTypeDescriptionExample
resultStringResult of the request."Success" or "Failure"
error_messageStringError message if the request failed."Error message"
codeStringResult code."00"
transaction_idStringIdentifier of the transaction from the wallet provider."242342342424"
pos_local_timeStringLocal time on the POS terminal."2024-01-23 12:35:05"
merchant_idStringIdentifier of the merchant."634100700040000"
terminal_idStringIdentifier of the terminal."00000011"
methodStringMethod for delivering the stored-value card's value."A private messaging platform"
original_transaction_idStringIdentifier of the original transaction."1000000525"
original_referenceStringReference identifier of the original transaction."REF1234"

Pay on account (POA) extension

Supported actionsTypeDescription
payonaccount/processPOSTPerforms pay on account operations as per the specified action.
payonaccountlogPOSTLogs the pay on account operation.
payonaccountlog/GETReturns logs for a particular account number.

payonaccount/process

Use the payonaccount/process extension to create a new POA account, add credit to an account, query account details, or update the account.
Request
FieldAttributesTypeDescriptionExample
actionStringOperation to perform, which is one of the following: Create, Credit, Inquiry, or Update."Update"
account_numberStringAccount number."2342342342"
company_nameStringCompany name."My Store"
authorized_user_idsString arrayList of authorized user identifiers.["234234", "987786"]
balanceObjectProvide the amount, precision, and currency.{"amount":"1000", "precision":"2", "currency":"USD"}
amountStringValue to add to the account."1220"
precisionStringPrecision level of the value."2"
currencyStringISO currency code."USD"
credit_limitObjectSpecify the amount, precision, and currency, only for the Create action.{"amount":"50000", "precision":"2", "currency":"USD"}
amountStringValue of the credit limit of the account."50000"
precisionStringPrecision level of the value."2"
currencyStringISO currency code."USD"
Response
FieldAttributesTypeDescriptionExample
actionStringIndicates operation performed."Create", "Credit", "Inquiry", or "Update"
account_numberStringAccount number."2342342342"
company_nameStringCompany name."My Store"
authorized_user_idsString arrayList of authorized user identifiers for the create action.["234234", "987786"]
authorized_user_idStringIdentifier of the authorized user who performed the operation."234234"
balanceObjectContains details of the account balance.{"amount":"1000", "precision":"2", "currency":"USD"} indicates a balance of 10.00 dollars
amountStringValue to add to the account."1220"
precisionStringPrecision level of the value."2"
currencyStringISO currency code."USD"
credit_limitObjectContains the details of the credit limit when a Create action was performed.{"amount":"50000", "precision":"2", "currency":"USD"} indicates a credit limit of 500.00 dollars
amountStringValue of the credit limit of the account."50000"
precisionStringPrecision level of the value."2"
currencyStringISO currency code."USD"
statusStringStatus of the action, which is either approved or declined."approved"

payonaccountlog

Use the payonaccountlog extension to log POA actions.
Request
FieldAttributesTypeDescriptionExample
actionStringIndicates which operation to perform, which is one of the following: Create, Credit,Inquiry, orUpdate"Create"
account_numberStringAccount number."2342342342"
company_nameStringCompany name."My Store"
authorized_user_idStringIdentifier of the authorized user who is performing the action."234234"
amountObjectContains the details about the account balance.{"amount":"1000", "precision":"2", "currency":"USD"} indicates an amount of 10.00 dollars
amountStringValue to add to the account."1220"
precisionStringPrecision level of the value."2"
currencyStringISO currency code."USD"
session_idStringIdentifier of the transaction.qe2304982020948209840
order_idStringIdentifier of the order.0024242
statusStringStatus of the action, which is either approved or declined.approved
Response
FieldAttributesTypeDescriptionExample
actionStringIndicates which action was performed, which is one of the following: Create, Credit, Inquiry, or Update"Create"
account_numberStringAccount number."2342342342"
company_nameStringCompany name."My Store"
authorized_user_idStringIdentifier of the authorized user who performed the action."234234"
amountObjectContains details about the account balance.{"amount":"1000", "precision":"2", "currency":"USD"} indicates an amount of 10.00 dollars.
amountStringValue to add to the account."1220"
precisionStringPrecision level of the value."2"
currencyStringISO currency code."USD"
session_idStringIdentifier of the transaction.qe2304982020948209840
order_idStringIdentifier of the order.0024242
statusStringStatus of the action, which is either approved or declined.approved