API

Pay2.House

Criar chave API

Para criar uma chave API, acesse o link: https://pay2.house/keys/prepare

Autorização de solicitações

Pay2.House utiliza JSON Web Tokens (JWT) para autorizar solicitações à API.

Para obter mais informações sobre JSON Web Tokens (JWT), recomenda-se consultar o guia sobre tokens JWT.

Para trabalhar com a API, você precisará instalar uma biblioteca que permita gerar e processar JSON Web Tokens (JWT). Recomenda-se usar a seguinte biblioteca: PHP-JWT

<?php 

    
use Firebase\JWT\JWT;
    use 
Firebase\JWT\Key;
    use 
phpseclib3\Crypt\RSA;


    function 
create_token($data = [])
    {
        
$private_key    = file_get_contents('pay2_test_private.pem');
        
$current_time   = time();

        
$payload = [
            
'iss'   => 'YOUR_KEY_ID', 
            
'iat'   => $current_time,
            
'data'  => $data
        
]; 

        return 
JWT::encode($payload, openssl_pkey_get_private($private_key), 'RS256');
    }

?>

Criar pagamento

Este método da API permite inicializar um novo pagamento para efetuar um pagamento através do serviço de pagamento Pay2.House.

Execute uma solicitação POST para o seguinte endereço:

Parâmetros da resposta:

<?php 


    
function create_payment($request_body = [])
    {
        
$curl = curl_init('https://pay2.house/api/create_payment');
        
curl_setopt($curl, CURLOPT_POST, TRUE);
        
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($request_body));
        
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
        
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
        
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
        
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
        
curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
        
        
$body = curl_exec($curl);
        
$info = curl_getinfo($curl);

        
curl_close($curl);

        if ( ! empty(
$info['http_code']) && $info['http_code'] === 200) {
            return 
json_decode($body, TRUE);
        }
    }


    
$sign_token = create_token([
        
'external_number'   => '10001',
        
'amount'            => 1000,
        
'currency_code'     => 'USD',
        
'payment_method'    => 'ALL',
        
'merchant_id'       => 'SN6829106944',
        
'description'       => 'Payment for Merchant.Name',
        
'deadline_seconds'  => 600,
        
'handling_fee'      => 10,
        
'payer_email'       => '[email protected]',
        
'return_url'        => 'https://mysite.com/result',
        
'cancel_url'        => 'https://mysite.com/cancel',
    ]);

    
    
$api_response = create_payment(['sign_token' => $sign_token, 'api_key' => 'YOUR_API_KEY']);
    if ( ! empty(
$api_response['approval_url'])) {
        
header('Location: ' . $api_response['approval_url'], TRUE, 302);
    }

?>

Informações do pagamento

Este método da API permite solicitar informações sobre seu pagamento no sistema de pagamentos Pay2.House.

Execute uma solicitação POST para o seguinte endereço:

Parâmetros da resposta:

<?php 


    
function show_payment_details($request_body = [])
    {
        
$curl = curl_init('https://pay2.house/api/show_payment_details');
        
curl_setopt($curl, CURLOPT_POST, TRUE);
        
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($request_body));
        
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
        
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
        
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
        
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
        
curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
        
        
$body = curl_exec($curl);
        
$info = curl_getinfo($curl);

        
curl_close($curl);

        if ( ! empty(
$info['http_code']) && $info['http_code'] === 200) {
            return 
json_decode($body, TRUE);
        }
    }


    
$sign_token = create_token([
        
'merchant_id'       => 'SN6829106938',
        
'invoice_number'    => 'IN9036982986'
    
]);

    
    
$api_response = show_payment_details(['sign_token' => $sign_token, 'api_key' => 'YOUR_API_KEY']);
    if ( ! empty(
$api_response['status'])) {

        if (
$api_response['status'] == 'success') {
            echo 
'Amount: ' . $api_response['amount'] . '<br />';
            echo 
'Fee: ' . $api_response['handling_fee'] . '<br />';
            echo 
'Currency Code: ' . $api_response['currency_code'] . '<br />';
        } else {
            echo 
'Error Code: ' . $api_response['code'] . '<br />';
            echo 
'Error Message: ' . $api_response['msg'] . '<br />';
        }
        
    } else {
        echo 
'Unknown Error';
    }

?>

Criar transferência

Este método da API permite inicializar uma nova transferência para uma conta interna no sistema Pay2.House.

Execute uma solicitação POST para o seguinte endereço:

Parâmetros da resposta:

<?php 


    
function transfer_create($request_body = [])
    {
        
$curl = curl_init('https://pay2.house/api/transfers/create');
        
curl_setopt($curl, CURLOPT_POST, TRUE);
        
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($request_body));
        
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
        
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
        
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
        
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
        
curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
        
        
$body = curl_exec($curl);
        
$info = curl_getinfo($curl);

        
curl_close($curl);

        if ( ! empty(
$info['http_code']) && $info['http_code'] === 200) {
            return 
json_decode($body, TRUE);
        }
    }


    
$sign_token = create_token([
        
'sender_account'    => 'P2U49984694',
        
'recipient_account' => 'P2U93380055',
        
'amount'            => 50,
        
'comment'           => 'Transfer of funds to the client\'s account.'
    
]);

    
    
$api_response = transfer_create(['sign_token' => $sign_token, 'api_key' => 'YOUR_API_KEY']);
    if ( ! empty(
$api_response['status'])) {

        if (
$api_response['status'] == 'success') {
            echo 
'Payment successfully processed.';
        } else {
            echo 
'Error Code: ' . $api_response['code'] . '<br />';
            echo 
'Error Message: ' . $api_response['msg'] . '<br />';
        }
        
    } else {
        echo 
'Unknown Error';
    }

?>

Informações da transferência

Este método da API permite obter informações detalhadas sobre a transferência, incluindo status, valor, data e hora de execução, bem como outros dados relacionados.

Execute uma solicitação POST para o seguinte endereço:

Parâmetros da resposta:

