# eftpos for Unified Payments API To accept eftpos payments, you must request a payment using card details or tokenized card data. Checkout.com prioritizes routing your transaction through eftpos when you use a co-branded card. If routing to eftpos fails, the transaction falls back to the signature scheme. ## Request a payment Call the [Request a payment](https://api-reference.checkout.com/tag/Payments/#operation/requestAPaymentOrPayout) endpoint: > **Note** > > Eftpos is a single message system, so it does not support delayed or partial capture. Always set `capture` to `true` in your payment request. **Live** `POST` `https://{prefix}.api.checkout.com/payments/` **Sandbox** `POST` `https://{prefix}.api.sandbox.checkout.com/payments/` ### Request example **Full card details** ```json { "source": { "type": "card", "number": "4873400000000024", "expiry_month": 12, "expiry_year": 2027 }, "3ds": { "enabled": true, "attempt_n3d": true }, "amount": 1000, "capture": true, "currency": "AUD", "payment_type": "Regular" } ``` **Tokenized card details** ```json { "source": { "type": "token", "token": "tok_4gzeau5o2uqubbk6fufs3m7p54" }, "amount": 1000, "capture": true, "currency": "AUD", "payment_type": "Regular" } ``` When you receive a `payment_captured` webhook, it indicates that the transaction completed successfully. --- ## Process merchant-initiated transactions You can process merchant-initiated transactions (MITs) to store your customer's card details and use them for future payments. Supported MIT transactions include: - Recurring payments - Installment payments - Unscheduled payments ### Recurring payments You can process recurring payments using eftpos. For example, to charge a subscription service. 1. Perform an initial cardholder-initiated transaction (CIT) to store the debit card details. For requirements, see [Store card details during an initial recurring transaction](https://www.checkout.com/docs/payments/accept-payments/pay-with-stored-card-details/recurring-payments-with-stored-card-details.md#Store_the_card_details_during_the_initial_transaction).
Provide `"payment_type": "Recurring"`. 2. Process subsequent payments using any previous payment ID. For requirements, see [Request a payment in a subsequent MIT](https://www.checkout.com/docs/payments/accept-payments/pay-with-stored-card-details/recurring-payments-with-stored-card-details.md#Request_a_payment_in_a_subsequent_MIT). #### Initial request example ```json { "source": { "type": "token", "token": "tok_4gzeau5o2uqubbk6fufs3m7p54" }, "amount": 6500, "currency": "AUD", "payment_type": "Recurring", "capture": true, "merchant_initiated": false, "3ds": { "enabled": true, "challenge_indicator": "challenge_requested_mandate" } } ``` #### Subsequent request example ```json { "source": { "type": "token", "token": "tok_4gzeau5o2uqubbk6fufs3m7p54" }, "amount": 6500, "currency": "AUD", "payment_type": "Recurring", "merchant_initiated": true, "previous_payment_id": "pay_y3oqhf46bzujizoaad9dsdz2vw", "3ds": { "enabled": true, "challenge_indicator": "challenge_requested_mandate" } } ``` --- ## Get payment details After you've requested the payment, you can use the `id` returned in the payment response to retrieve details about the payment. For more information, see [Get payment details](https://www.checkout.com/docs/payments/manage-payments/get-payment-details.md). --- ## Refund a payment Eftpos supports full and partial refunds. You can process refunds using the [Dashboard](https://dashboard.checkout.com/) or the [Refund API](https://www.checkout.com/docs/payments/manage-payments/refund-a-payment.md). --- ## Void a payment Eftpos does not support voids, because it's a single message system that always uses auto-capture. --- ## Test eftpos payments In Sandbox: 1. Create a test payment request. 2. Set `source.number` to any of the cards in the following table, depending on the outcome you want to simulate: **Approved cards** | PAN | Scheme | Issuer | Eftpos code | Eftpos meaning | | --- | --- | --- | --- | --- | | `4065871023035361` | Visa | CommBank | `00` | Approved | | `4560041024036897` | Visa | ANZ | `00` | Approved | | `4089671025038427` | Visa | Westpac | `00` | Approved | Any PAN not listed will also return code `00` (Approved) via the default approval scenario. **Declined cards** | PAN | Scheme | Issuer | Eftpos code | Eftpos meaning | | --- | --- | --- | --- | --- | | `4560041000000172` | Visa | ANZ | `01` | Refer to card issuer | | `4622391001001703` | Visa | ANZ | `05` | Do not honour | | `5121271002003234` | Mastercard | CommBank | `05` | Do not honour | | `5280131003004762` | Mastercard | CommBank | `12` | Invalid transaction | | `4089671004006296` | Visa | Westpac | `12` | Invalid transaction | | `4239531005007827` | Visa | Westpac | `14` | Invalid card number | | `4026081006009353` | Visa | BOQ | `15` | No such issuer | | `4349681007010886` | Visa | BOQ | `30` | Format error | | `4337701008012410` | Visa | Bendigo | `36` | Restricted card | | `4017951009013944` | Visa | NAB | `36` | Restricted card | | `4639251010015477` | Visa | NAB | `41` | Lost card | | `4365311011017003` | Visa | Suncorp | `41` | Lost card | | `4564301012018539` | Visa | Suncorp | `43` | Stolen card | | `5327371013020060` | Mastercard | CommBank | `51` | Not sufficient funds | | `4645791014021593` | Visa | ANZ | `51` | Not sufficient funds | | `4239541015023128` | Visa | Westpac | `57` | Transaction not permitted to cardholder | | `4041371016024653` | Visa | ASL | `57` | Transaction not permitted to cardholder | | `4054971017026187` | Visa | ASL | `57` | Transaction not permitted to cardholder | | `4097711018027712` | Visa | ASL | `59` | Suspected fraud | | `4588581019029249` | Visa | BOQ | `61` | Exceeds withdrawal amount limits | | `5188681020030771` | Mastercard | Bendigo | `61` | Exceeds withdrawal amount limits | | `5367631021032303` | Mastercard | CommBank | `96` | System malfunction | | `4336160260338917` | Visa | Westpac | `96` | System malfunction | ### Test 3DS flows Use any of the following card numbers to test the corresponding 3DS flow: | PAN | Network | 3DS flow | | --- | --- | --- | | `6086989378570194` | eftpos | Successful authentication | | `6086988633666318` | eftpos | 1. Challenge required
2. Not authenticated | | `6086988421777772` | eftpos | 1. Challenge required
2. Successful authentication | | `6086980356182698` | eftpos | Authentication rejected | | `6086984931155062` | eftpos | Could not perform authentication | | `6086984575754667` | eftpos | Not authenticated | | `5430489823580331` | eftpos / Mastercard | Successful authentication | | `5430485154592739` | eftpos / Mastercard | 1. Challenge required
2. Could not perform authentication | | `5430483517162498` | eftpos / Mastercard | 1. Challenge required
2. Successful authentication | | `5327370185430933` | eftpos / Mastercard | 1. Successful authentication
2. Payment captured | | `5430489205507142` | eftpos / Mastercard | Authentication rejected | | `5430481958773757` | eftpos / Mastercard | Could not perform authentication | | `5430489766358513` | eftpos / Mastercard | Not authenticated | | `4509491723526413` | eftpos / Visa | Successful authentication | | `4509490198443864` | eftpos / Visa | 1. Challenge required
2. Attempts processing performed

Authentication was attempted, but the cardholder was not fully authenticated. | | `4509497522131255` | eftpos / Visa | 1. Challenge required
2. Successful authentication | | `4065871023035361` | eftpos / Visa | 1. Challenge required
2. Successful authentication
3. Payment captured | | `4509490106329676` | eftpos / Visa | Authentication rejected | | `4509493256687828` | eftpos / Visa | Could not perform authentication | | `4509492773429946` | eftpos / Visa | Not authenticated |