Transfer in — prepare

This API is used to prepare the charge of a saved card through the SoftPoint iframe (3DS / Visa DCAP).

It returns a transfer_intent (valid 30 minutes), the gateway access_token and the payment object. Load the iframe with gateway, call submitPayment with payment, and send the iframe transaction_id with the transfer_intent to Transfer in — complete.

Note: Requires the Idempotency-Key header: the same key and body within 24 hours return the same intent; the same key with a different body returns 409. Amounts are in cents.

URL

{{interface_url}}/{{version}}/customers/{{customer_id}}/transfers/in/prepare

Method

POST

Headers

Authorization: Bearer {access_token} (or Api-Key), Idempotency-Key: {unique value per operation}

Request Parameters

FieldTypeRequiredDescription
payment_method_idIntegerYesA saved card of the customer.
amountIntegerYesAmount, in cents.
currencyStringNoDefault USD.

URL Parameters

ParameterRequired/OptionalTypeDescription
customer_idRequiredIntegerOur customer ID (id returned by Create customer).

Example Request (cURL)

curl --location --request POST '{{interface_url}}/{{version}}/customers/{{customer_id}}/transfers/in/prepare' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{access_token}}' \
--header 'Idempotency-Key: {{$guid}}' \
--data '{
  "payment_method_id": 90311,
  "amount": 5000,
  "currency": "USD"
}'

Example Response (JSON) — 200

{
  "transfer_intent": "eyJpdiI6...",
  "expires_at": "2026-11-05T18:46:18Z",
  "preview": {
    "location_id": 279685,
    "amount": 5000,
    "service_fee_percent": 3,
    "service_fee_amount": 150,
    "net_amount": 4850,
    "currency": "USD"
  },
  "gateway": {
    "location_id": 279685,
    "access_token": "eyJ0eXAiOiJKV1Qi...",
    "environment": "sandbox"
  },
  "payment": {
    "process_type": "sale",
    "amount": "50.00",
    "currency_iso": "USD",
    "card_token": "GRYfiyggFSBV0670",
    "send_dcap": 1,
    "orderid": "CT-48213-20261105181618"
  }
}

Error Responses

Format: { "error": { "code", "name", "message", "details" } }

StatusErrorWhen
400idempotency_key_requiredMissing Idempotency-Key header.
409idempotency_key_conflictKey reused with a different body.
404payment_method_not_foundNot a saved card of this customer.
422processor_configuration_not_foundThe card's location has no card processor.
502gateway_unavailableThe gateway did not answer. Retry with the same key.

Path Params
string
required
string
required
Body Params
Headers
string

A new key per attempt. Repeating the same key + body returns the same result.

Response

Language
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json