<?php 


    
function transfer_details($request_body = [])
    {
        
$curl = curl_init('https://pay2.house/api/transfers/details');
        
curl_setopt($curl, CURLOPT_POST, TRUE);
        
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($request_body));
        
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
        
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
        
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
        
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
        
curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
        
        
$body = curl_exec($curl);
        
$info = curl_getinfo($curl);

        
curl_close($curl);

        if ( ! empty(
$info['http_code']) && $info['http_code'] === 200) {
            return 
json_decode($body, TRUE);
        }
    }


    
$sign_token = create_token([
        
'transaction_number' => 'TN4395601712'
    
]);

    
    
$api_response = transfer_details(['sign_token' => $sign_token, 'api_key' => 'YOUR_API_KEY']);
    if ( ! empty(
$api_response['status'])) {
        
        if (
$api_response['status'] == 'success') {
            
            echo 
'Transaction Number: ' . $api_response['transaction_number'] . '<br />';
            echo 
'Status: ' . $api_response['transaction_status'] . '<br />';
            echo 
'Time Created: ' . $api_response['time_created'] . '<br />';
            echo 
'Date Created: ' . $api_response['date_created'] . '<br />';
            echo 
'Sender Account: ' . $api_response['sender_account'] . '<br />';
            echo 
'Recipient Account: ' . $api_response['recipient_account'] . '<br />';
            echo 
'Amount: ' . $api_response['amount'] . '<br />';
            echo 
'Fee Amount: ' . $api_response['fee_amount'] . '<br />';
            echo 
'Currency Code: ' . $api_response['currency_code'] . '<br />';
            echo 
'Payment Method: ' . $api_response['payment_method'] . '<br />';
            echo 
'Confirm Method:  ' . $api_response['confirm_method'] . '<br />';
            echo 
'Payment Type: ' . $api_response['payment_type'] . '<br />';
            echo 
'Transaction Type: ' . $api_response['transaction_type'] . '<br />';
            echo 
'Comment: ' . $api_response['comment'] . '<br />';
            echo 
'Error Message: ' . $api_response['error_message'] . '<br />';
            
        } else {
            echo 
'Error Code: ' . $api_response['code'] . '<br />';
            echo 
'Error Message: ' . $api_response['msg'] . '<br />';
        }

    } else {
        echo 
'Unknown Error';
    }

?>

Histórico de transferências

Este método da API permite solicitar uma lista de transações, fornecendo informações sobre todas as transferências realizadas.

Execute uma solicitação POST para o seguinte endereço:

Parâmetros da resposta:

<?php 


    
function get_transfers($request_body = [])
    {
        
$curl = curl_init('https://pay2.house/api/transfers');
        
curl_setopt($curl, CURLOPT_POST, TRUE);
        
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($request_body));
        
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
        
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
        
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
        
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
        
curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
        
        
$body = curl_exec($curl);
        
$info = curl_getinfo($curl);

        
curl_close($curl);

        if ( ! empty(
$info['http_code']) && $info['http_code'] === 200) {
            return 
json_decode($body, TRUE);
        }
    }


    
$sign_token = create_token([
        
'per_page'  => 10,
        
'page'      => 1,
        
'status'    => 'confirmed'
    
]);

    
    
$api_response = get_transfers(['sign_token' => $sign_token, 'api_key' => 'YOUR_API_KEY']);
    if ( ! empty(
$api_response['status'])) {

        if (
$api_response['status'] == 'success') {

            echo 
'Count Transactions: ' . $api_response['count'] . '<br />';
        
            if ( ! empty(
$api_response['transactions'])) {
                foreach(
$api_response['transactions'] AS $item) {
                    echo 
'----------------------------------------';
                    echo 
'Transaction Number: ' . $item['transaction_number'] . '<br />';
                    echo 
'Status: ' . $item['transaction_status'] . '<br />';
                    echo 
'Time Created: ' . $item['time_created'] . '<br />';
                    echo 
'Date Created: ' . $item['date_created'] . '<br />';
                    echo 
'Sender Account: ' . $item['sender_account'] . '<br />';
                    echo 
'Recipient Account: ' . $item['recipient_account'] . '<br />';
                    echo 
'Amount: ' . $item['amount'] . '<br />';
                    echo 
'Fee Amount: ' . $item['fee_amount'] . '<br />';
                    echo 
'Currency Code: ' . $item['currency_code'] . '<br />';
                    echo 
'Payment Method: ' . $item['payment_method'] . '<br />';
                    echo 
'Confirm Method:  ' . $item['confirm_method'] . '<br />';
                    echo 
'Payment Type: ' . $item['payment_type'] . '<br />';
                    echo 
'Transaction Type: ' . $item['transaction_type'] . '<br />';
                    echo 
'Comment: ' . $item['comment'] . '<br />';
                    echo 
'Error Message: ' . $item['error_message'] . '<br />';
                    echo 
'----------------------------------------';
                    echo 
'<br />';
                }
            } else {
                echo 
'No Transactions Found.';
            }
        } else {
            echo 
'Error Code: ' . $api_response['code'] . '<br />';
            echo 
'Error Message: ' . $api_response['msg'] . '<br />';
        }
        
    } else {
        echo 
'Unknown Error';
    }

?>

Obter lista de contas

Este método da API permite solicitar uma lista de todas as contas associadas à sua conta no sistema Pay2.House.

Execute uma solicitação POST para o seguinte endereço:

Parâmetros da resposta:

<?php 


    
function get_wallets($request_body = [])
    {
        
$curl = curl_init('https://pay2.house/api/wallets');
        
curl_setopt($curl, CURLOPT_POST, TRUE);
        
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($request_body));
        
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
        
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
        
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
        
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
        
curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
        
        
$body = curl_exec($curl);
        
$info = curl_getinfo($curl);

        
curl_close($curl);

        if ( ! empty(
$info['http_code']) && $info['http_code'] === 200) {
            return 
json_decode($body, TRUE);
        }
    }


    
$sign_token = create_token([
        
'delete_flag'   => 0,
        
'currency_code' => 'USD'
    
]);

    
    
