Transactions

Create Payment

Use the Create Payment endpoint to move funds into a customer account. This endpoint may return load limit and velocity violations in its response. Payments created with this endpoint are returned by the <a href="ref:post_getaccountoverview" target="_blank">Get Account Overview</a> endpoint only after several seconds have elapsed.

Load limit and velocity response

If the payment violates load or velocity limits, this endpoint returns status: 26 with limit_error, limit_id, and limit_response_code values. Use the limit_id for troubleshooting the load and velocity configuration. The limit_response_code values are enumerated in the <a href="ref:api-reference-limit-response-codes" target="_blank">Limit Response Codes</a> table.

Duplicate requests

When this endpoint returns status_code: 24 (Duplicate transaction) because the same transactionId was already used successfully for Create Payment, response_data contains the same fields as a successful response (status_code: 0): payment_trans_id, transaction_id, old_balance, new_balance, fee_amount, and hold_id. Use those values to update your records without a separate lookup. This is especially useful when a prior call timed out after the payment was committed: retrying with the same transactionId recovers the original result.

Consult the <a href="doc:creating-a-payment" target="_blank">Creating a Payment</a> guide for instructions on using this endpoint.

post/createPayment

Request

  • Base URL
    api-{corename}.{env}.gpsrv.com/intserv/4.0/ (relative, and the document’s source URL is not known)
  • URL
    api-{corename}.{env}.gpsrv.com/intserv/4.0/createPayment
  • Auth
    none declared

Request body application/x-www-form-urlencoded

apiLoginstring required

Web service username, as provided by SoFi Tech Solutions. Pattern: Max 50 characters Example: "AbC123-9999"

apiTransKeystring required

Web service password, as provided by SoFi Tech Solutions. Pattern: Max 15 characters Example: "4sb62fh6w4h7w34g"

transactionIdstring required

Supply a globally unique ID to identify this endpoint request ("transaction"). Might be used for <a href="ref:idempotency#endpoints-that-use-transactionid-for-idempotency" target="_blank">idempotency</a>. Pattern: Maximum 60 characters Example: "9845dk-39fdk3fj3-4483483478"

accountNostring required

The <glossary:PRN> or <glossary:PAN> of the account. Pattern: PAN or PRN Example: "074103447228"

amountnumber float required

Currency amount as a whole or decimal amount. Pattern: Positive integer or decimal number Example: 100.00, 100, or 100.73

typestring required

The transaction type (otype) for the payment. Use the values provided by SoFi Tech Solutions for your program. Pattern: 2-character alphanumeric Example: "RL"

descriptionstring nullable

Description for the transaction. If type is an otype that was custom-configured for your program, the description for that otype might override the description you provide here, depending on your setup with SoFi Tech Solutions. Pattern: 1–40 alphanumeric characters, including punctuation Example: "One-time payroll load."

locationstring nullable

Unique location identifier (location) as returned by the <a href="ref:post_createlocation" target="_blank">Create Location</a> endpoint. This value is also returned by the <a href="ref:post_getlocations" target="_blank">Get Locations</a> endpoint depending on the value of locationType when the location was created:

  • 0 or 2 — Returned in the location_id field
  • 1 — Returned in the provider_specified_id field

Pattern: Integer if locationType: 0 or locationType: 2; max 15 characters if locationType: 1 Example: "a455-3483"

locationType0 | 1 | 2

Type of ID in location:

  • 0 — SoFi Tech Solutions location ID
  • 1 — Partner location ID
  • 2 — Don't validate

Pattern: Integer Example: 0

providerAssessedFeenumber float nullable

Fee amount assessed by the provider. This value is passed to SoFi Tech Solutions only for informational purposes; passing this value does not assess the fee. Pattern: Monetary amount greater than 0. Example: 2.50

verifyOnly0 | 1 nullable

Pass 1 to test the endpoint data without creating a transaction. Pattern: Integer Example: 0

merchantIdstring nullable

Load partners only. Identifier for the merchant that loaded the card. Pattern: Max 50 alphanumeric characters Example: "R12573L123"

partnerstring nullable

Load partners only. Partner providing the load request. Pattern: Max 50 alphanumeric and <a href="ref:api-reference-special-characters#international-characters" target="_blank">international</a> characters Example: "CardLoader Inc"

retailChainstring nullable

Load partners only. Name of the retail chain where the card was loaded. Pattern: Max 50 alphanumeric <a href="ref:api-reference-special-characters#international-characters" target="_blank">international</a> characters Example: "GroceryMart"

retailSaleTransactionKeystring nullable

Load partners only. Identifier for the retail load transaction. Pattern: Max 50 alphanumeric characters Example: "12345abcdef"

storeAddress1string nullable

