# Continue taking payment after the initial attempt. Submit additional data for payment sessions that require further action after using attempt-payment. Note that our SDKs handle this step automatically. Endpoint: POST /payment-sessions/continue-payment Version: 1.1.0 Security: publicApiKeyAuth ## Header parameters: - `Account` (string) The linked accountId (use this when operating on payments related to a linked account) Example: "ac_3fe8398f-8cdb-43a3-9be2-806c4f84c327" ## Request fields (application/json): - `clientSecret` (string, required) The client secret of the payment session. Example: "ps_01FCTS1XMKH9FF43CAFA4CXT3P_secret_b83f2653-06d7-44a9-a548-5825e8186004" - `threeDs` (object) Supply the result of a 3ds fingerprint/challenge step. One of fingerprint or challengeResult must be provided. - `threeDs.fingerprint` (string,null) Base64-encoded string returned after the 3DS fingerprinting step. Example: "ewogICJ0aHJlZURTU2VydmVyVHJhbnNJRCI6ICI4ZjAxNzdhNC0yY2VkLTQ4NjUtODViNy1iYWQ5YmZhMzk4ZDIiLAogICJ0aHJlZURTQ29tcEluZCI6IlkiCn0=" - `threeDs.challengeResult` (string,null) Base64-encoded string returned after the 3DS challenge step. Example: "ewogICJ0aHJlZURTU2VydmVyVHJhbnNJRCI6ICJkNDFmNjIwMC0wNDM1LTQ5ZWUtYWExMS1mMzY2ZjA2NjFjNmYiLAogICJ0cmFuc1N0YXR1cyI6IlkiCn0=" ## Response 200 fields (application/json): - `id` (string) The unique identifier for the payment Example: "ps_01FCTS1XMKH9FF43CAFA4CXT3P" - `amount` (integer) The amount of the sale/purchase in minor digits Example: 500 - `currency` (string) The ISO currency code Example: "GBP" - `customerEmail` (string,null) The email address of the customer Example: "example@mail.com" - `enabledPaymentMethods` (array) List of payment method types that can be used to complete payment for this PaymentSession. Card is the default and will allow all card schemes configured on your account (Visa, Mastercard etc.). Apple Pay & Google Pay are classified as Card types and will be displayed provided you have confogured them properly. Enum: "Card" - `paymentMethod` (object,null) - `paymentMethod.type` (string) Enum: "Card" - `paymentMethod.tokenizedDetails` (object,null) The details of any tokenized payment method used - `paymentMethod.tokenizedDetails.id` (string) The Id of the tokenized payment method Example: "pmt_01G0EYVFR02KBBVE2YWQ8AKMGJ" - `paymentMethod.tokenizedDetails.stored` (boolean) Flag to indicate whether or not the tokenized payment method was stored (against the customer) Example: true - `paymentMethod.card` (object,null) Details of the card used - `paymentMethod.card.scheme` (string) Enum: "Visa", "Mastercard", "Amex" - `paymentMethod.card.last4` (string) The last 4 digits of the card used Example: "4242" - `paymentMethod.wallet` (object,null) Details of the wallet used (Google Pay / Apple Pay) - `paymentMethod.billingAddress` (object,null) - `paymentMethod.billingAddress.firstName` (string) The first name of the customer Example: "Nathan" - `paymentMethod.billingAddress.lastName` (string) The last name of the customer Example: "Jones" - `paymentMethod.billingAddress.lineOne` (string) First line of the address Example: "123 Test Street" - `paymentMethod.billingAddress.lineTwo` (string) Second line of the address Example: "456 Lane" - `paymentMethod.billingAddress.city` (string) The address city/town Example: "Manchester" - `paymentMethod.billingAddress.country` (string, required) The two-character ISO country code Example: "GB" - `paymentMethod.billingAddress.postalCode` (string, required) The postal code/zip of the address Example: "SP4 7DE" - `paymentMethod.billingAddress.region` (string,null) The state/county/province/region Required if the address is in the US/Canada and must be a 2-character ISO state/province code Example: "NY" - `paymentMethod.checks` (object,null) - `paymentMethod.checks.avsResponseCode` (string,null) The response from Address Verification Service (AVS) that determines the match or partial match of the customer's billing address. Possible values: - A - Partial Match (street address matches, postal/zip code does not match) - B - Partial Match (street address matches, postal/zip code not verified) - C - No Match (street address and postal/zip code not verified) - D - Full Match (street address and postal/zip code match) - F - Full Match (street address and postal/zip code match) - G - Not Supported (address information not verified) - I - No Match (address information not verified) - M - Full Match (street address and postal/zip code match) - N - No Match (neither street address not postal/zip code match) - P - Partial Match (postal/zip code matches, street address not verified) - R - System Unavailable (unable to perform verification) - S - Not Supported (AVS currently not supported by issuer) - U - System Unavailable (address information not verified due to no data from issuer) - W - Partial Match (postal/zip code matches, street address does not match) - X - Full Match (street address and postal/zip code match) - Y - Full Match (street address and postal/zip code match) - Z - Partial Match (postal/zip code matches, street address does not match) Example: "Y" - `paymentMethod.checks.cvvResponseCode` (string,null) The response from the check on the Card Verification Value (CVV/CVV2/CVC) Possible values: - M - Match (Visa and MC) - Y - Match (Amex) - N - No Match - P - Not Processed - S - Should be on card - U - Issuer does not participate Example: "M" - `status` (string) Enum: "PendingPayment", "PendingAction", "Processing", "Approved", "Captured", "Voided" - `lastError` (string,null) The most recent error when attempting to Pay. Note that we may add further values without notice. Enum: "insufficient_funds", "declined_do_not_honour", "invalid_card_number", "cvv2_failure", "restricted_card", "blacklisted_card", "blacklisted_bin", "blacklisted_country", "blacklisted_ip", "risk_declined", "security_violation", "expired_card", "gateway_reject", "suspected_fraud", "contact_issuer", "not_permitted", "invalid_account", "pickup_card", "stolen_card", "issuer_decline", "closed_account", "account_not_activated", "limit_exceeded", "withdrawal_limit_exceeded", "blocked_by_cardholder", "3ds_authentication_failure", "3ds_cardholder_not_participating", "3ds_authentication_required", "payment_method_option_amex_disabled", "cvc_required", "payment_method_not_available", "payment_method_option_amex_not_available", "credit_card_not_permitted", "issuer_error", "system_error", "unknown_error" - `requiredAction` (object,null) The action to take (if any) in order to authorise the payment. This will be non-null if the customer's bank challenge the payment (i.e. 3DS) Example: {"type":"Redirect","url":"https://ryftpay.com/3ds-auth"} - `requiredAction.type` (string) The type of action Enum: "Redirect", "Identify", "Challenge" - `requiredAction.url` (string,null) The url to redirect to (if the requiredAction has type Redirect) Example: "https://ryftpay.com/3ds-auth" - `requiredAction.identify` (object,null) - `requiredAction.challenge` (object,null) - `returnUrl` (string) URL to send the customer back to after a redirection (e.g. 3DS). We will always append the paymentSessionId under query param ps. Example: "https://ryftpay.com/checkout?orderId=123&ps=ps_01FCTS1XMKH9FF43CAFA4CXT3P" - `createdTimestamp` (integer) The epoch timestamp (seconds) when the payment was created Example: 1470989538 - `lastUpdatedTimestamp` (integer) The epoch timestamp (seconds) when the payment was last updated Example: 1470989538 ## Response 400 fields (application/json): - `requestId` (string) Example: "b83f2653-06d7-44a9-a548-5825e8186004" - `code` (string) Example: "400" - `errors` (array) - `errors.message` (string) Example: "Required property 'amount' not found in JSON" ## Response 500 fields (application/json): - `requestId` (string) Example: "b83f2653-06d7-44a9-a548-5825e8186004" - `code` (string) Example: "400" - `errors` (array) - `errors.message` (string) Example: "Required property 'amount' not found in JSON"