$api_response = get_wallets(['sign_token' => $sign_token, 'api_key' => 'YOUR_API_KEY']);
    if ( ! empty(
$api_response['status'])) {

        if (
$api_response['status'] == 'success') {

            echo 
'Count Wallets: ' . $api_response['count'] . '<br />';
        
            if ( ! empty(
$api_response['wallets'])) {
                foreach(
$api_response['wallets'] AS $item) {
                    echo 
'----------------------------------------';
                    echo 
'Account Number: ' . $item['account_number'] . '<br />';
                    echo 
'Name: ' . $item['name'] . '<br />';
                    echo 
'Time Created: ' . $item['time_created'] . '<br />';
                    echo 
'Date Created: ' . $item['date_created'] . '<br />';
                    echo 
'Balance: ' . $item['balance'] . '<br />';
                    echo 
'Bonus: ' . $item['bonus'] . '<br />';
                    echo 
'Currency Code: ' . $item['currency_code'] . '<br />';
                    echo 
'Currency Symbol: ' . $item['currency_symbol'] . '<br />';
                    echo 
'Address TRC20: ' . $item['trc20_address'] . '<br />';
                    echo 
'----------------------------------------';
                    echo 
'<br />';
                }
            } else {
                echo 
'No Wallets Found.';
            }
        } else {
            echo 
'Error Code: ' . $api_response['code'] . '<br />';
            echo 
'Error Message: ' . $api_response['msg'] . '<br />';
        }
        
    } else {
        echo 
'Unknown Error';
    }

?>

Criar conta

Este método da API permite criar contas únicas que podem ser usadas para pagamentos e transações dentro do sistema Pay2.House.

Execute uma solicitação POST para o seguinte endereço:

Parâmetros da resposta:

<?php 


    
function wallet_create($request_body = [])
    {
        
$curl = curl_init('https://pay2.house/api/wallets/create');
        
curl_setopt($curl, CURLOPT_POST, TRUE);
        
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($request_body));
        
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
        
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
        
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
        
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
        
curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
        
        
$body = curl_exec($curl);
        
$info = curl_getinfo($curl);

        
curl_close($curl);

        if ( ! empty(
$info['http_code']) && $info['http_code'] === 200) {
            return 
json_decode($body, TRUE);
        }
    }


    
$sign_token = create_token([
        
'name'          => 'Your Wallet Name',
        
'currency_code' => 'USD'
    
]);

    
    
$api_response = wallet_create(['sign_token' => $sign_token, 'api_key' => 'YOUR_API_KEY']);
    if ( ! empty(
$api_response['status'])) {

        if (
$api_response['status'] == 'success') {
            echo 
'Wallet created successfully.';
        } else {
            echo 
'Error Code: ' . $api_response['code'] . '<br />';
            echo 
'Error Message: ' . $api_response['msg'] . '<br />';
        }
        
    } else {
        echo 
'Unknown Error';
    }

?>

Informações da conta

Este método da API permite solicitar informações sobre sua conta no sistema de pagamentos Pay2.House.

Execute uma solicitação POST para o seguinte endereço:

Parâmetros da resposta:

<?php 


    
function wallet_details($request_body = [])
    {
        
$curl = curl_init('https://pay2.house/api/wallets/details');
        
curl_setopt($curl, CURLOPT_POST, TRUE);
        
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($request_body));
        
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
        
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
        
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
        
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
        
curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
        
        
$body = curl_exec($curl);
        
$info = curl_getinfo($curl);

        
curl_close($curl);

        if ( ! empty(
$info['http_code']) && $info['http_code'] === 200) {
            return 
json_decode($body, TRUE);
        }
    }


    
$sign_token = create_token([
        
'account_number' => 'P2U49984694'
    
]);

    
    
$api_response = wallet_details(['sign_token' => $sign_token, 'api_key' => 'YOUR_API_KEY']);
    if ( ! empty(
$api_response['status'])) {
        
        if (
$api_response['status'] == 'success') {
            echo 
'Account Number: ' . $api_response['account_number'] . '<br />';
            echo 
'Name: ' . $api_response['name'] . '<br />';
            echo 
'Time Created: ' . $api_response['time_created'] . '<br />';
            echo 
'Date Created: ' . $api_response['date_created'] . '<br />';
            echo 
'Balance: ' . $api_response['balance'] . '<br />';
            echo 
'Bonus: ' . $api_response['bonus'] . '<br />';
            echo 
'Currency Code: ' . $api_response['currency_code'] . '<br />';
            echo 
'Currency Symbol: ' . $api_response['currency_symbol'] . '<br />';
            echo 
'Address TRC20: ' . $api_response['trc20_address'] . '<br />';
        } else {
            echo 
'Error Code: ' . $api_response['code'] . '<br />';
            echo 
'Error Message: ' . $api_response['msg'] . '<br />';
        }

    } else {
        echo 
'Unknown Error';
    }

?>

Obter extrato da conta

Este método da API permite obter um extrato detalhado da conta selecionada, incluindo informações sobre todas as transações e alterações de saldo.

Execute uma solicitação POST para o seguinte endereço:

Parâmetros da resposta:

<?php 


    
function wallet_statement($request_body = [])
    {
        
$curl = curl_init('https://pay2.house/api/wallets/statement');
        
curl_setopt($curl, CURLOPT_POST, TRUE);
        
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($request_body));
        
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
        
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
        
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
        
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
        
curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
        
        
$body = curl_exec($curl);
        
$info = curl_getinfo($curl);

        
curl_close($curl);

        if ( ! empty(
$info['http_code']) && $info['http_code'] === 200) {
            return 
json_decode($body, TRUE);
        }
    }


    
$sign_token = create_token([
        
'account_number' => 'P2U49984694'
    
]);

    
    
$api_response = wallet_statement(['sign_token' => $sign_token, 'api_key' => 'YOUR_API_KEY']);
    if ( ! empty(
$api_response['status'])) {
        
        if (
$api_response['status'] == 'success') {
            
header('Location: ' . $api_response['download_url'], TRUE, 302);
        } else {
            echo 
'Error Code: ' . $api_response['code'] . '<br />';
            echo 
'Error Message: ' . $api_response['msg'] . '<br />';
        }

    } else {
        echo 
'Unknown Error';
    }