Load partners only. First line of the retail store address where the card was loaded. Pattern: 4–40 alphanumeric <a href="ref:api-reference-special-characters#international-characters" target="_blank">international</a> characters plus <a href="ref:api-reference-special-characters#address-symbols" target="_blank">address symbols</a>. Example: 123 Elm St

storeAddress2string nullable

Load partners only. Second line of the retail store address where the card was loaded. Pattern: Max 30 alphanumeric <a href="ref:api-reference-special-characters#international-characters" target="_blank">international</a> characters plus <a href="ref:api-reference-special-characters#address-symbols" target="_blank">address symbols</a> Example: Ste 700

storeCountystring nullable

Load partners only. The country where the store is located. Three-digit UN M49 code, such as 840 for USA, 124 for Canada, 484 for Mexico, 170 for Colombia. Pattern: 3-digit numeric string Example: 840

storeLatitudestring nullable

Load partners only. Latitude for the retail store where the card was loaded. Pattern: Positive or negative float, no limit on decimal places Example: 40.57297941556069

storeLongitudestring nullable

Load partners only. Longitude for the retail store where the card was loaded. Pattern: Positive or negative float, no limit on decimal places Example: -111.89920138637734

storeNamestring nullable

Load partners only. Name of the retail store where the card was loaded. Pattern: Max 50 alphanumeric and <a href="ref:api-reference-special-characters#international-characters" target="_blank">international</a> characters. Example: "Main Street GroceryMart"

storeNumberstring nullable

Load partners only. Identifier for the retail store where the card was loaded. Pattern: Max 50 alphanumeric <a href="ref:api-reference-special-characters#international-characters" target="_blank">international</a> characters Example: "13459284"

storeTransactionDatestring date-time nullable

Load partners only. Date that the card was loaded. Pattern: YYYY-MM-DD hh:mm:ss Example: 2021-11-14 13:23:04

storeCitystring nullable

Load partners only. City for the retail store where the card was loaded. Pattern: Max 30 alphanumeric and <a href="ref:api-reference-special-characters#international-characters" target="_blank">international</a> characters plus <a href="ref:api-reference-special-characters#city-symbols" target="_blank">city symbols</a> Example: Salt Lake City

storeStatestring nullable

Load partners only. State or province for the retail store where the card was loaded. Pattern: 2 ASCII letters or <a href="ref:api-reference-special-characters#international-characters" target="_blank">international</a> characters</a> Example: UT

storeZipCodestring nullable

Load partners only. Zip code for the retail store where the card was loaded. Pattern: 12345, 12345-1234, or K1A-1A1 Example: "84121"

holdAmountnumber float nullable

Amount to hold. To hold the entire payment amount, pass the same value as in amount. Pattern: Positive integer or decimal number Example: 100.00, 100, or 100.73

holdExpirationDateTimestring date-time nullable

Date-time to expire the hold. Pattern: YYYY-MM-DD hh:mm:ss Example: 2021-11-14 13:23:04

holdDescriptionstring nullable

Description for the hold. Pattern: Max 80 alphanumeric characters, including punctuation Example: "One time payroll load."

holdExternalIdstring nullable

External identifier for a hold. Pattern: Max 60 alphanumeric characters Example: "45348bacd483348"

referenceIdstring nullable

Network identifier for <glossary:RTP> payments. Pattern: Max 35 alphanumeric characters Example: "20230805021000021P1BRJPM00040034610"

originatorNamestring nullable

Debtor (individual or company) name for RTP payments. Pattern: Max 140 characters Example: "John Doe"

receiverNamestring nullable

Creditor (individual or company) name for RTP payments. Pattern: Max 140 characters Example: "Jane Smith"

Example request

{
  "apiLogin": "AbC123-9999",
  "apiTransKey": "4sb62fh6w4h7w34g",
  "transactionId": "123e4567-e89b-12d3-a456-426614174000",
  "accountNo": "074103447228",
  "amount": 25.5,
  "description": "One-time payroll load.",
  "location": "a455-3483",
  "providerAssessedFee": 2.5,
  "storeZipCode": "84121",
  "holdAmount": 25.5,
  "holdExpirationDateTime": "2017-01-01 13:00:00",
  "holdDescription": "One time payroll load.",
  "holdExternalId": "45348bacd483348",
  "referenceId": "20230805021000021P1BRJPM00040034610",
  "originatorName": "John Doe",
  "receiverName": "Jane Smith"
}

Response

status_codeinteger nullable required

The response status code. May return a string for some statuses.

statusstring nullable required

The condition of a process or response

processing_timenumber float nullable required

The time elapsed in processing the transaction

system_timestampstring date-time nullable required

A system generated timestamp

rtokenstring nullable required

A system-generated ID used for tracking

errorsstring[] nullable

Changes

No recorded changes to this operation across all 2 revisions of this API.