Captures funds from a user's card.
This call synchronously attempts to capture funds from a user's card. The response to this message will return the result of that attempt. The combination of requestId
within the header and paymentIntegratorAccountId
is the idempotency key and uniquely identifies this transaction. All mutations on this transaction populate the requestId
value in their captureRequestId
field.
If the endpoint encounters an error while processing the request, the response body from this endpoint should be of type
.ErrorResponse
An example request looks like:
{
"requestHeader": {
"protocolVersion": {
"major": 1,
"minor": 0,
"revision": 0
},
"requestId": "G112YZH4XPDV88J",
"requestTimestamp": "1481907920000"
},
"paymentIntegratorAccountId": "SpeedyPaymentsIndia_INR",
"accountDetails": {
"card": {
"accountNumber": "4123456789101112",
"nameOnCard": "Example Customer",
"expiryMonth": "01",
"expiryYear": "20",
"cvn": "123"
}
},
"currencyCode": "INR",
"amount": "728000000",
"transactionDescription": "Movie ACB",
"merchantCategoryCode": "5815",
"addressVerificationData": {
"addressLine": ["2 Inner Ring Road"],
"localityName": "Bangalore",
"administrativeAreaName": "Karnataka",
"postalCodeNumber": "560071",
"countryCode": "IN"
},
"additionalTransactionProcessingOptions": {
"userSelectedProcessingNetworkTypeNotApplicable": {},
"electronicCommerceIndicatorNotApplicable": {},
"threeDSecureNotAppplicable": {},
"storedCredentialTransactionInformationNotApplicable": {}
}
}
An example response looks like:
{
"responseHeader": {
"responseTimestamp": "1481907920760"
},
"paymentIntegratorCaptureId": "36be1a5d-ff21-455d-8dba-e3c4306e193e",
"cardNetworkResult": {
"rawResult": {
"scope": "VISA",
"rawCode": "00"
},
"authorizationCode": "123456"
},
"addressVerificationResult": {
"result": {
"rawAvsResult": "M",
"addressLine": "MATCH",
"localityName": "MATCH",
"administrativeAreaName": "MATCH",
"postalCodeNumber": "MATCH",
"countryCode": "MATCH",
"nameOnCard": "MATCH"
}
},
"cvnResult": "MATCH",
"result": "SUCCESS",
"cardMetadata": {
"issuerName": "exampleissuer",
"issuingCountryCode": "IN",
"networks": ["VISA"],
"cardType": "CREDIT_CARD"
},
"additionalTransactionProcessingResult": {
"storedCredentialInformationSuccessful": {
"networkTransactionIdentifier": "cdf04f0d-44a8-4b5d-bf63-440e9194db33"
}
}
}
HTTP request
POST https://www.integratorhost.example.com/integrator-base-path/v1/payment-integrator-card-fop-api/capture
Request body
The request body contains data with the following structure:
JSON representation |
---|
{ "requestHeader": { object ( |
Fields | |
---|---|
request |
REQUIRED: Common header for all requests. |
payment |
REQUIRED: This is the payment integrator account identifier that identifies contractual constraints around this transaction. |
account |
REQUIRED: Data about the user's payment card. |
currency |
REQUIRED: ISO 4217 3-letter currency code. |
amount |
REQUIRED: The amount of the purchase, in micros of the currency unit. |
transaction |
REQUIRED: This is the description of the transaction that can be put on the customer's statement. This format can be changed without notice and must never be parsed. This field is classified as SPII because it can contain sensitive information, for example one-time password. |
merchant |
REQUIRED: This is the ISO 18245 merchant category code (MCC) identifying the type of goods/services being purchased by the user. |
address |
OPTIONAL: The user's billing address to be verified by AVS. |
additional |
REQUIRED: Used to specify additional details about a transaction that might not apply to every region or situation. This is used to enable particular features, such as 3DS, specify details about how a transaction should be processed, or provide additional information that can be used to authenticate the transaction. If these fields are specified then they should be applied for the transaction. |
Response body
This method supports multiple return types. For additional information about what 4XX or 5XX HTTP status code to return with an ErrorResponse
, consult the ErrorResponse
object and HTTP status codes documentation.
Possible response messages | |
---|---|
HTTP 200 Status |
|
HTTP 4XX / 5XX Status |
|
CaptureResponse
Response object for the payment integrator hosted card-fop-v1.capture method.
JSON representation |
---|
{ "responseHeader": { object ( |
Fields | |
---|---|
response |
REQUIRED: Common header for all responses. |
payment |
OPTIONAL: This identifier is specific to the integrator and is generated by the integrator. The integrator identifies this capture in their system by this identifier. For convenience, this identifier is included with in the remittance details |
card |
REQUIRED: The result of issuing the capture on the card network. |
address |
REQUIRED: The result of verifying the address fields sent in the request. |
cvn |
REQUIRED: The result of verifying the CVN sent in the request. If the CVN was not set on the request, this value should be |
result |
REQUIRED: Result of this call. |
card |
REQUIRED: Optional metadata about the card that may be useful for future processing and debugging. |
additional |
REQUIRED: Information resulting from additional processing options sent in the request. |
CaptureResultCode
Result codes for the capture
method.
Enums | |
---|---|
CAPTURE_RESULT_CODE_UNSPECIFIED |
Do not ever set this default value! |
SUCCESS |
card-fop-v1.capture notification was successfully processed. |
CARD_ACTIVITY_EXCEEDS_AMOUNT_LIMIT |
The recent activity on the user's card has exceeded the total amount allowed by the issuer. |
CARD_ACTIVITY_EXCEEDS_COUNT_LIMIT |
The recent activity on the user's card has exceeded the number of transactions allowed by the issuer. |
CARD_AUTHENTICATION_FAILED |
The network specified that the card authentication failed. |
CARD_EXPIRATION_DATE_INVALID |
The expiration date on the card was invalid. |
CARD_EXPIRED |
The card has expired. |
CARD_LOST_OR_STOLEN |
The card has been lost or stolen. This includes 'Pickup' responses from the network. |
CARD_NOT_ACTIVATED |
The card has not been activated. Also referred to as ’Blocked, first used’. |
CARD_NUMBER_INVALID |
The card number is invalid. |
CARD_REQUIRES_RESERVE_CAPTURE |
This card does not support the Funds Transfer (single message) protocol. Instead use use the Reserve card-fop-v1.capture (dual message) service. |
CUSTOMER_INFO_INVALID |
The provided customer info is invalid. |
CVN_MISMATCH |
The transaction was declined because the CVN did not match. |
DO_NOT_HONOR |
The network returned "Do not honor". |
INSUFFICIENT_FUNDS |
Insufficient funds on the user's account. |
ISSUER_DECLINED |
The transaction was declined by the issuer. |
REVOCATION_OF_AUTHORIZATION |
The network returned "Revocation of authorization order". |
STOP_PAYMENT |
The network returned "stop payment". |
SUSPECTED_FRAUD |
The issuer suspects that this transaction is fraud. |
TRANSACTION_COULD_NOT_BE_ROUTED |
The Network could not route this transaction for processing. |
TRANSACTION_UNDER_AMOUNT_LIMIT |
Requested amount does not meet the minimum per-transaction amount. |
TRANSACTION_EXCEEDS_AMOUNT_LIMIT |
Requested amount exceeds the maximum per-transaction limit. |
TRANSACTION_INVALID |
The transaction is invalid. |
TRANSACTION_NOT_ALLOWED |
This transaction is not allowed in this context (e.g. country). |
RECURRING_PAYMENT_NOT_SUPPORTED |
An attempt was made to charge for a recurring transaction, but it is not supported. |
NETWORK_TIMEOUT |
There was a timeout while attempting to process the card. |
RESTRICTED_CARD |
The card is restricted from making this type of purchase. |
CARD_AUTHENTICATION_EXPIRED |
The card authentication has expired. |
STRONG_CUSTOMER_AUTHENTICATION_REQUIRED |
The customer must complete Strong Customer Authentication (SCA), and the proof of authentication must be provided along with the payment authorization request, for this transaction to succeed. |