?>

Obter lista de BIN

Este método da API permite obter uma lista de BIN disponíveis para emissão de cartões virtuais no sistema Pay2.House.

Execute uma solicitação POST para o seguinte endereço:

Parâmetros da resposta:

<?php 


    
function cards_bins($request_body = [])
    {
        
$curl = curl_init('https://pay2.house/api/cards/bins');
        
curl_setopt($curl, CURLOPT_POST, TRUE);
        
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($request_body));
        
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
        
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
        
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
        
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
        
curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
        
        
$body = curl_exec($curl);
        
$info = curl_getinfo($curl);

        
curl_close($curl);

        if ( ! empty(
$info['http_code']) && $info['http_code'] === 200) {
            return 
json_decode($body, TRUE);
        }
    }


    
$sign_token = create_token([
        
'currency_code'     => 'USD',
        
'country_code'      => 'HK',
        
'card_type'         => 'virtual',
        
'card_network'      => 'mastercard',
        
'card_product_type' => 'standard',
    ]);


    
$api_response = cards_bins(['sign_token' => $sign_token, 'api_key' => 'YOUR_API_KEY']);
    if ( ! empty(
$api_response['status'])) {

        if (
$api_response['status'] == 'success') {

            echo 
'Count Bins: ' . $api_response['count'] . '<br />';

            if ( ! empty(
$api_response['bins'])) {
                foreach(
$api_response['bins'] AS $item) {
                    echo 
'BIN: ' . $item['bin'] . '<br />';
                    echo 
'Currency Code: ' . $item['currency_code'] . '<br />';
                    echo 
'Country Code: ' . $item['country_code'] . '<br />';
                    echo 
'Card Type: ' . $item['card_type'] . '<br />';
                    echo 
'Card Network: ' . $item['card_network'] . '<br />';
                    echo 
'Card Product Type: ' . $item['card_product_type'] . '<br />';
                    echo 
'Card Tier: ' . $item['card_tier'] . '<br />';
                    echo 
'3DS Support: ' . $item['is_3ds_supported'] . '<br />';
                    echo 
'Verification Required: ' . $item['verification_required'] . '<br />';
                    echo 
'----------------------------------------';
                    echo 
'<br />';
                }
            } else {
                echo 
'No Bins Found.';
            }

        } else {
            echo 
'Error Code: ' . $api_response['code'] . '<br />';
            echo 
'Error Message: ' . $api_response['msg'] . '<br />';
        }
        
    } else {
        echo 
'Unknown Error';
    }

?>

Obter lista de cartões

Este método da API permite solicitar uma lista de cartões virtuais emitidos para sua conta no sistema Pay2.House.

Execute uma solicitação POST para o seguinte endereço:

Parâmetros da resposta:

<?php 


    
function get_cards($request_body = [])
    {
        
$curl = curl_init('https://pay2.house/api/cards');
        
curl_setopt($curl, CURLOPT_POST, TRUE);
        
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($request_body));
        
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
        
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
        
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
        
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
        
curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
        
        
$body = curl_exec($curl);
        
$info = curl_getinfo($curl);

        
curl_close($curl);

        if ( ! empty(
$info['http_code']) && $info['http_code'] === 200) {
            return 
json_decode($body, TRUE);
        }
    }


    
$sign_token = create_token([
        
'per_page'  => 10,
        
'page'      => 1,
        
'status'    => 'active'
    
]);

    
    
$api_response = get_cards(['sign_token' => $sign_token, 'api_key' => 'YOUR_API_KEY']);
    if ( ! empty(
$api_response['status'])) {

        if (
$api_response['status'] == 'success') {

            echo 
'Count Cards: ' . $api_response['count'] . '<br />';
        
            if ( ! empty(
$api_response['cards'])) {
                foreach(
$api_response['cards'] AS $item) {
                    echo 
'----------------------------------------';
                    echo 
'Card Name: ' . $item['card_name'] . '<br />';
                    echo 
'Card Number: ' . $item['card_number'] . '<br />';
                    echo 
'Card ID: ' . $item['card_id'] . '<br />';
                    echo 
'CVV: ' . $item['cvv'] . '<br />';
                    echo 
'Expire Date: ' . $item['expiration_date'] . '<br />';
                    echo 
'3DS Password: ' . $item['password'] . '<br />';
                    echo 
'Currency Code: ' . $item['currency_code'] . '<br />';
                    echo 
'Currency Symbol: ' . $item['currency_symbol'] . '<br />';
                    echo 
'Time Created: ' . $item['time_created'] . '<br />';
                    echo 
'Date Created: ' . $item['date_created'] . '<br />';
                    echo 
'Time Renewal: ' . $item['time_renewal'] . '<br />';
                    echo 
'Date Renewal: ' . $item['date_renewal'] . '<br />';
                    echo 
'Email: ' . $item['email'] . '<br />';
                    echo 
'Phone Number: ' . $item['phone_number'] . '<br />';
                    echo 
'Address Line 1: ' . $item['address_line_1'] . '<br />';
                    echo 
'City: ' . $item['city'] . '<br />';
                    echo 
'Country Code: ' . $item['country_code'] . '<br />';
                    echo 
'Post Code: ' . $item['post_code'] . '<br />';
                    echo 
'First Name: ' . $item['first_name'] . '<br />';
                    echo 
'Last Name: ' . $item['last_name'] . '<br />';
                    echo 
'Sur Name: ' . $item['sur_name'] . '<br />';
                    echo 
'Date Birth: ' . $item['date_birth'] . '<br />';
                    echo 
'Card Status: ' . $item['card_status'] . '<br />';
                    echo 
'Balance: ' . $item['balance'] . '<br />';
                    echo 
'Issuance Cost: ' . $item['issuance_cost'] . '<br />';
                    echo 
'Renewal Cost: ' . $item['renewal_cost'] . '<br />';
                    echo 
'Recharge Cost: ' . $item['recharge_cost'] . '<br />';
                    echo 
'Recharge Type: ' . $item['recharge_type'] . '<br />';
                    echo 
'Account Refund Cost: ' . $item['account_refund_cost'] . '<br />';
                    echo 
'Account Refund Type: ' . $item['account_refund_type'] . '<br />';
                    echo 
'Refund Min Amount: ' . $item['refund_min_amount'] . '<br />';
                    echo 
'Min Recharge Amount: ' . $item['min_recharge_amount'] . '<br />';
                    echo 
'Max Recharge Amount: ' . $item['max_recharge_amount'] . '<br />';
                    echo 
'Block Status: ' . $item['block_status'] . '<br />';
                    echo 
'Time Blocked: ' . $item['time_blocked'] . '<br />';
                    echo 
'Date Blocked: ' . $item['date_blocked'] . '<br />';
                    echo 
'----------------------------------------';
                    echo 
'<br />';
                }
            } else {
                echo 
'No Cards Found.';
            }
        } else {
            echo 
'Error Code: ' . $api_response['code'] . '<br />';
            echo 
'Error Message: ' . $api_response['msg'] . '<br />';
        }
        
    } else {
        echo 
'Unknown Error';
    }

?>

Emitir cartão

Este método da API permite emitir um novo cartão virtual no sistema Pay2.House.

Execute uma solicitação POST para o seguinte endereço:

Parâmetros da resposta:

<?php 


    
function card_issue($request_body = [])
    {
        
$curl = curl_init('https://pay2.house/api/cards/issue');
        
curl_setopt($curl, CURLOPT_POST, TRUE);
        
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($request_body));
        
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
        
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
        
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
        
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
        
curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
        
        
$body = curl_exec($curl);
        
$info = curl_getinfo($curl);

        
curl_close($curl);

        if ( ! empty(
$info['http_code']) && $info['http_code'] === 200) {
            return 
json_decode($body, TRUE);
        }
    }


    
$sign_token = create_token([
        
'account_number'    => 'P2U48633413',
        
'first_name'        => 'John',
        
'last_name'         => 'Doe',
        
'sur_name'          => 'Smith',
        
'date_birth'        => '01.01.1991',
        
'phone_number'      => '+380990000000',
        
'address'           => 'Kyiv, Ukraine',
        
'city'              => 'Kyiv',
        
'region'            => 'Kyiv',
        
'country_code'      => 'UA',
        
'post_code'         => '01001',
        
'email'             => '[email protected]',
        
'bin_number'        => '1122334455667788',
    ]);

    
    
$api_response = card_issue(['sign_token' => $sign_token, 'api_key' => 'YOUR_API_KEY']);
    if ( ! empty(
$api_response['status'])) {

        if (
$api_response['status'] == 'success') {
            echo 
'Card Number: ' . $api_response['card_number'] . '<br />';
            echo 
'Card ID: ' . $api_response['card_id'] . '<br />';
        } else {
            echo 
'Error Code: ' . $api_response['code'] . '<br />';
            echo 
'Error Message: ' . $api_response['msg'] . '<br />';
        }
        
    } else {
        echo 
'Unknown Error';
    }

?>

Informações do cartão

Este método da API permite obter informações detalhadas sobre um cartão virtual, incluindo número do cartão, status, data de emissão e outros dados relacionados.

Execute uma solicitação POST para o seguinte endereço:

Parâmetros da resposta:

<?php 


    
function card_details($request_body = [])
    {
        
$curl = curl_init('https://pay2.house/api/cards/details');
        
curl_setopt($curl, CURLOPT_POST, TRUE);
        
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($request_body));
        
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
        
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
        
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
        
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
        
curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
        
        
$body = curl_exec($curl);
        
$info = curl_getinfo($curl);

        
curl_close($curl);

        if ( ! empty(
$info['http_code']) && $info['http_code'] === 200) {
            return 
json_decode($body, TRUE);
        }
    }


    
$sign_token = create_token([
        
'card_id' => 'VC7914059264'
    
]);

    
    
$api_response = card_details(['sign_token' => $sign_token, 'api_key' => 'YOUR_API_KEY']);
    if ( ! empty(
$api_response['status'])) {

        if (
$api_response['status'] == 'success') {
            echo 
'Card Name: ' . $api_response['card_name'] . '<br />';
            echo 
'Card Number: ' . $api_response['card_number'] . '<br />';
            echo 
'Card ID: ' . $api_response['card_id'] . '<br />';
            echo 
'CVV: ' . $api_response['cvv'] . '<br />';
            echo 
'Expire Date: ' . $api_response['expiration_date'] . '<br />';
            echo 
'3DS Password: ' . $api_response['password'] . '<br />';
            echo 
'Currency Code: ' . $api_response['currency_code'] . '<br />';
            echo 
'Currency Symbol: ' . $api_response['currency_symbol'] . '<br />';
            echo 
'Time Created: ' . $api_response['time_created'] . '<br />';
            echo 
'Date Created: ' . $api_response['date_created'] . '<br />';
            echo 
'Time Renewal: ' . $api_response['time_renewal'] . '<br />';
            echo 
'Date Renewal: ' . $api_response['date_renewal'] . '<br />';
            echo 
'Email: ' . $api_response['email'] . '<br />';
            echo 
'Phone Number: ' . $api_response['phone_number'] . '<br />';
            echo 
'Address Line 1: ' . $api_response['address_line_1'] . '<br />';
            echo 
'City: ' . $api_response['city'] . '<br />';
            echo 
'Country Code: ' . $api_response['country_code'] . '<br />';
            echo 
'Post Code: ' . $api_response['post_code'] . '<br />';
            echo 
'First Name: ' . $api_response['first_name'] . '<br />';
            echo 
'Last Name: ' . $api_response['last_name'] . '<br />';
            echo 
'Sur Name: ' . $api_response['sur_name'] . '<br />';
            echo 
'Date Birth: ' . $api_response['date_birth'] . '<br />';
            echo 
'Card Status: ' . $api_response['card_status'] . '<br />';
            echo 
'Balance: ' . $api_response['balance'] . '<br />';
            echo 
'Issuance Cost: ' . $api_response['issuance_cost'] . '<br />';
            echo 
'Renewal Cost: ' . $api_response['renewal_cost'] . '<br />';
            echo 
'Recharge Cost: ' . $api_response['recharge_cost'] . '<br />';
            echo 
'Recharge Type: ' . $api_response['recharge_type'] . '<br />';
            echo 
'Account Refund Cost: ' . $api_response['account_refund_cost'] . '<br />';
            echo 
'Account Refund Type: ' . $api_response['account_refund_type'] . '<br />';
            echo 
'Refund Min Amount: ' . $api_response['refund_min_amount'] . '<br />';
            echo 
'Min Recharge Amount: ' . $api_response['min_recharge_amount'] . '<br />';
            echo 
'Max Recharge Amount: ' . $api_response['max_recharge_amount'] . '<br />';
            echo 
'Block Status: ' . $api_response['block_status'] . '<br />';
            echo 
'Time Blocked: ' . $api_response['time_blocked'] . '<br />';
            echo 
'Date Blocked: ' . $api_response['date_blocked'] . '<br />';
        } else {
            echo 
'Error Code: ' . $api_response['code'] . '<br />';
            echo 
'Error Message: ' . $api_response['msg'] . '<br />';
        }
        
    } else {
        echo 
'Unknown Error';
    }

?>

Renomear cartão

Este método da API permite alterar o nome de um cartão virtual no sistema Pay2.House.

Execute uma solicitação POST para o seguinte endereço:

Parâmetros da resposta:

<?php 


    
function card_rename($request_body = [])
    {
        
$curl = curl_init('https://pay2.house/api/cards/rename');
        
curl_setopt($curl, CURLOPT_POST, TRUE);
        
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($request_body));
        
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
        
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
        
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
        
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
        
curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
        
        
$body = curl_exec($curl);
        
$info = curl_getinfo($curl);

        
curl_close($curl);

        if ( ! empty(
$info['http_code']) && $info['http_code'] === 200) {
            return 
json_decode($body, TRUE);
        }
    }


    
$sign_token = create_token([
        
'card_id' => 'VC7914059264',
        
'name'    => 'New Card Name'
    
]);

    
    
$api_response = card_rename(['sign_token' => $sign_token, 'api_key' => 'YOUR_API_KEY']);
    if ( ! empty(
$api_response['status'])) {

        if (
$api_response['status'] == 'success') {
            echo 
'Card Name: ' . $api_response['card_name'] . '<br />';
        } else {
            echo 
'Error Code: ' . $api_response['code'] . '<br />';
            echo 
'Error Message: ' . $api_response['msg'] . '<br />';
        }
        
    } else {
        echo 
'Unknown Error';
    }

?>

Recarga do cartão

Este método da API permite recarregar o saldo de um cartão virtual usando sua conta interna.

Os fundos serão creditados no cartão dentro de 2-3 minutos após a criação da solicitação de recarga.

Execute uma solicitação POST para o seguinte endereço:

Parâmetros da resposta:

<?php 


    
function card_top_up($request_body = [])
    {
        
$curl = curl_init('https://pay2.house/api/cards/top_up');
        
curl_setopt($curl, CURLOPT_POST, TRUE);
        
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($request_body));
        
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
        
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
        
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
        
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
        
curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
        
        
$body = curl_exec($curl);
        
$info = curl_getinfo($curl);

        
curl_close($curl);

        if ( ! empty(
$info['http_code']) && $info['http_code'] === 200) {
            return 
json_decode($body, TRUE);
        }
    }


    
$sign_token = create_token([
        
'card_id'           => 'VC7914059264',
        
'account_number'    => 'P2U48633413',
        
'amount'            => 50
    
]);

    
    
$api_response = card_top_up(['sign_token' => $sign_token, 'api_key' => 'YOUR_API_KEY']);
    if ( ! empty(
$api_response['status'])) {
        
        if (
$api_response['status'] == 'success') {
            echo 
'Transaction Number: ' . $api_response['transaction_number'] . '<br />';
        } else {
            echo 
'Error Code: ' . $api_response['code'] . '<br />';
            echo 
'Error Message: ' . $api_response['msg'] . '<br />';
        }
        
    } else {
        echo 
'Unknown Error';
    }

?>

Reembolso do cartão

Este método da API permite iniciar um reembolso de um cartão virtual para sua conta interna.

Os fundos são devolvidos para a mesma conta da qual o cartão foi emitido.

Você receberá o valor menos a comissão de reembolso, de acordo com as tarifas do cartão.

Por exemplo, se você fizer um reembolso de $10 e a comissão de reembolso for 3%, então $10 × 3% = $0.30 serão retidos como comissão, e $9.70 serão creditados em sua conta.

Execute uma solicitação POST para o seguinte endereço:

Parâmetros da resposta:

<?php 


    
function card_refund($request_body = [])
    {
        
$curl = curl_init('https://pay2.house/api/cards/refund');
        
curl_setopt($curl, CURLOPT_POST, TRUE);
        
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($request_body));
        
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
        
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
        
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
        
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
        
curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
        
        
$body = curl_exec($curl);
        
$info = curl_getinfo($curl);

        
curl_close($curl);

        if ( ! empty(
$info['http_code']) && $info['http_code'] === 200) {
            return 
json_decode($body, TRUE);
        }
    }


    
$sign_token = create_token([
        
'card_id'   => 'VC7914059264',
        
'amount'    => 10
    
]);

    
    
$api_response = card_refund(['sign_token' => $sign_token, 'api_key' => 'YOUR_API_KEY']);
    if ( ! empty(
$api_response['status'])) {

        if (
$api_response['status'] == 'success') {
            echo 
'Transaction Number: ' . $api_response['transaction_number'] . '<br />';
        } else {
            echo 
'Error Code: ' . $api_response['code'] . '<br />';
            echo 
'Error Message: ' . $api_response['msg'] . '<br />';
        }
        
    } else {
        echo 
'Unknown Error';
    }

?>

Histórico de operações do cartão

Este método da API fornece acesso à lista completa de operações realizadas com seu cartão virtual.

Execute uma solicitação POST para o seguinte endereço:

Parâmetros da resposta:

<?php 


    
function cards_history($request_body = [])
    {
        
$curl = curl_init('https://pay2.house/api/cards/history');
        
curl_setopt($curl, CURLOPT_POST, TRUE);
        
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($request_body));
        
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
        
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
        
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
        
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
        
curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
        
        
$body = curl_exec($curl);
        
$info = curl_getinfo($curl);

        
curl_close($curl);

        if ( ! empty(
$info['http_code']) && $info['http_code'] === 200) {
            return 
json_decode($body, TRUE);
        }
    }


    
$sign_token = create_token([
        
'card_id'   => 'VC7914059264',
        
'per_page'  => 10,
        
'page'      => 3
    
]);

    
    
$api_response = cards_history(['sign_token' => $sign_token, 'api_key' => 'YOUR_API_KEY']);
    if ( ! empty(
$api_response['status'])) {

        if (
$api_response['status'] == 'success') {

            echo 
'Count Transactions: ' . $api_response['count'] . '<br />';
        
            if ( ! empty(
$api_response['transactions'])) {
                foreach(
$api_response['transactions'] AS $item) {
                    echo 
'Transaction Time: ' . $item['transaction_time'] . '<br />';
                    echo 
'Transaction Number: ' . $item['transaction_number'] . '<br />';
                    echo 
'Status: ' . $item['status'] . '<br />';
                    echo 
'Type: ' . $item['type'] . '<br />';
                    echo 
'Transaction Amount: ' . $item['transaction_amount'] . '<br />';
                    echo 
'Transaction Currency Code: ' . $item['transaction_currency_code'] . '<br />';
                    echo 
'Account Amount: ' . $item['account_amount'] . '<br />';
                    echo 
'Account Currency Code: ' . $item['account_currency_code'] . '<br />';
                    echo 
'Merchant Name: ' . $item['merchant_name'] . '<br />';
                    echo 
'Merchant Url: ' . $item['merchant_url'] . '<br />';
                    echo 
'Merchant Domain: ' . $item['merchant_domain'] . '<br />';
                    echo 
'Merchant Icon Url: ' . $item['merchant_icon_url'] . '<br />';
                    echo 
'Error Message: ' . $item['error_message'] . '<br />';
                    echo 
'----------------------------------------';
                    echo 
'<br />';
                }
            } else {
                echo 
'No Transactions Found.';
            }

        } else {
            echo 
'Error Code: ' . $api_response['code'] . '<br />';
            echo 
'Error Message: ' . $api_response['msg'] . '<br />';
        }
        
    } else {
        echo 
'Unknown Error';
    }

?>

Atualizar saldo do cartão

Este método da API permite iniciar a atualização do saldo do cartão virtual, garantindo a obtenção de dados atualizados sobre o estado atual dos fundos no cartão.

Execute uma solicitação POST para o seguinte endereço:

Parâmetros da resposta:

<?php 


    
function card_balance_refresh($request_body = [])
    {
        
$curl = curl_init('https://pay2.house/api/cards/balance/refresh');
        
curl_setopt($curl, CURLOPT_POST, TRUE);
        
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($request_body));
        
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
        
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
        
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
        
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
        
curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
        
        
$body = curl_exec($curl);
        
$info = curl_getinfo($curl);

        
curl_close($curl);

        if ( ! empty(
$info['http_code']) && $info['http_code'] === 200) {
            return 
json_decode($body, TRUE);
        }
    }


    
$sign_token = create_token([
        
'card_id' => 'VC7914059264'
    
]);

    
    
$api_response = card_balance_refresh(['sign_token' => $sign_token, 'api_key' => 'YOUR_API_KEY']);
    if ( ! empty(
$api_response['status'])) {

        if (
$api_response['status'] == 'success') {
            echo 
'Card Balance: ' . $api_response['balance'] . '<br />';
        } else {
            echo 
'Error Code: ' . $api_response['code'] . '<br />';
            echo 
'Error Message: ' . $api_response['msg'] . '<br />';
        }
        
    } else {
        echo 
'Unknown Error';
    }

?>

Códigos de confirmação do cartão

Este método da API permite obter uma lista de códigos de confirmação necessários para autorizar operações com o cartão virtual.

Execute uma solicitação POST para o seguinte endereço:

Parâmetros da resposta:

<?php 


    
function card_confirmation_codes($request_body = [])
    {
        
$curl = curl_init('https://pay2.house/api/cards/confirmation_codes');
        
curl_setopt($curl, CURLOPT_POST, TRUE);
        
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($request_body));
        
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
        
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
        
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
        
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
        
curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
        
        
$body = curl_exec($curl);
        
$info = curl_getinfo($curl);

        
curl_close($curl);

        if ( ! empty(
$info['http_code']) && $info['http_code'] === 200) {
            return 
json_decode($body, TRUE);
        }
    }


    
$sign_token = create_token([
        
'card_id' => 'VC7914059264'
    
]);

    
    
$api_response = card_confirmation_codes(['sign_token' => $sign_token, 'api_key' => 'YOUR_API_KEY']);
    if ( ! empty(
$api_response['status'])) {
        
        if (
$api_response['status'] == 'success') {

            if ( ! empty(
$api_response['codes'])) {
                foreach(
$api_response['codes'] AS $item) {
                    echo 
'Time Created: ' . $item['time_created'] . '<br />';
                    echo 
'Date Created: ' . $item['date_created'] . '<br />';
                    echo 
'Otp Code: ' . $item['otp_code'] . '<br />';
                    echo 
'----------------------------------------';
                    echo 
'<br />';
                }
            } else {
                echo 
'No Confirmation Codes Found.';
            }

        } else {
            echo 
'Error Code: ' . $api_response['code'] . '<br />';
            echo 
'Error Message: ' . $api_response['msg'] . '<br />';
        }
        
    } else {
        echo 
'Unknown Error';
    }

?>

Bloquear cartão

Este método da API permite bloquear um cartão virtual, impedindo seu uso posterior.

Se houver fundos no saldo do cartão, eles serão devolvidos à conta interna da qual o cartão foi emitido, de acordo com as tarifas de reembolso.

No entanto, se o valor do reembolso após a dedução da comissão for menor que o valor mínimo de reembolso, esses fundos serão debitados do saldo do cartão.

Execute uma solicitação POST para o seguinte endereço:

Parâmetros da resposta:

<?php 


    
function cards_block($request_body = [])
    {
        
$curl = curl_init('https://pay2.house/api/cards/block');
        
curl_setopt($curl, CURLOPT_POST, TRUE);
        
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($request_body));
        
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
        
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
        
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
        
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
        
curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
        
        
$body = curl_exec($curl);
        
$info = curl_getinfo($curl);

        
curl_close($curl);

        if ( ! empty(
$info['http_code']) && $info['http_code'] === 200) {
            return 
json_decode($body, TRUE);
        }
    }


    
$sign_token = create_token([
        
'card_id' => 'VC7914059264'
    
]);

    
    
$api_response = cards_block(['sign_token' => $sign_token, 'api_key' => 'YOUR_API_KEY']);
    if ( ! empty(
$api_response['status'])) {

        if (
$api_response['status'] == 'success') {
            echo 
'Card Blocked Successfully.';
        } else {
            echo 
'Error Code: ' . $api_response['code'] . '<br />';
            echo 
'Error Message: ' . $api_response['msg'] . '<br />';
        }
        
    } else {
        echo 
'Unknown Error';
    }

?>

Fechar cartão

Este método da API permite fechar um cartão virtual, impedindo seu uso posterior.

É importante observar que este método não pode ser usado para fechar o cartão se ainda houver fundos nele.

Execute uma solicitação POST para o seguinte endereço:

Parâmetros da resposta:

<?php 


    
function card_close($request_body = [])
    {
        
$curl = curl_init('https://pay2.house/api/cards/close');
        
curl_setopt($curl, CURLOPT_POST, TRUE);
        
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($request_body));
        
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
        
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
        
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
        
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
        
curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
        
        
$body = curl_exec($curl);
        
$info = curl_getinfo($curl);

        
curl_close($curl);

        if ( ! empty(
$info['http_code']) && $info['http_code'] === 200) {
            return 
json_decode($body, TRUE);
        }
    }


    
$sign_token = create_token([
        
'card_id' => 'VC7914059264'
    
]);

    
    
$api_response = card_close(['sign_token' => $sign_token, 'api_key' => 'YOUR_API_KEY']);
    if ( ! empty(
$api_response['status'])) {

        if (
$api_response['status'] == 'success') {
            echo 
'Card Closed Successfully.';
        } else {
            echo 
'Error Code: ' . $api_response['code'] . '<br />';
            echo 
'Error Message: ' . $api_response['msg'] . '<br />';
        }
        
    } else {
        echo 
'Unknown Error';
    }

?>

Status de bloqueio do cartão

Descrição dos possíveis status de bloqueio do cartão e seus significados.

Webhook Events

Assim que o status do pagamento muda para "Pago", Pay2.House envia automaticamente notificações no formato webhook para o seu Webhook URL previamente especificado, que você configura para seu comerciante.

Enviaremos a notificação 100 vezes até recebermos o status HTTP 200 e o texto de resposta "OK".

Além disso, nosso sistema inclui automaticamente no cabeçalho da solicitação o parâmetro "Pay2-House-Signature" com um token único. Você pode usar esse token para verificar a autenticidade da solicitação.

<?php 

    
// Function for decoding webhook data
    
function decrypt_webhook($data = NULL, $secret_key = NULL) 
    {
        
$decoded_data = base64_decode($data);

        if (
$decoded_data === FALSE) {
            return 
FALSE;
        }

        list(
$iv, $signature, $encrypted_data) = explode('|', $decoded_data);
        
$calculated_signature = hash_hmac('sha256', $iv . '|' . $encrypted_data, $secret_key);

        if (
hash_equals($calculated_signature, $signature)) {
            
$decoded_encrypted_data = openssl_decrypt(
                
base64_decode($encrypted_data), 
                
'AES-256-CBC', 
                
hex2bin(hash('sha256', $secret_key)), 
                
0, 
                
hex2bin(bin2hex(hex2bin($iv)))
            );
            if (
$decoded_encrypted_data !== FALSE) {
                return 
$decoded_encrypted_data;
            }
        }

        return 
FALSE;
    }

    
    
// Retrieving the webhook request body and decoding the JSON
    
$payload_body   = file_get_contents('php://input');
    
$payload_decode = json_decode($payload_body, TRUE);


    
// Checking for the presence of a signature in the request header
    
if ( ! empty($_SERVER['HTTP_PAY2_HOUSE_SIGNATURE'])) {
        
// Decoding webhook data and outputting the decoded data
        
$decrypt_webhook = decrypt_webhook($_SERVER['HTTP_PAY2_HOUSE_SIGNATURE'], 'YOUR_API_KEY');
        if (
$decrypt_webhook !== FALSE) {
            
$webhook_decode = json_decode($decrypt_webhook, TRUE);
        }
    }


    
// Example print of $payload_decode and $webhook_decode
    // Array
    // (
    //     [invoice_number] => IN4063112032
    //     [external_number] => test
    //     [amount] => 10
    //     [handling_fee] => 0
    //     [currency_code] => EUR
    //     [description] => Test Payment for Pay2.House
    //     [status] => paid
    // )


    // Setting HTTP status 200 and terminating the script with the response text "OK"
    
http_response_code(200);
    exit(
'OK');
?>

Possíveis erros

Aqui estão alguns dos possíveis erros que podem ocorrer ao usar a API.

Utilizamos cookies para melhorar o funcionamento do site. Ao continuar a utilizá-lo, aceita a nossa Política de Privacidade e os Termos de Utilização.